Files
dax-ml/config/models.yaml

88 lines
1.9 KiB
YAML

# Machine Learning Model Configuration
pattern_graders:
# Individual pattern grading models
base_model_type: "RandomForestClassifier" # RandomForestClassifier, XGBoostClassifier
random_forest:
n_estimators: 100
max_depth: 10
min_samples_split: 5
min_samples_leaf: 2
max_features: "sqrt"
random_state: 42
n_jobs: -1
xgboost:
n_estimators: 100
max_depth: 6
learning_rate: 0.1
subsample: 0.8
colsample_bytree: 0.8
random_state: 42
# Feature selection
feature_selection:
enabled: true
method: "mutual_info" # mutual_info, f_test, chi2
top_k_features: 50
# Training configuration
training:
cv_folds: 5
scoring_metric: "f1_weighted"
early_stopping: true
patience: 10
setup_classifier:
# Meta-model for complete setup classification
model_type: "RandomForestClassifier"
# Strategy types
strategies:
continuation:
time_window_start: "03:00"
time_window_end: "03:15"
min_pattern_count: 2
required_patterns: ["fvg", "order_block"]
reversal:
time_window_start: "03:30"
time_window_end: "03:50"
min_pattern_count: 2
required_patterns: ["fvg", "liquidity"]
# Model evaluation
evaluation:
metrics:
- "accuracy"
- "precision"
- "recall"
- "f1_score"
- "roc_auc"
min_accuracy_threshold: 0.75
min_precision_threshold: 0.70
min_recall_threshold: 0.65
# Hyperparameter tuning
tuning:
enabled: false
method: "grid_search" # grid_search, random_search, optuna
n_iter: 50
cv_folds: 5
grid_search:
param_grids:
random_forest:
n_estimators: [50, 100, 200]
max_depth: [5, 10, 15]
min_samples_split: [2, 5, 10]
# Model registry
registry:
track_versions: true
auto_promote: false # Auto-promote best model to "latest"
min_improvement: 0.02 # Minimum improvement to promote (2%)