File size: 2,762 Bytes
b3d2174
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
---
license: apache-2.0
tags:
- horse-racing
- australia
- gallops
- lightgbm
- ranking
- tabular-classification
pipeline_tag: tabular-classification
---

# Australian Gallops Tipper

LightGBM `ranker` model for ranking Australian thoroughbred race fields.
The model uses FormFav-derived form/field variables and Racing Australia result
labels from a Supabase `ml_feature_matrix` style dataset.

## Intended Use

- Rank runners within a single Australian gallops race.
- Estimate field-normalized win probabilities.
- Support form analysis and model research.

This is not financial advice and must not be treated as a guaranteed betting
system.

## Feature Logic

Numerical inputs are min-max scaled within each `race_id`, so each horse is
evaluated relative to its field. Lower-is-better variables such as barrier,
days since run, last start margin, and last 600m rank are inverted after
scaling.

The model also receives expert bucket scores:

- Speed map and pace: 25%
- Form and class: 25%
- Track and environment: 20%
- Sectionals: 15%
- Humans and market: 15%

This baseline was trained from the local `2026-08-01` FormFav and Racing
Australia comparison archives. Several unavailable live variables are currently
proxy-filled, including true early sectionals, last-start weight, jockey/trainer
historical strike rate, and market firming. Treat this as a first real data
artifact, not a production betting model.

## Validation Metrics

- `mode`: ranker
- `rows`: 1292
- `train_rows`: 1024
- `validation_rows`: 268
- `races`: 124
- `train_races`: 99
- `validation_races`: 25
- `top1_accuracy`: 0.24
- `mean_ndcg_at_3`: 0.3809487605714332
- `race_normalized_log_loss`: 0.3578525368255854
- `roc_auc`: 0.6179423868312758

## Feature Importance

- `expert_prior_score`: 1110.0574
- `form_class_score`: 950.1305
- `rel_sectional_vs_class_avg`: 857.8760
- `rel_api_index`: 829.7493
- `rel_barrier`: 760.1593
- `speed_map_score`: 736.7255
- `rel_margin_beaten_last_start`: 707.3938
- `sectionals_score`: 660.5257
- `rel_track_condition_win_pct`: 609.6845
- `rel_last_600m_rank`: 548.6328
- `track_env_score`: 510.0266
- `rel_distance_mastery_pct`: 320.8251
- `rel_early_speed_rating`: 81.1268
- `projected_settling_position`: 18.3684
- `rel_days_since_last_run`: 6.8742
- `rel_market_firm_factor`: 0.0000
- `rel_jockey_trainer_strike_rate`: 0.0000
- `rel_track_layout_score`: 0.0000
- `human_market_score`: 0.0000
- `rel_weight_delta`: 0.0000

## Files

- `model.joblib`: trained LightGBM estimator
- `model.txt`: native LightGBM booster text dump
- `preprocessing.json`: feature schema and race-relative scaling metadata
- `training_config.json`: training settings
- `metrics.json`: validation metrics
- `feature_importance.csv`: gain-based feature importance