Datavision / AUTOML_DOCUMENTATION.md
DataVision CI/CD Bot
release: clean production build for HuggingFace Space
09801ca
|
Raw
History Blame Contribute Delete
19 kB
# 🚀 DataVision AutoML - Complete Documentation
## Table of Contents
1. [Overview](#overview)
2. [Training Modes](#training-modes)
3. [Supervised Learning Algorithms](#supervised-learning-algorithms)
4. [Unsupervised Learning Algorithms](#unsupervised-learning-algorithms)
5. [NLP Algorithms](#nlp-algorithms)
6. [Deep Learning Architectures](#deep-learning-architectures)
7. [Charts & Visualizations](#charts--visualizations)
8. [API Endpoints](#api-endpoints)
---
## Overview
DataVision AutoML is a production-grade machine learning platform supporting:
- **30+ ML Algorithms** (Classification, Regression, Clustering)
- **Auto GPU/CPU Detection** (CUDA, ROCm, Metal)
- **Advanced Data Cleaning** (Smart Imputation, Outlier Detection)
- **Feature Selection** (Variance, Correlation, Mutual Info, RFE)
- **Bayesian Hyperparameter Optimization** (Optuna)
- **Ensemble Methods** (Stacking, Voting, Blending)
- **20+ Visualization Charts**
---
## Training Modes
### 1. Fast Mode (Default)
- **Speed**: ~30-60 seconds
- **Algorithms**: Top 5 performing algorithms
- **CV Folds**: 3-fold cross-validation
- **Use Case**: Quick prototyping, small datasets
### 2. Ultra Mode
- **Speed**: 2-10 minutes
- **Algorithms**: All 15+ algorithms
- **CV Folds**: 5-fold stratified cross-validation
- **Features**: Hyperparameter tuning, ensemble stacking
- **Use Case**: Production models, maximum accuracy
### 3. Multi-Mode Training
- **Combines**: Traditional ML + NLP + Deep Learning
- **Parallel Training**: Runs selected modes simultaneously
- **Best Model Selection**: Cross-mode comparison
---
## Supervised Learning Algorithms
### Classification Algorithms
| Algorithm | Parameters | Use Case | Chart Support |
|-----------|-----------|----------|---------------|
| **XGBoost** | `n_estimators=100-500`, `max_depth=3-10`, `learning_rate=0.01-0.3`, `subsample=0.6-1.0`, `colsample_bytree=0.6-1.0`, `min_child_weight=1-10`, `gamma=0-5`, `reg_alpha=0-1`, `reg_lambda=0-1` | Large datasets, tabular data | ✅ All |
| **LightGBM** | `n_estimators=100-500`, `max_depth=3-15`, `learning_rate=0.01-0.3`, `num_leaves=20-150`, `subsample=0.6-1.0`, `colsample_bytree=0.6-1.0`, `min_child_samples=10-100`, `reg_alpha=0-1`, `reg_lambda=0-1` | Fast training, large data | ✅ All |
| **CatBoost** | `iterations=100-500`, `depth=4-10`, `learning_rate=0.01-0.3`, `l2_leaf_reg=1-10`, `border_count=32-255`, `random_strength=0-10` | Categorical features, GPU | ✅ All |
| **Random Forest** | `n_estimators=100-500`, `max_depth=5-30`, `min_samples_split=2-20`, `min_samples_leaf=1-10`, `max_features='sqrt'/'log2'/0.5-1.0`, `bootstrap=True/False` | General purpose, interpretable | ✅ All |
| **Gradient Boosting** | `n_estimators=100-300`, `max_depth=3-8`, `learning_rate=0.01-0.2`, `subsample=0.6-1.0`, `min_samples_split=2-20`, `min_samples_leaf=1-10` | Balanced performance | ✅ All |
| **Extra Trees** | `n_estimators=100-500`, `max_depth=5-30`, `min_samples_split=2-20`, `min_samples_leaf=1-10`, `max_features='sqrt'/'log2'/0.5-1.0` | Fast random splits | ✅ All |
| **Hist Gradient Boosting** | `max_iter=100-500`, `max_depth=3-15`, `learning_rate=0.01-0.3`, `min_samples_leaf=10-50`, `l2_regularization=0-1` | Fast, native categorical | ✅ All |
| **AdaBoost** | `n_estimators=50-200`, `learning_rate=0.01-1.0`, `algorithm='SAMME'/'SAMME.R'` | Boosting weak learners | ✅ All |
| **Bagging** | `n_estimators=10-50`, `max_samples=0.5-1.0`, `max_features=0.5-1.0`, `bootstrap=True/False` | Variance reduction | ✅ All |
| **Logistic Regression** | `C=0.001-100`, `penalty='l1'/'l2'/'elasticnet'`, `solver='lbfgs'/'saga'/'liblinear'`, `max_iter=100-1000`, `l1_ratio=0-1` | Linear baseline, interpretable | ✅ All |
| **SVC (SVM)** | `C=0.1-100`, `kernel='rbf'/'linear'/'poly'/'sigmoid'`, `gamma='scale'/'auto'/0.001-10`, `degree=2-5`, `class_weight='balanced'/None` | Non-linear boundaries | ✅ All |
| **Linear SVC** | `C=0.1-100`, `penalty='l1'/'l2'`, `loss='hinge'/'squared_hinge'`, `max_iter=1000-10000` | Large-scale linear | ✅ All |
| **K-Neighbors** | `n_neighbors=3-15`, `weights='uniform'/'distance'`, `metric='euclidean'/'manhattan'/'minkowski'`, `p=1-2`, `leaf_size=20-50` | Instance-based | ✅ All |
| **Gaussian NB** | `var_smoothing=1e-9-1e-6` | Text, probabilistic | ✅ All |
| **Multinomial NB** | `alpha=0.01-1.0`, `fit_prior=True/False` | Text classification | ✅ All |
| **Complement NB** | `alpha=0.01-1.0`, `norm=True/False` | Imbalanced text | ✅ All |
| **Bernoulli NB** | `alpha=0.01-1.0`, `binarize=0.0-1.0` | Binary features | ✅ All |
| **MLP Classifier** | `hidden_layer_sizes=(64,32)-(256,128,64)`, `activation='relu'/'tanh'`, `solver='adam'/'sgd'`, `alpha=0.0001-0.01`, `learning_rate='constant'/'adaptive'`, `max_iter=200-1000`, `early_stopping=True` | Neural network | ✅ All |
| **Decision Tree** | `max_depth=3-20`, `min_samples_split=2-20`, `min_samples_leaf=1-10`, `criterion='gini'/'entropy'`, `splitter='best'/'random'` | Interpretable rules | ✅ All |
| **LDA** | `solver='svd'/'lsqr'/'eigen'`, `shrinkage='auto'/0-1` | Dimensionality reduction | ✅ All |
| **QDA** | `reg_param=0-1` | Quadratic boundaries | ✅ All |
| **SGD Classifier** | `loss='hinge'/'log_loss'/'perceptron'`, `penalty='l1'/'l2'/'elasticnet'`, `alpha=0.0001-0.01`, `max_iter=1000-5000`, `learning_rate='optimal'/'constant'/'adaptive'` | Large-scale online | ✅ All |
| **Passive Aggressive** | `C=0.1-10`, `max_iter=1000-5000`, `loss='hinge'/'squared_hinge'` | Online learning | ✅ All |
### Regression Algorithms
| Algorithm | Parameters | Use Case |
|-----------|-----------|----------|
| **XGBoost Regressor** | Same as classifier | General regression |
| **LightGBM Regressor** | Same as classifier | Fast regression |
| **CatBoost Regressor** | Same as classifier | Categorical features |
| **Random Forest Regressor** | Same as classifier | General purpose |
| **Gradient Boosting Regressor** | Same as classifier | Balanced |
| **Extra Trees Regressor** | Same as classifier | Fast |
| **Ridge** | `alpha=0.01-100`, `solver='auto'/'svd'/'cholesky'/'lsqr'` | L2 regularization |
| **Lasso** | `alpha=0.01-100`, `max_iter=1000-10000` | L1 regularization, feature selection |
| **ElasticNet** | `alpha=0.01-100`, `l1_ratio=0-1`, `max_iter=1000-10000` | Combined L1+L2 |
| **SVR** | `C=0.1-100`, `kernel='rbf'/'linear'/'poly'`, `epsilon=0.01-0.5`, `gamma='scale'/'auto'` | Non-linear |
| **Linear SVR** | `C=0.1-100`, `epsilon=0-0.5`, `max_iter=1000-10000` | Large-scale linear |
| **K-Neighbors Regressor** | Same as classifier | Instance-based |
| **MLP Regressor** | Same as classifier | Neural network |
| **Bayesian Ridge** | `alpha_1=1e-6`, `alpha_2=1e-6`, `lambda_1=1e-6`, `lambda_2=1e-6` | Probabilistic |
| **Huber Regressor** | `epsilon=1.0-2.0`, `alpha=0.0001-0.01`, `max_iter=100-500` | Robust to outliers |
| **Poisson Regressor** | `alpha=0-1`, `max_iter=100-500` | Count data |
| **Quantile Regressor** | `quantile=0.1-0.9`, `alpha=0-1` | Quantile estimation |
| **Lasso Lars** | `alpha=0.01-100`, `max_iter=500-1000` | Feature selection |
---
## Unsupervised Learning Algorithms
### Clustering Algorithms
| Algorithm | Parameters | Charts Generated | Use Case |
|-----------|-----------|------------------|----------|
| **KMeans** | `n_clusters=2-15` (auto-detect), `init='k-means++'/'random'`, `n_init=10-30`, `max_iter=300-500`, `tol=1e-4`, `algorithm='lloyd'/'elkan'` | Elbow, Silhouette, Scatter, Distribution, Heatmap, PCA, 3D, t-SNE, UMAP, Pairplot, Boxplot, Violin, Correlation, Radar | General clustering |
| **DBSCAN** | `eps=auto-detect` (k-distance), `min_samples=max(3, n//100)` (auto), `metric='euclidean'/'manhattan'`, `algorithm='auto'/'ball_tree'/'kd_tree'` | K-Distance, Scatter, Distribution, Silhouette, Heatmap, PCA, 3D, t-SNE, UMAP, Pairplot, Boxplot, Violin, Correlation, Radar | Noise detection, arbitrary shapes |
| **Hierarchical (Agglomerative)** | `n_clusters=2-15`, `linkage='ward'/'average'/'complete'/'single'`, `metric='euclidean'`, `compute_full_tree='auto'` | **Dendrogram**, Silhouette, Scatter, Distribution, Heatmap, PCA, 3D, t-SNE, UMAP, Pairplot, Boxplot, Violin, Correlation, Radar | Hierarchical structure |
| **GMM (Gaussian Mixture)** | `n_components=2-15`, `covariance_type='full'/'tied'/'diag'/'spherical'`, `n_init=10`, `max_iter=200`, `init_params='k-means++'` | **BIC/AIC Chart**, Silhouette, Scatter, Distribution, Heatmap, PCA, 3D, t-SNE, UMAP, Pairplot, Boxplot, Violin, Correlation, Radar | Probabilistic clustering |
| **Spectral** | `n_clusters=2-15`, `affinity='nearest_neighbors'/'rbf'`, `n_neighbors=10-30`, `assign_labels='cluster_qr'/'kmeans'`, `gamma=1.0` | **Affinity Matrix**, Silhouette, Scatter, Distribution, Heatmap, PCA, 3D, t-SNE, UMAP, Pairplot, Boxplot, Violin, Correlation, Radar | Graph-based clustering |
### Clustering Charts (17 Total)
| Chart | Description | Size (figsize) | When Generated |
|-------|-------------|----------------|----------------|
| `cluster_scatter` | PCA 2D scatter with centroids | (10, 8) | Always |
| `elbow_method` | Silhouette scores vs k | (10, 6) | KMeans/Hierarchical/GMM/Spectral |
| `silhouette_plot` | Per-sample silhouette coefficients | (10, 8) | n_clusters≥2, n_samples≥50 |
| `cluster_distribution` | Bar chart of cluster sizes | (10, 6) | Always |
| `cluster_heatmap` | Feature means per cluster | (12, 8) | n_features≥3, n_clusters≥2 |
| `pca_variance` | Explained variance per component | (14, 5) | n_features≥3 |
| `cluster_3d` | PCA 3D scatter | (12, 10) | n_features≥3, n_samples≥50 |
| `dendrogram` | Hierarchical tree structure | (14, 8) | **Hierarchical only** |
| `gmm_bic_aic` | BIC/AIC model selection | (10, 6) | **GMM only** |
| `dbscan_kdist` | K-distance graph for eps | (10, 6) | **DBSCAN only** |
| `spectral_affinity` | Affinity matrix heatmap | (10, 8) | **Spectral only**, n_samples≤500 |
| `tsne` | t-SNE 2D visualization | (10, 8) | 100≤n_samples≤3000, n_features≥3 |
| `umap` | UMAP 2D visualization | (10, 8) | 100≤n_samples≤5000, n_features≥3 |
| `pairplot` | Feature pairwise scatter | auto | 2≤n_features≤6, n_samples≤2000 |
| `boxplots` | Feature distribution by cluster | (4*n_features, 6) | n_features≥2, n_clusters≥2 |
| `violin_plots` | Violin distribution by cluster | (5*n_features, 6) | n_features≥2, n_clusters≥2, n_samples≥50 |
| `correlation_heatmap` | Feature correlation matrix | (10, 8) | n_features≥3 |
| `radar_chart` | Cluster comparison radar | (10, 10) | n_features≥3, n_clusters≥2 |
### Clustering Metrics
| Metric | Range | Description |
|--------|-------|-------------|
| `silhouette_score` | [-1, 1] | Higher is better, cluster cohesion vs separation |
| `calinski_harabasz_score` | [0, ∞) | Higher is better, variance ratio |
| `davies_bouldin_score` | [0, ∞) | Lower is better, average similarity |
| `reliability_score` | [0, 100] | Production intelligence quality score |
---
## NLP Algorithms
### Text Classification Algorithms
| Algorithm | Parameters | Vectorizer | Use Case |
|-----------|-----------|------------|----------|
| **TF-IDF + Logistic Regression** | `C=0.1-100`, `max_iter=500` | TF-IDF: `max_features=5000-20000`, `ngram_range=(1,2)/(1,3)`, `min_df=2-5`, `max_df=0.9-0.95` | General text |
| **TF-IDF + SVM** | `C=0.1-100`, `kernel='linear'/'rbf'` | Same as above | High accuracy |
| **TF-IDF + Naive Bayes** | `alpha=0.01-1.0` | Same as above | Fast, probabilistic |
| **TF-IDF + Random Forest** | `n_estimators=100-300` | Same as above | Feature importance |
| **TF-IDF + XGBoost** | Same as classifier | Same as above | Best accuracy |
| **BOW + Classifiers** | Same as TF-IDF | CountVectorizer: same params | Simple baseline |
| **N-gram Models** | Same as TF-IDF | `ngram_range=(2,3)/(1,4)` | Phrase patterns |
### NLP-Specific Charts
| Chart | Description | When Generated |
|-------|-------------|----------------|
| `confusion_matrix` | Class prediction matrix | Always |
| `word_cloud` | Important words visualization | Text data |
| `class_distribution` | Target class frequencies | Always |
| `roc_curve` | ROC-AUC per class | Multi-class |
| `precision_recall` | PR curve per class | Multi-class |
---
## Deep Learning Architectures
### MLP (Multi-Layer Perceptron) Architectures
| Architecture | Hidden Layers | Parameters | Use Case |
|--------------|---------------|-----------|----------|
| **mlp_small** | (64, 32) | ~5K params | Small data, fast |
| **mlp_medium** | (128, 64, 32) | ~15K params | Balanced |
| **mlp_large** | (256, 128, 64) | ~50K params | Complex patterns |
| **mlp_wide** | (512, 256) | ~150K params | High-dimensional |
| **mlp_deep** | (128, 128, 128, 128) | ~70K params | Deep representation |
### MLP Training Parameters
| Parameter | Values | Description |
|-----------|--------|-------------|
| `activation` | 'relu', 'tanh', 'logistic' | Activation function |
| `solver` | 'adam', 'sgd', 'lbfgs' | Optimizer |
| `alpha` | 0.0001-0.01 | L2 regularization |
| `learning_rate` | 'constant', 'adaptive', 'invscaling' | LR schedule |
| `learning_rate_init` | 0.001-0.01 | Initial LR |
| `max_iter` | 200-1000 | Max epochs |
| `early_stopping` | True | Validation-based stopping |
| `validation_fraction` | 0.1 | Validation split |
| `n_iter_no_change` | 10 | Early stopping patience |
| `batch_size` | 32-256, 'auto' | Mini-batch size |
### Deep Learning Charts
| Chart | Description | When Generated |
|-------|-------------|----------------|
| `learning_curve` | Loss vs epochs | Training history |
| `confusion_matrix` | Prediction matrix | Classification |
| `feature_importance` | Input weights | All |
| `activation_distribution` | Layer activations | Debug |
---
## Charts & Visualizations
### Supervised Learning Charts (Classification)
| Chart Key | Description | Size | Parameters |
|-----------|-------------|------|------------|
| `confusion_matrix` | True vs Predicted heatmap | (10, 8) | `cmap='Blues'`, `annot=True`, `fmt='d'` |
| `feature_importance` | Top 15 features bar chart | (12, 8) | Sorted descending |
| `roc_curve` | ROC curves per class | (10, 8) | `lw=2`, AUC in legend |
| `precision_recall` | PR curves per class | (10, 8) | AP in legend |
| `class_distribution` | Target class bar chart | (10, 6) | With percentages |
| `learning_curve` | Train/Val score vs size | (10, 6) | CV=5 |
| `calibration_curve` | Predicted vs actual prob | (10, 8) | Perfectly calibrated line |
| `lift_curve` | Cumulative gains | (10, 8) | Baseline comparison |
| `correlation_heatmap` | Feature correlations | (12, 10) | `cmap='coolwarm'` |
| `shap_summary` | SHAP feature values | (12, 10) | Requires SHAP |
### Supervised Learning Charts (Regression)
| Chart Key | Description | Size | Parameters |
|-----------|-------------|------|------------|
| `actual_vs_predicted` | Scatter with ideal line | (10, 8) | `alpha=0.5` |
| `residual_plot` | Residuals vs predicted | (10, 6) | Zero line |
| `residual_distribution` | Residual histogram+KDE | (10, 6) | Normal curve overlay |
| `feature_importance` | Top 15 features | (12, 8) | Sorted descending |
| `error_by_range` | MAE per target bin | (10, 6) | 10 bins |
| `qq_plot` | Quantile-quantile | (8, 8) | Normal reference |
| `learning_curve` | Train/Val RMSE vs size | (10, 6) | CV=5 |
| `cook_distance` | Influential points | (10, 6) | Threshold line |
### Chart Generation Parameters
```python
# Common matplotlib settings
plt.style.use('seaborn-v0_8-whitegrid')
plt.rcParams['figure.dpi'] = 150
plt.rcParams['savefig.dpi'] = 150
plt.rcParams['savefig.bbox'] = 'tight'
plt.rcParams['savefig.facecolor'] = 'white'
# Color palettes
CLASSIFICATION_COLORS = ['#2563eb', '#16a34a', '#dc2626', '#ea580c', '#9333ea',
'#0891b2', '#db2777', '#d97706', '#0d9488', '#4f46e5']
REGRESSION_COLORS = ['#3b82f6', '#ef4444']
CLUSTER_COLORS = ['#2563eb', '#16a34a', '#dc2626', '#ea580c', '#9333ea',
'#0891b2', '#db2777', '#d97706', '#0d9488', '#4f46e5',
'#84cc16', '#06b6d4', '#f43f5e', '#8b5cf6', '#14b8a6']
```
---
## API Endpoints
### Supervised Learning
| Endpoint | Method | Mode | Description |
|----------|--------|------|-------------|
| `/api/v1/automl/production_train` | POST | Fast | Quick training with top algorithms |
| `/api/v1/automl/train` | POST | Standard | Full training pipeline |
| `/api/v1/automl/ultra_train` | POST | Ultra | Maximum accuracy mode |
| `/api/v1/automl/multi_mode/train` | POST | Multi | Combined Traditional+NLP+Deep |
| `/api/v1/automl/predict` | POST | - | Single prediction |
| `/api/v1/automl/batch_predict` | POST | - | Batch predictions |
| `/api/v1/automl/saved-result` | GET | - | Load saved model results |
| `/api/v1/automl/stop_training` | POST | - | Cancel ongoing training |
### NLP
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/api/v1/automl/nlp/train` | POST | Text classification training |
| `/api/v1/automl/nlp/predict` | POST | Text prediction |
### Deep Learning
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/api/v1/automl/deep_learning/train` | POST | Neural network training |
| `/api/v1/automl/deep_learning/predict` | POST | Deep learning prediction |
### Unsupervised Learning
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/api/v1/ml/clustering` | POST | Clustering analysis |
| `/api/v1/ml/clustering/predict` | POST | Predict cluster for new data |
| `/api/v1/ml/clustering/download-model/{user_id}` | GET | Download PKL model |
| `/api/v1/ml/clustering/download-data/{user_id}` | GET | Download clustered CSV |
---
## Production Intelligence
### Reliability Score (0-100)
Computed based on:
- Data quality (missing values, outliers)
- Model validation (CV performance, overfitting check)
- Feature quality (variance, correlation)
- Sample size adequacy
### Validation Warnings
| Warning Type | Trigger |
|--------------|---------|
| `small_dataset` | n_samples < 100 |
| `high_cardinality` | categorical unique > 50% |
| `class_imbalance` | minority class < 10% |
| `missing_values` | missing > 20% |
| `potential_leakage` | feature corr > 0.95 with target |
| `low_variance` | feature variance ≈ 0 |
---
## File Outputs
### Saved Artifacts
| File | Location | Content |
|------|----------|---------|
| `best_model.pkl` | `storage/users/{user_id}/models/` | Trained model + metadata |
| `cleaned_data.csv` | `storage/users/{user_id}/files/` | Preprocessed data |
| `multimode_metadata.json` | `storage/users/{user_id}/models/` | Training configuration |
| `clustering_model.pkl` | `storage/users/{user_id}/models/` | Clustering model + scaler |
| `clustered_data.csv` | `storage/users/{user_id}/files/` | Data with cluster labels |
---
## Version Info
- **Engine Version**: 7.0
- **Last Updated**: February 2026
- **Supported Python**: 3.11+
- **Key Dependencies**: scikit-learn>=1.3.0, xgboost>=2.0.0, lightgbm>=4.2.0, catboost>=1.2.0, optuna>=3.4.0