SuperAPI AI Directory

dnn-modeling

Data & analytics

View repository

Updated 10-15 19:55

About this skill

DNN Deep Learning Modeling (portable)

Implements MLP (Multi-Layer Perceptron) based on PyTorch for binary classification modeling.

Core Pipeline: Feature standardization → MLP training (BatchNorm + Dropout + Early Stopping) → Probability prediction → Three-stage evaluation

Use Cases:

  • High-dimensional feature interaction modeling
  • Complex nonlinear relationships exist between features
  • Sufficient data volume (>10k samples)
  • Pursuit of ultimate model performance (can be ensembled with XGBoost)

Parameter Description

Parameter Required Default Value Description
--data_path / -d ✅ - Data file path (parquet/csv)
--target / -t ✅ - Target variable column name (0/1 binary classification)
--time_col busi_dt Time column name
--train_filter Automatic split Training set filter condition (pandas query)
--oot_filter Split by time OOT cross-time test set condition
--oot_ratio 0.20 If not provided --oot_filter ratio for splitting OOT by time
--val_ratio 0.25 Ratio for splitting val from train_full
--random_seed 42 Random seed
--exclude_cols - Excluded columns, comma-separated
--features - Specified feature list, comma-separated; if not provided, inferred automatically
--hidden_dims 128,64,32 Hidden layer dimensions, comma-separated
--dropout 0.3 Dropout ratio
--learning_rate 0.001 Learning rate
--batch_size 512 Batch size
--epochs 100 Maximum training epochs
--patience 10 Early stopping patience epochs
--weight_decay 1e-4 Weight decay (L2 regularization)
--pos_weight auto Positive sample weight (auto=automatically calculated)
--model_name Automatically generated Model name
--report_output Automatically generated Report output path
--output_dir ./outputs/<ts> Artifact output directory
--config - JSON configuration file path

Execution Method

Run with default parameters:

python scripts/modeling.py \
  --data_path ./data.parquet --target y_label \
  --time_col busi_dt \
  --exclude_cols "cust_code,busi_dt" \
  --output_dir ./outputs/dnn_run

Custom network architecture:

python scripts/modeling.py \
  --data_path ./data.parquet --target y_label \
  --hidden_dims "256,128,64" \
  --dropout 0.4 \
  --learning_rate 0.0005 \
  --epochs 200 \
  --output_dir ./outputs/dnn_run

Common Scenarios

Scenario 1: Quick modeling with default parameters

python scripts/modeling.py --data_path ./data.parquet --target y_label --output_dir ./outputs/dnn_run

Scenario 2: Custom network architecture

python scripts/modeling.py --data_path ./data.parquet --target y_label \
  --hidden_dims "256,128,64" --dropout 0.4 --learning_rate 0.0005 \
  --output_dir ./outputs/dnn_run

Scenario 3: Modeling with specified features

python scripts/modeling.py --data_path ./data.parquet --target y_label \
  --features "feat1,feat2,feat3" --output_dir ./outputs/dnn_run

Output Artifacts

  1. Modeling report(Markdown) — includes data splitting, network architecture, training curves, three-stage evaluation metrics, stability analysis
  2. Model file(.pt) — PyTorch state_dict + model configuration
  3. Training log(JSON) — loss/AUC/KS records for each epoch
  4. result.json — structured artifact manifest

Comparison with Other Modeling Skills

Dimension dnn-modeling xgb-modeling lr-modeling
Algorithm MLP (PyTorch) XGBoost LR + WoE
Feature Processing StandardScaler Raw values WoE binning
Nonlinear capability Strong (multi-layer activation) Strong (tree structure) Weak
Interpretability Weak Medium (SHAP) Strong (coefficients)
Training speed Slow Fast Very fast
Applicable data volume >10k Any Any
Evaluation system AUC/KS/BCR/PSI AUC/KS/BCR/PSI AUC/KS/BCR/PSI

Upstream/downstream relationships

  • Predecessor:data-profiling → feature-analysis(feature selection)
  • Subsequent:dnn-tuning(hyperparameter tuning optimization),model-comparison(multi-algorithm comparison)
  • Parallel: with xgb-modeling / lr-modeling can be compared horizontally

Notes

  1. Data requirements: The target variable must be 0/1 binary classification
  2. Data volume: It is recommended that training samples > 10k; DNN is prone to overfitting on small samples
  3. Missing values: The script automatically uses median imputation + adds missing indicator columns
  4. Standardization: Automatically applies StandardScaler to numerical features
  5. Early stopping: When val loss remains unchanged for patience consecutive rounds, it stops automatically
  6. No hyperparameter tuning provided: If you need hyperparameter tuning, please switch to dnn-tuning(search network architecture + training parameters)
  7. GPU: Automatically detects CUDA, and falls back to CPU when there is no GPU
  8. Model saving: Model files are saved to <output_dir>/models/