forked from chiki2bum2/SniperGold_ML
145 lines
4.2 KiB
JSON
145 lines
4.2 KiB
JSON
{
| |||
"session": "P3-S21.1 feature contribution audit",
| |||
"model": {
| |||
"primary": "LogisticRegression(C=1.0, L2, max_iter=5000)",
| |||
"scaler": "StandardScaler fit on train only per fold",
| |||
"seed": 42
| |||
},
| |||
"reproduction": {
| |||
"verified_against": "ml/p3/baseline/output/p3_s20_oos_predictions.csv",
| |||
"exact": true,
| |||
"max_abs_prob_diff": 0.0,
| |||
"tol": 1e-09,
| |||
"pooled_oos_roc_recomputed": 0.5791603786527645,
| |||
"pooled_oos_roc_committed": 0.5791603786527645
| |||
},
| |||
"standardization": "StandardScaler z=(x-mean)/std; mean/std fit on THAT fold's TRAINING rows only; std_coef = coefficient on the standardized input; raw_coef = std_coef / scaler.scale_ (back-transformed to original feature units).",
| |||
"population": {
| |||
"all_setup": 686,
| |||
"leads": 594,
| |||
"binary_fit": 571,
| |||
"win": 167,
| |||
"loss": 404
| |||
},
| |||
"hashes": {
| |||
"feature_sha16": "0414e401522ea4e2",
| |||
"label_sha16": "b52a80677d5e9b99",
| |||
"schema_sha16": "470193a9d372c348"
| |||
},
| |||
"folds": [
| |||
[
| |||
0,
| |||
300,
| |||
300,
| |||
395
| |||
],
| |||
[
| |||
0,
| |||
395,
| |||
395,
| |||
490
| |||
],
| |||
[
| |||
0,
| |||
490,
| |||
490,
| |||
571
| |||
]
| |||
],
| |||
"purge_gap_bars": [
| |||
555,
| |||
472,
| |||
321
| |||
],
| |||
"coefficient_method": "refit frozen logistic per fold; verified OOS probabilities == committed P3-S20 predictions within 1e-09",
| |||
"temporal_classification": {
| |||
"direction": "STABLE",
| |||
"h4_gate": "STABLE",
| |||
"m30_gate": "STABLE",
| |||
"sweep_age_bars": "INCONCLUSIVE",
| |||
"choch_age_bars": "STABLE",
| |||
"choch_latency_bars": "VARIABLE",
| |||
"zone_type_code": "INCONCLUSIVE",
| |||
"zone_age_bars": "INCONCLUSIVE",
| |||
"zone_width_atr": "STABLE",
| |||
"price_in_zone_offset": "STABLE",
| |||
"dist_to_zone_center_atr": "STABLE",
| |||
"atr_at_entry": "VARIABLE"
| |||
},
| |||
"focus_features": [
| |||
"direction",
| |||
"h4_gate",
| |||
"m30_gate",
| |||
"price_in_zone_offset",
| |||
"dist_to_zone_center_atr"
| |||
],
| |||
"family_contribution_mass": {
| |||
"CONTEXT": 0.245661,
| |||
"LIQUIDITY_STRUCTURE": 0.128028,
| |||
"ZONE": 0.370136,
| |||
"SCALE": 0.079917
| |||
},
| |||
"focus_by_family": {
| |||
"CONTEXT": 3,
| |||
"LIQUIDITY_STRUCTURE": 0,
| |||
"ZONE": 2,
| |||
"SCALE": 0
| |||
},
| |||
"collinearity": {
| |||
"n": 571,
| |||
"h4_equals_direction": true,
| |||
"m30_equals_direction": true,
| |||
"direction_unique": [
| |||
-1,
| |||
1
| |||
],
| |||
"unique_combinations": [
| |||
[
| |||
-1,
| |||
-1,
| |||
-1
| |||
],
| |||
[
| |||
1,
| |||
1,
| |||
1
| |||
]
| |||
],
| |||
"note": "STRUCTURAL redundancy by construction (context gates must be direction-compatible for any Candidate Setup); NOT a bug."
| |||
},
| |||
"structural_redundancy": {
| |||
"n": 571,
| |||
"direction_equals_h4_equals_m30_every_row": true,
| |||
"dist_eq_poz_minus_half_every_row": true,
| |||
"choch_latency_eq_sweep_minus_choch_every_row": true,
| |||
"zone_type_code_constant": true,
| |||
"readiness_note": "These are EXACT structural/affine identities from the verified canonical chain (F3 gates must be direction-compatible; zone-center offset = in-zone offset - 0.5 width; CHoCH latency = sweep age - CHoCH age). They explain identical standardized columns/coefficients; they do NOT make any feature leaky or invalid, and this audit does NOT remove any feature."
| |||
},
| |||
"zone_atr_semantics": {
| |||
"zone_width_atr": {
| |||
"definition": "(zone_top - zone_bot) / ATR(entry); 0 if degenerate",
| |||
"units": "ATR-ratio (width in ATR multiples)",
| |||
"availability": "entry"
| |||
},
| |||
"price_in_zone_offset": {
| |||
"definition": "(entry_price - zone_bot) / zone_width in [0,1]",
| |||
"units": "unit interval (position within zone)",
| |||
"availability": "entry"
| |||
},
| |||
"dist_to_zone_center_atr": {
| |||
"definition": "(entry_price - (top+bot)/2) / zone_width (signed)",
| |||
"units": "zone-width multiples",
| |||
"availability": "entry"
| |||
},
| |||
"atr_at_entry": {
| |||
"definition": "rolling 14-bar M15 ATR ending at the entry bar",
| |||
"units": "price units",
| |||
"availability": "entry"
| |||
},
| |||
"dependence_on_atr_is_not_leakage": true,
| |||
"scale_note": "ATR dependence is contextual scaling, not target leakage: ATR is known at entry; features carry no post-entry or outcome-derived value (P3-S19)."
| |||
},
| |||
"final_classification": "D_MIXED_CONTRIBUTION",
| |||
"git_commit": "7c9602ca4964f42f4ae8b7ac1ea14ab5e49e9176",
| |||
"generated_utc": "2026-08-25T09:40:21.367843+00:00"
| |||
}
|