Feature Engineering & Importance: EURUSD

EURUSD  |  M15 time bars  |  2023-01-02 to 2023-04-15

Report Generated: 2026-08-16 11:06

Snapshot

Features (kept)
44
Training Samples
1470
Model Role
Primary
OOB Score
0.9442
OOS (neg_log_loss)
-1.0025
Weighting Scheme
return_linear_0.2

Feature clusters: 2

Feature Sources

Columns contributed by each feature function and how many survived preprocessing (constant/duplicate removal).

SourceProducedKept
signal_family66
solo_predictor11
price_block66
noise_block88
time_features2323

Dropped Features (Preprocessing)

No columns dropped in preprocessing.

Method Status

8 of 8 requested method(s) produced a result. A method that fails is logged and skipped, so this table is the only place a failure is visible.

MethodStatusDetail
mdi✓ ok
mda✓ ok
sfi✓ ok
clustered_mdi✓ ok
clustered_mda✓ ok
pca✓ ok
orthogonal✓ ok
fingerprint✓ ok

Feature Clusters (ONC)

Clustered MDI and MDA assign one score to a whole cluster and broadcast it to every member, so cluster membership determines the result. Very unequal cluster sizes make clustered MDI hard to compare across clusters, because a cluster's score is the sum of its members' impurity reductions.

ClusterSizeMembers
Cluster 135vol_20, vol_60, range_pct, vol_ratio, noise_00, noise_01, noise_02, noise_03, noise_04, noise_05, noise_06, noise_07, hour_sin_h1, hour_cos_h1, hour_sin_h2, hour_cos_h2, hour_sin_h3, hour_cos_h3, dayofweek_sin, dayofweek_cos, dayofyear_sin, dayofyear_cos, sydney_session, tokyo_session, london_session, ny_session, session_overlap, sydney_session_vol, tokyo_session_vol, london_session_vol, ny_session_vol, session_overlap_vol, friday_ny_close_vol, sunday_open_vol, month_end_vol
Cluster 29sig_zscore, sig_ema, sig_rank, sig_tanh, sig_clip, sig_slope, mom_12, ret_1, ret_5

MDI — Mean Decrease Impurity

In-sample impurity reduction, normalized to sum to 1. Diluted across correlated features: two copies of one predictor each receive about half its true credit.

MDI — Mean Decrease Impurity
Top 30 (table)
mean std
sig_rank 0.06352 0.00680
sig_zscore 0.05192 0.00662
sig_tanh 0.04950 0.00685
sig_clip 0.04747 0.00663
sig_ema 0.03814 0.00450
ret_5 0.03747 0.00451
mom_12 0.03683 0.00404
dayofweek_sin 0.03462 0.00368
london_session_vol 0.03446 0.00338
ny_session_vol 0.03266 0.00261
sydney_session_vol 0.03059 0.00267
vol_60 0.03032 0.00217
tokyo_session_vol 0.02944 0.00224
dayofyear_sin 0.02916 0.00264
ret_1 0.02799 0.00335
dayofyear_cos 0.02760 0.00237
sig_slope 0.02497 0.00217
session_overlap_vol 0.02419 0.00179
vol_20 0.02353 0.00149
vol_ratio 0.02235 0.00135
dayofweek_cos 0.02085 0.00175
sunday_open_vol 0.01903 0.00187
friday_ny_close_vol 0.01773 0.00199
hour_cos_h1 0.01546 0.00100
noise_07 0.01523 0.00068
range_pct 0.01483 0.00084
noise_03 0.01467 0.00072
hour_sin_h1 0.01455 0.00093
noise_05 0.01431 0.00073
noise_01 0.01424 0.00077

MDA — Mean Decrease Accuracy

Out-of-sample degradation when a column is permuted, measured over purged and embargoed folds. Also diluted by substitution, but on the correct side of the train/test split.

MDA — Mean Decrease Accuracy
Top 30 (table)
mean std
sig_zscore 0.04583 0.01200
sig_tanh 0.02823 0.00859
sig_rank 0.02234 0.00601
sig_ema 0.01847 0.00715
sig_clip 0.01677 0.01612
dayofweek_sin 0.01598 0.01037
sydney_session_vol 0.01125 0.00325
mom_12 0.00997 0.00632
ret_1 0.00646 0.00211
ret_5 0.00607 0.00426
sig_slope 0.00485 0.00259
hour_sin_h2 0.00416 0.00142
sunday_open_vol 0.00400 0.00239
sydney_session 0.00308 0.00190
hour_cos_h3 0.00258 0.00125
vol_ratio 0.00233 0.00325
dayofyear_sin 0.00190 0.00115
session_overlap_vol 0.00189 0.00184
range_pct 0.00182 0.00073
noise_01 0.00147 0.00166
noise_05 0.00118 0.00116
noise_03 0.00043 0.00063
noise_06 0.00034 0.00083
tokyo_session_vol -0.00011 0.00768
tokyo_session -0.00023 0.00526
month_end_vol -0.00033 0.00033
noise_07 -0.00086 0.00031
dayofyear_cos -0.00135 0.00121
friday_ny_close_vol -0.00165 0.00162
noise_00 -0.00169 0.00081

