| { |
| "timestamp": "2026-05-07T13:02:05.351253", |
| "model_config": { |
| "boosting_type": "gbdt", |
| "best_params": { |
| "objective": "multiclass", |
| "num_class": 3, |
| "metric": "multi_logloss", |
| "boosting_type": "gbdt", |
| "verbosity": -1, |
| "random_state": 42, |
| "n_estimators": 500, |
| "num_leaves": 31, |
| "learning_rate": 0.05, |
| "max_depth": -1, |
| "min_child_samples": 20, |
| "subsample": 0.8, |
| "colsample_bytree": 0.8, |
| "reg_alpha": 0.1, |
| "reg_lambda": 0.1, |
| "min_split_gain": 0.01 |
| }, |
| "num_features": 25, |
| "total_features": 40 |
| }, |
| "single_model_metrics": { |
| "model_name": "final", |
| "accuracy": 0.37773487773487774, |
| "macro_f1": 0.37009914507843256, |
| "precision_per_class": [ |
| 0.32879377431906615, |
| 0.49642857142857144, |
| 0.2916666666666667 |
| ], |
| "recall_per_class": [ |
| 0.35208333333333336, |
| 0.44126984126984126, |
| 0.3153153153153153 |
| ], |
| "f1_per_class": [ |
| 0.34004024144869216, |
| 0.4672268907563025, |
| 0.30303030303030304 |
| ], |
| "directional_accuracy": 0.31086519114688127, |
| "classification_report": { |
| "SELL": { |
| "precision": 0.32879377431906615, |
| "recall": 0.35208333333333336, |
| "f1-score": 0.34004024144869216, |
| "support": 480.0 |
| }, |
| "HOLD": { |
| "precision": 0.49642857142857144, |
| "recall": 0.44126984126984126, |
| "f1-score": 0.4672268907563025, |
| "support": 630.0 |
| }, |
| "BUY": { |
| "precision": 0.2916666666666667, |
| "recall": 0.3153153153153153, |
| "f1-score": 0.30303030303030304, |
| "support": 444.0 |
| }, |
| "accuracy": 0.37773487773487774, |
| "macro avg": { |
| "precision": 0.37229633747143476, |
| "recall": 0.3695561633061633, |
| "f1-score": 0.37009914507843256, |
| "support": 1554.0 |
| }, |
| "weighted avg": { |
| "precision": 0.38614608215775537, |
| "recall": 0.37773487773487774, |
| "f1-score": 0.3810281284538593, |
| "support": 1554.0 |
| } |
| }, |
| "confusion_matrix": [ |
| [ |
| 169, |
| 151, |
| 160 |
| ], |
| [ |
| 172, |
| 278, |
| 180 |
| ], |
| [ |
| 173, |
| 131, |
| 140 |
| ] |
| ], |
| "best_iteration": 6 |
| }, |
| "confidence_filtering": { |
| "all": { |
| "accuracy": 0.37773487773487774, |
| "macro_f1": 0.37009914507843256 |
| }, |
| "confidence_0.55": { |
| "accuracy": 0.40540540540540543, |
| "macro_f1": 0.1923076923076923, |
| "coverage": 0.0 |
| }, |
| "confidence_0.65": { |
| "accuracy": 0.40540540540540543, |
| "macro_f1": 0.1923076923076923, |
| "coverage": 0.0 |
| } |
| }, |
| "regime_metrics": { |
| "bull": { |
| "model_name": "regime_bull", |
| "accuracy": 0.28330522765598654, |
| "macro_f1": 0.267104237869703, |
| "precision_per_class": [ |
| 0.270935960591133, |
| 0.5, |
| 0.2630057803468208 |
| ], |
| "recall_per_class": [ |
| 0.3470031545741325, |
| 0.08103130755064457, |
| 0.558282208588957 |
| ], |
| "f1_per_class": [ |
| 0.30428769017980634, |
| 0.13946117274167988, |
| 0.3575638506876228 |
| ], |
| "directional_accuracy": 0.2659380692167577, |
| "classification_report": { |
| "SELL": { |
| "precision": 0.270935960591133, |
| "recall": 0.3470031545741325, |
| "f1-score": 0.30428769017980634, |
| "support": 317.0 |
| }, |
| "HOLD": { |
| "precision": 0.5, |
| "recall": 0.08103130755064457, |
| "f1-score": 0.13946117274167988, |
| "support": 543.0 |
| }, |
| "BUY": { |
| "precision": 0.2630057803468208, |
| "recall": 0.558282208588957, |
| "f1-score": 0.3575638506876228, |
| "support": 326.0 |
| }, |
| "accuracy": 0.28330522765598654, |
| "macro avg": { |
| "precision": 0.344647246979318, |
| "recall": 0.3287722235712447, |
| "f1-score": 0.267104237869703, |
| "support": 1186.0 |
| }, |
| "weighted avg": { |
| "precision": 0.3736311837271945, |
| "recall": 0.28330522765598654, |
| "f1-score": 0.24346747884476885, |
| "support": 1186.0 |
| } |
| }, |
| "confusion_matrix": [ |
| [ |
| 110, |
| 25, |
| 182 |
| ], |
| [ |
| 171, |
| 44, |
| 328 |
| ], |
| [ |
| 125, |
| 19, |
| 182 |
| ] |
| ], |
| "best_iteration": 1 |
| }, |
| "bear": { |
| "model_name": "regime_bear", |
| "accuracy": 0.2554347826086957, |
| "macro_f1": 0.2536029486787063, |
| "precision_per_class": [ |
| 0.4810126582278481, |
| 0.15328467153284672, |
| 0.23026315789473684 |
| ], |
| "recall_per_class": [ |
| 0.2331288343558282, |
| 0.2413793103448276, |
| 0.2966101694915254 |
| ], |
| "f1_per_class": [ |
| 0.3140495867768595, |
| 0.1875, |
| 0.25925925925925924 |
| ], |
| "directional_accuracy": 0.31601731601731603, |
| "classification_report": { |
| "SELL": { |
| "precision": 0.4810126582278481, |
| "recall": 0.2331288343558282, |
| "f1-score": 0.3140495867768595, |
| "support": 163.0 |
| }, |
| "HOLD": { |
| "precision": 0.15328467153284672, |
| "recall": 0.2413793103448276, |
| "f1-score": 0.1875, |
| "support": 87.0 |
| }, |
| "BUY": { |
| "precision": 0.23026315789473684, |
| "recall": 0.2966101694915254, |
| "f1-score": 0.25925925925925924, |
| "support": 118.0 |
| }, |
| "accuracy": 0.2554347826086957, |
| "macro avg": { |
| "precision": 0.2881868292184772, |
| "recall": 0.25703943806406043, |
| "f1-score": 0.2536029486787063, |
| "support": 368.0 |
| }, |
| "weighted avg": { |
| "precision": 0.3231301150708583, |
| "recall": 0.2554347826086957, |
| "f1-score": 0.2665629761880997, |
| "support": 368.0 |
| } |
| }, |
| "confusion_matrix": [ |
| [ |
| 38, |
| 56, |
| 69 |
| ], |
| [ |
| 18, |
| 21, |
| 48 |
| ], |
| [ |
| 23, |
| 60, |
| 35 |
| ] |
| ], |
| "best_iteration": 2 |
| } |
| }, |
| "regime_combined": { |
| "accuracy": 0.2767052767052767, |
| "macro_f1": 0.2652463522200661 |
| }, |
| "top25_features": [ |
| "vix_level", |
| "month", |
| "vix_5d_change", |
| "atr_norm", |
| "dist_52w_low", |
| "adx", |
| "beta_60", |
| "dist_52w_high", |
| "macd_hist", |
| "rolling_vol_20", |
| "rolling_vol_10", |
| "nifty_log_return", |
| "macd_signal", |
| "stoch_d", |
| "rsi_28", |
| "rolling_vol_5", |
| "cci_20", |
| "bb_bandwidth", |
| "obv_norm", |
| "bb_pctb", |
| "rolling_mean_ret_10", |
| "rolling_mean_ret_20", |
| "is_expiry_week", |
| "rolling_mean_ret_5", |
| "rsi_14" |
| ], |
| "shap_top10": [ |
| "vix_level", |
| "month", |
| "vix_5d_change", |
| "atr_norm", |
| "dist_52w_low", |
| "adx", |
| "beta_60", |
| "dist_52w_high", |
| "macd_hist", |
| "rolling_vol_20" |
| ], |
| "india_features_in_top10": [ |
| "vix_level", |
| "vix_5d_change", |
| "beta_60", |
| "dist_52w_high", |
| "dist_52w_low" |
| ], |
| "cv_fold_info": [ |
| { |
| "fold": 1, |
| "accuracy": 0.3719806763285024, |
| "macro_f1": 0.35396474670419026, |
| "best_iteration": 10 |
| }, |
| { |
| "fold": 2, |
| "accuracy": 0.32753623188405795, |
| "macro_f1": 0.26641265670818587, |
| "best_iteration": 12 |
| }, |
| { |
| "fold": 3, |
| "accuracy": 0.3323671497584541, |
| "macro_f1": 0.3104810444860833, |
| "best_iteration": 2 |
| }, |
| { |
| "fold": 4, |
| "accuracy": 0.39710144927536234, |
| "macro_f1": 0.37705502829393306, |
| "best_iteration": 8 |
| }, |
| { |
| "fold": 5, |
| "accuracy": 0.3826086956521739, |
| "macro_f1": 0.3802472962420141, |
| "best_iteration": 13 |
| } |
| ] |
| } |