Clustered MDI

Cluster impurity totals broadcast to every member. Scales with cluster size, so compare clusters of similar size only.

Clustered MDI
Top 30 (table)
mean std
range_pct 0.02471 0.00034
vol_20 0.02471 0.00034
vol_60 0.02471 0.00034
noise_07 0.02471 0.00034
noise_06 0.02471 0.00034
noise_05 0.02471 0.00034
noise_04 0.02471 0.00034
noise_03 0.02471 0.00034
noise_02 0.02471 0.00034
noise_01 0.02471 0.00034
noise_00 0.02471 0.00034
vol_ratio 0.02471 0.00034
dayofweek_cos 0.02471 0.00034
dayofyear_sin 0.02471 0.00034
dayofyear_cos 0.02471 0.00034
sydney_session 0.02471 0.00034
tokyo_session 0.02471 0.00034
london_session 0.02471 0.00034
ny_session 0.02471 0.00034
session_overlap 0.02471 0.00034
sydney_session_vol 0.02471 0.00034
hour_sin_h1 0.02471 0.00034
hour_cos_h1 0.02471 0.00034
hour_sin_h2 0.02471 0.00034
hour_cos_h2 0.02471 0.00034
hour_sin_h3 0.02471 0.00034
hour_cos_h3 0.02471 0.00034
dayofweek_sin 0.02471 0.00034
session_overlap_vol 0.02471 0.00034
tokyo_session_vol 0.02471 0.00034

Clustered MDA

Degradation when every column in a cluster is permuted together. Size-independent, which makes it the safer of the two clustered methods when cluster sizes are unequal.

Clustered MDA
Top 30 (table)
mean std
sig_zscore 0.19270 0.04023
sig_ema 0.19270 0.04023
sig_rank 0.19270 0.04023
sig_tanh 0.19270 0.04023
sig_clip 0.19270 0.04023
sig_slope 0.19270 0.04023
mom_12 0.19270 0.04023
ret_1 0.19270 0.04023
ret_5 0.19270 0.04023
vol_20 0.00191 0.00295
vol_60 0.00191 0.00295
range_pct 0.00191 0.00295
vol_ratio 0.00191 0.00295
noise_00 0.00191 0.00295
noise_01 0.00191 0.00295
noise_02 0.00191 0.00295
noise_03 0.00191 0.00295
noise_04 0.00191 0.00295
noise_05 0.00191 0.00295
noise_06 0.00191 0.00295
noise_07 0.00191 0.00295
hour_sin_h1 0.00191 0.00295
hour_cos_h1 0.00191 0.00295
hour_sin_h2 0.00191 0.00295
hour_cos_h2 0.00191 0.00295
hour_sin_h3 0.00191 0.00295
hour_cos_h3 0.00191 0.00295
dayofweek_sin 0.00191 0.00295
dayofweek_cos 0.00191 0.00295
dayofyear_sin 0.00191 0.00295

MDI on PCA-Orthogonal Features (AFML 8.5)

MDI recomputed on principal components. Importance concentrated in a few components indicates a low-dimensional signal.

MDI on PCA-Orthogonal Features (AFML 8.5)
Top 30 (table)
mean std
PC_1 0.11023 0.00788
PC_2 0.05920 0.00325
PC_7 0.05361 0.00280
PC_6 0.04949 0.00264
PC_4 0.04713 0.00237
PC_3 0.04533 0.00231
PC_23 0.04054 0.00185
PC_5 0.04029 0.00184
PC_24 0.03819 0.00164
PC_8 0.03609 0.00153
PC_25 0.03570 0.00147
PC_22 0.03304 0.00132
PC_26 0.03255 0.00149
PC_11 0.03192 0.00125
PC_9 0.03155 0.00134
PC_10 0.03131 0.00127
PC_20 0.02990 0.00126
PC_15 0.02990 0.00118
PC_16 0.02989 0.00110
PC_13 0.02965 0.00112
PC_18 0.02894 0.00119
PC_14 0.02773 0.00100
PC_12 0.02713 0.00113
PC_19 0.02705 0.00127
PC_17 0.02695 0.00092
PC_21 0.02668 0.00110

SFI — Single Feature Importance

Different scale. SFI reports the raw out-of-sample score of a model fitted on one feature alone, not a decrement, so its numbers are not comparable with MDI or MDA. An uninformative feature scores about -1.099, the entropy of the 3-class base rate. Scores far below that line are not necessarily uninformative: a single-feature model that fits its column closely produces confident probabilities and is penalized heavily by log-loss whenever it is wrong, so SFI under log-loss partly measures calibration.

SFI
Top 30 (table)
mean std
tokyo_session -1.17195 0.04995
hour_cos_h3 -1.18258 0.04755
session_overlap -1.18314 0.05291
hour_sin_h2 -1.18477 0.04913
london_session -1.18699 0.04758
hour_sin_h3 -1.18865 0.04857
sydney_session -1.19289 0.05134
ny_session -1.19297 0.05681
hour_cos_h2 -1.19885 0.04282
hour_cos_h1 -1.21216 0.04284
hour_sin_h1 -1.22047 0.05441
month_end_vol -1.49920 0.21174
friday_ny_close_vol -1.56866 0.16274
dayofweek_cos -3.34642 1.79848
sig_rank -3.83409 0.74817
sig_tanh -4.14208 0.43689
sunday_open_vol -4.38706 1.83087
sig_zscore -4.58817 0.33497
sig_clip -4.99206 0.29298
ret_5 -5.78784 0.59821
ret_1 -5.99929 0.48542
noise_07 -6.06145 0.73222
dayofweek_sin -6.47236 1.03775
noise_04 -6.61709 1.03967
mom_12 -6.64942 0.62464
noise_01 -6.81784 1.09666
sig_ema -6.82643 0.51407
sig_slope -6.83582 1.30292
noise_05 -6.87859 0.61181
noise_06 -7.25720 0.98747

Substitution Effects — MDI

Dilution is the cluster's total mdi score divided by its best single member's score. A value near 1 means one feature carries the cluster and the naive ranking is trustworthy for it. A value near the cluster size means the credit is split evenly across substitutes, so every member is understated by roughly that factor. Highest here: 17.97×.

size clustered_score naive_total naive_best_member top_member dilution
Cluster 1 35 0.0247 0.6222 0.0346 dayofweek_sin 17.9741
Cluster 2 9 0.0150 0.3778 0.0635 sig_rank 5.9476

Substitution Effects — MDA

Dilution is the cluster's total mda score divided by its best single member's score. A value near 1 means one feature carries the cluster and the naive ranking is trustworthy for it. A value near the cluster size means the credit is split evenly across substitutes, so every member is understated by roughly that factor. Highest here: 3.47×.

size clustered_score naive_total naive_best_member top_member dilution
Cluster 2 9 0.1927 0.1590 0.0458 sig_zscore 3.4690
Cluster 1 35 0.0019 -0.0505 0.0160 dayofweek_sin -3.1610

PCA Orthogonality (AFML 8.6)

Correlation between supervised MDI importance and unsupervised PCA eigen-structure. High positive correlation suggests the model's signal is not pure overfitting.

CorrelationCoefficientp-value
Pearson+0.01510.61
Spearman-0.07820.00811
Kendall-0.05210.00905
Weighted_Kendall_Rank+0.1970nan

Model Fingerprint

Normalised linear vs non-linear partial-dependence effects (Li, Turkington & Yazdani 2019).

linear non_linear
dayofweek_cos 0.1180 0.0775
dayofweek_sin 0.1022 0.0384
dayofyear_cos 0.0524 0.0448
dayofyear_sin 0.0452 0.0372
friday_ny_close_vol 0.0306 0.0353
hour_cos_h1 0.0154 0.0186
hour_cos_h2 0.0110 NaN
hour_cos_h3 0.0141 NaN
hour_sin_h1 0.0280 NaN
hour_sin_h2 0.0110 0.0146
london_session 0.0251 NaN
london_session_vol 0.0261 0.0719
mom_12 NaN 0.0232
month_end_vol NaN 0.0529
noise_00 NaN 0.0121
noise_03 0.0119 NaN
noise_04 NaN 0.0126
noise_05 NaN 0.0127
noise_07 NaN 0.0118
ny_session 0.0455 NaN
ny_session_vol 0.0171 0.0193
ret_1 NaN 0.0243
ret_5 0.0095 0.0173
session_overlap_vol 0.0161 0.0242
sig_clip 0.0185 0.0286
sig_ema 0.0087 0.0246
sig_rank 0.1086 0.0724
sig_slope NaN 0.0175
sig_tanh 0.0330 0.0192
sig_zscore 0.0165 0.0315
sunday_open_vol 0.0100 0.0208
sydney_session 0.0269 NaN
sydney_session_vol 0.0189 0.0272
tokyo_session 0.0197 NaN
tokyo_session_vol 0.0242 0.0756
vol_20 0.0196 0.0182
vol_60 0.0254 0.0288
vol_ratio 0.0222 0.0116