Instructions to use adarshcod30/margadrishti-models with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Scikit-learn
How to use adarshcod30/margadrishti-models with Scikit-learn:
from huggingface_hub import hf_hub_download import joblib model = joblib.load( hf_hub_download("adarshcod30/margadrishti-models", "sklearn_model.joblib") ) # only load pickle files from sources you trust # read more about it here https://skops.readthedocs.io/en/stable/persistence.html - Notebooks
- Google Colab
- Kaggle
Publish MargaDrishti models, cards and reports
Browse files- README.md +90 -0
- leaderboard.csv +31 -0
- leaderboard_module_b.csv +32 -0
- model_cards/A1.md +44 -0
- model_cards/A2.md +38 -0
- model_cards/A3.md +38 -0
- model_cards/B1.md +41 -0
- model_cards/B2.md +37 -0
- model_cards/B3.md +38 -0
- model_cards/B4.md +32 -0
- model_cards/README.md +13 -0
- onnx/b1_clearance_duration.features.json +44 -0
- onnx/b1_clearance_duration.onnx +3 -0
- onnx/b2_road_closure.features.json +43 -0
- onnx/b2_road_closure.onnx +3 -0
- reports/ablation_enrichment.csv +29 -0
- reports/bundle.json +19 -0
- reports/cis_validation.json +37 -0
- reports/fairness_audit.json +38 -0
- reports/fairness_audit.md +71 -0
- reports/leaderboard.csv +31 -0
- reports/leaderboard_module_b.csv +32 -0
- reports/spatial_analysis.json +33 -0
README.md
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: mit
|
| 3 |
+
tags:
|
| 4 |
+
- tabular-regression
|
| 5 |
+
- tabular-classification
|
| 6 |
+
- spatiotemporal
|
| 7 |
+
- urban-mobility
|
| 8 |
+
- traffic
|
| 9 |
+
- onnx
|
| 10 |
+
library_name: sklearn
|
| 11 |
+
---
|
| 12 |
+
|
| 13 |
+
# MargaDrishti — Models
|
| 14 |
+
|
| 15 |
+
Trained artefacts for **[MargaDrishti](https://github.com/adarshcod30/MargaDrishti)**,
|
| 16 |
+
a spatio-temporal ML system over Bengaluru parking-violation and traffic-event
|
| 17 |
+
data (Nov 2023 – Apr 2024).
|
| 18 |
+
|
| 19 |
+
Live dashboard: **[adarshcod30/margadrishti](https://huggingface.co/spaces/adarshcod30/margadrishti)**
|
| 20 |
+
|
| 21 |
+
## Read this before using the numbers
|
| 22 |
+
|
| 23 |
+
**These models rank predicted _enforcement demand_, not where illegal parking
|
| 24 |
+
occurs.** `corr(log patrol_hours, log total_captures) = 0.967` — about 94% of the
|
| 25 |
+
variance in per-cell violation counts is explained by how much patrolling
|
| 26 |
+
happened there. The project's own
|
| 27 |
+
[enforcement-bias audit](https://github.com/adarshcod30/MargaDrishti/blob/main/reports/fairness_audit.md)
|
| 28 |
+
returns **HIGH concern** on this system, and that is published rather than
|
| 29 |
+
buried: no Getis-Ord hotspot in the data survives exposure adjustment.
|
| 30 |
+
|
| 31 |
+
Two targets are **not** what a leaderboard row suggests:
|
| 32 |
+
|
| 33 |
+
- **B3 (priority) is a recovered rule, not a prediction.** Corridor status
|
| 34 |
+
predicts High priority at 99.84% (13 exceptions in 8,173 events). Scores near
|
| 35 |
+
1.0 reflect that rule.
|
| 36 |
+
- **A3 (capture rejection) is not yet answerable.** The review process changed
|
| 37 |
+
regime mid-window — February 2024 rejection jumped to 0.790 from ~0.28 while
|
| 38 |
+
volume collapsed sixfold — so every family is miscalibrated.
|
| 39 |
+
|
| 40 |
+
## What's here
|
| 41 |
+
|
| 42 |
+
| File | What it is |
|
| 43 |
+
|---|---|
|
| 44 |
+
| `onnx/b1_clearance_duration.onnx` | Event clearance duration (log1p minutes), RandomForest |
|
| 45 |
+
| `onnx/b2_road_closure.onnx` | Road-closure probability, RandomForest |
|
| 46 |
+
| `onnx/*.features.json` | **Exact input feature order** — ONNX takes a bare float array with no column names |
|
| 47 |
+
| `leaderboard.csv` | Module A: every family × A1/A2/A3 |
|
| 48 |
+
| `leaderboard_module_b.csv` | Module B: every family × B1–B4 |
|
| 49 |
+
| `model_cards/` | One card per target, generated from the leaderboards |
|
| 50 |
+
| `reports/` | Spatial statistics, CIS validation, enrichment ablation, fairness audit |
|
| 51 |
+
|
| 52 |
+
### Why RandomForest and not the leaderboard winner
|
| 53 |
+
|
| 54 |
+
The browser ships RandomForest because **onnxmltools misroutes ~1% of LightGBM
|
| 55 |
+
rows at split boundaries** — median divergence is float32 noise (4.3e-07) but 5
|
| 56 |
+
of 500 sample rows diverged by up to 0.09. skl2onnx converts RandomForest
|
| 57 |
+
exactly (max 1.0e-06; the classifier is bit-exact).
|
| 58 |
+
|
| 59 |
+
That trade is only defensible because the Module B leaderboard already put
|
| 60 |
+
random_forest at 0.5034 against xgboost's 0.4990 — a gap far inside the ±0.13
|
| 61 |
+
fold standard deviation. Exact client/server agreement costs no measurable
|
| 62 |
+
accuracy.
|
| 63 |
+
|
| 64 |
+
## Headline results
|
| 65 |
+
|
| 66 |
+
| Target | Best family | Metric | vs strongest baseline |
|
| 67 |
+
|---|---|---|---|
|
| 68 |
+
| A1 · parking intensity | xgboost | 0.5014 Poisson deviance | **+42.9%** |
|
| 69 |
+
| A2 · hotspot | catboost | 0.1438 PR-AUC | ~49× base rate (0.29%) |
|
| 70 |
+
| A3 · capture rejection | xgboost | 0.3088 PR-AUC | *not answerable* |
|
| 71 |
+
| B1 · clearance duration | xgboost | 0.4990 ± 0.128 | +27.7% |
|
| 72 |
+
| B2 · road closure | catboost | 0.3615 ± 0.071 PR-AUC | ~4× (8.3% prevalence) |
|
| 73 |
+
| B4 · cause from text | char n-gram + logreg | 0.478 macro-F1 | 10.8× |
|
| 74 |
+
|
| 75 |
+
B4's notable result is equity rather than accuracy: **English 0.483 vs Kannada
|
| 76 |
+
0.472**, essentially no language gap on a field that mixes both scripts.
|
| 77 |
+
|
| 78 |
+
## Reproduce
|
| 79 |
+
|
| 80 |
+
```bash
|
| 81 |
+
git clone https://github.com/adarshcod30/MargaDrishti
|
| 82 |
+
cd MargaDrishti && make data && make reproduce
|
| 83 |
+
```
|
| 84 |
+
|
| 85 |
+
Seed 42. Splits are chronological, never random.
|
| 86 |
+
|
| 87 |
+
## Licence
|
| 88 |
+
|
| 89 |
+
MIT. Source data are anonymised public releases and remain subject to their
|
| 90 |
+
original terms.
|
leaderboard.csv
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
target,target_name,model,family,is_baseline,task,notes,fit_seconds,mae,rmse,median_ae,r2,poisson_deviance,precision_at_10,ndcg_at_10,precision_at_50,ndcg_at_50,kendall_tau,status,peak_rss_gb,n_features,baseline_model,baseline_metric,beats_baseline,improvement_pct,pr_auc,roc_auc,brier,f1_best,threshold_best,prevalence
|
| 2 |
+
A1,parking_intensity,mean,baseline,True,regression,training mean; absolute floor,0.0,0.21914739880112935,1.1188749580216464,0.12099105630842004,-0.00021001473471704557,0.8775469874345732,0.0,0.011836678227344,0.02,0.04359245856709398,,ok,2.62,40,mean,0.8775469874345732,False,0.0,,,,,,
|
| 3 |
+
A1,parking_intensity,seasonal_naive,baseline,True,regression,"same cell, same hour, one week earlier",0.0,0.18092604212984703,1.4625021548471049,0.0,-0.7089175909565442,3.5433803733331763,0.9,0.9892596488518955,0.94,0.9894062538383603,0.7874110090786781,ok,2.91,40,mean,0.8775469874345732,False,-303.78,,,,,,
|
| 4 |
+
A1,parking_intensity,cell_hour_mean,baseline,True,regression,per-cell hour-of-week historical mean,0.05,0.18129081343487274,1.0917370605397225,0.0,0.04772102118075083,1.3909762113409176,0.9,0.9640526701091585,0.74,0.9368908812103371,0.4254233878612323,ok,2.99,40,mean,0.8775469874345732,False,-58.51,,,,,,
|
| 5 |
+
A1,parking_intensity,ridge,linear,False,regression,L2 linear; interpretable reference,2.56,0.18181800680663765,1.053400425402709,0.04035066663937402,0.11342583888505309,0.5958682195895385,1.0,0.9996289938547847,0.94,0.994423004151664,0.7779481369948152,ok,4.56,40,mean,0.8775469874345732,True,32.1,,,,,,
|
| 6 |
+
A1,parking_intensity,poisson_glm,linear,False,regression,principled for counts; log link matches the data-generating process,5.06,0.17189238236181775,1.0885180260902263,0.020988049915628713,0.05332841455092818,0.5673836008157805,0.9,0.9921111598444908,0.82,0.9734818390275598,0.6490265766979837,ok,4.56,40,mean,0.8775469874345732,True,35.34,,,,,,
|
| 7 |
+
A1,parking_intensity,random_forest,trees,False,regression,best performer in the NYC parking-ticket literature,432.02,0.2187852573703123,1.0368686931759805,0.07861505291819938,0.14103471051962968,0.5668776162518149,1.0,0.9976864207756954,0.92,0.9925068023673536,0.3824930449137574,ok,4.56,40,mean,0.8775469874345732,True,35.4,,,,,,
|
| 8 |
+
A1,parking_intensity,extra_trees,trees,False,regression,variance-reduced contrast to random forest,113.51,0.1748889492729056,1.0341993416221973,0.024441011100341938,0.14545171897779297,0.5086050211645817,1.0,0.9980373997309749,0.9,0.9904771755584537,0.7389562391662564,ok,4.56,40,mean,0.8775469874345732,True,42.04,,,,,,
|
| 9 |
+
A1,parking_intensity,hist_gbm,gbdt,False,regression,sklearn-native GBDT; no extra dependency,7.01,0.1699447558929771,1.034312065227721,0.032510768255749244,0.1452654241134953,0.5171461350222122,0.9,0.9949781774288574,0.92,0.9926367657099348,0.7824813544738287,ok,4.56,40,mean,0.8775469874345732,True,41.07,,,,,,
|
| 10 |
+
A1,parking_intensity,hist_gbm_poisson,gbdt,False,regression,GBDT with a Poisson objective; regularised to keep the log link stable,14.29,0.161917240569187,1.0289828610535874,0.01834047777342695,0.15405062629205601,0.5044736803352946,0.9,0.9928776900994111,0.88,0.9828895420262487,0.747536295929003,ok,4.56,40,mean,0.8775469874345732,True,42.51,,,,,,
|
| 11 |
+
A1,parking_intensity,xgboost,gbdt,False,regression,GBDT benchmark with a count objective,13.35,0.16132170237280638,1.0295177075844357,0.020227094180881977,0.1531709796169487,0.5014180720880342,0.9,0.9930155771598324,0.9,0.9892487999987141,0.732518897543617,ok,4.56,40,mean,0.8775469874345732,True,42.86,,,,,,
|
| 12 |
+
A1,parking_intensity,lightgbm,gbdt,False,regression,fast GBDT; also supplies quantile regression for module B,9.21,0.16640163520589776,1.036428653608582,0.023906181597715806,0.14176363311352247,0.5075690673391181,0.9,0.9946071712836422,0.88,0.9875119017082823,0.6610736017346375,ok,4.56,40,mean,0.8775469874345732,True,42.16,,,,,,
|
| 13 |
+
A1,parking_intensity,catboost,gbdt,False,regression,ordered target statistics for high-cardinality categoricals,24.29,0.1612747364091122,1.0276079755812633,0.024321455756110506,0.15630976299014676,0.5104211001090951,0.9,0.9939142269313003,0.9,0.987792243792657,0.76728054230587,ok,4.56,40,mean,0.8775469874345732,True,41.84,,,,,,
|
| 14 |
+
A1,parking_intensity,torch_mlp,deep,False,regression,"feedforward net, Poisson NLL, on mps",27.37,0.13132892692142556,1.0542680428133824,0.005885475780814886,0.11196481051931706,0.5659210694417138,1.0,0.9968587149371659,0.9,0.98714599707701,0.7811024343899086,ok,4.56,40,mean,0.8775469874345732,True,35.51,,,,,,
|
| 15 |
+
A1,parking_intensity,torch_lstm,deep,False,regression,"LSTM over each cell's 48h history, on mps; the only family that sees temporal order rather than unordered lag columns",143.46,0.18193766879577852,1.0532079351876282,0.031860023736953735,0.11374982063897854,0.5841935486447665,0.9,0.9971648090706511,0.94,0.9931211246170913,0.878144760211635,ok,4.56,40,mean,0.8775469874345732,True,33.43,,,,,,
|
| 16 |
+
A2,hotspot,prior,baseline,True,classification,training prevalence for every row,0.02,,,,,,,,,,,ok,4.56,40,prior,0.0029089458395841036,False,0.0,0.0029089458395841036,0.5,0.0029007703566372683,0.005801016835379573,0.003444186860804607,0.0029089458395841036
|
| 17 |
+
A2,hotspot,logistic,linear,False,classification,interpretable reference,3.64,,,,,,,,,,,ok,4.56,40,prior,0.0029089458395841036,True,3760.27,0.11229315997607633,0.9221106745877935,0.0027461978520655697,0.2100065832784727,0.08572510411809244,0.0029089458395841036
|
| 18 |
+
A2,hotspot,random_forest,trees,False,classification,,50.6,,,,,,,,,,,ok,4.66,40,prior,0.0029089458395841036,True,4603.33,0.1368172776631159,0.9377418045451218,0.0026732557654095324,0.2285714285714286,0.1031976092892432,0.0029089458395841036
|
| 19 |
+
A2,hotspot,extra_trees,trees,False,classification,,17.08,,,,,,,,,,,ok,4.66,40,prior,0.0029089458395841036,True,4130.18,0.1230537723686062,0.9369560104765595,0.0027087969286315886,0.21223122032951688,0.08255354841731292,0.0029089458395841036
|
| 20 |
+
A2,hotspot,hist_gbm,gbdt,False,classification,,3.67,,,,,,,,,,,ok,4.66,40,prior,0.0029089458395841036,True,2838.28,0.08547284025267596,0.9097763542394164,0.00298728517614979,0.18650887573964497,0.07681518232189857,0.0029089458395841036
|
| 21 |
+
A2,hotspot,xgboost,gbdt,False,classification,,11.43,,,,,,,,,,,ok,4.66,40,prior,0.0029089458395841036,True,4340.7,0.12917743676760496,0.9368364582607696,0.002691778627234639,0.223070149691811,0.07977016270160675,0.0029089458395841036
|
| 22 |
+
A2,hotspot,lightgbm,gbdt,False,classification,,8.01,,,,,,,,,,,ok,4.66,40,prior,0.0029089458395841036,True,1136.22,0.035961093687821556,0.9252418276166541,0.007973816202310666,0.09569881165211906,0.05188120058826153,0.0029089458395841036
|
| 23 |
+
A2,hotspot,catboost,gbdt,False,classification,,24.89,,,,,,,,,,,ok,4.66,40,prior,0.0029089458395841036,True,4844.35,0.14382839190503652,0.9353999584117022,0.0026639999595382945,0.23731186559327966,0.10559202874947071,0.0029089458395841036
|
| 24 |
+
A3,capture_rejection,prior,baseline,True,classification,training prevalence for every row,0.0,,,,,,,,,,,ok,4.66,35,prior,0.2459016393442623,False,0.0,0.2459016393442623,0.5,0.1880989065447491,0.3947368421052631,0.2975241483174076,0.2459016393442623
|
| 25 |
+
A3,capture_rejection,logistic,linear,False,classification,interpretable reference,0.25,,,,,,,,,,,ok,4.66,35,prior,0.2459016393442623,True,17.67,0.28934353491863396,0.5642003700819774,0.7210785599827645,0.4068151532457644,0.965719296137278,0.2459016393442623
|
| 26 |
+
A3,capture_rejection,random_forest,trees,False,classification,,1.83,,,,,,,,,,,ok,4.66,35,prior,0.2459016393442623,True,18.72,0.2919371223029594,0.56828217040538,0.5618644396428021,0.4039561718219723,0.778454848961047,0.2459016393442623
|
| 27 |
+
A3,capture_rejection,extra_trees,trees,False,classification,,0.95,,,,,,,,,,,ok,4.66,35,prior,0.2459016393442623,True,14.87,0.2824691009004455,0.5544284084529997,0.4572565673147851,0.4027477180765973,0.6802202257324684,0.2459016393442623
|
| 28 |
+
A3,capture_rejection,hist_gbm,gbdt,False,classification,,2.19,,,,,,,,,,,ok,4.66,35,prior,0.2459016393442623,True,20.19,0.29554389576175,0.5574531478765222,0.7166039444839376,0.3960306720793866,0.7667793311770811,0.2459016393442623
|
| 29 |
+
A3,capture_rejection,xgboost,gbdt,False,classification,,1.21,,,,,,,,,,,ok,4.66,35,prior,0.2459016393442623,True,25.57,0.30877406545463415,0.574990291887237,0.712176038585389,0.3962299020513768,0.8728531002998352,0.2459016393442623
|
| 30 |
+
A3,capture_rejection,lightgbm,gbdt,False,classification,,1.64,,,,,,,,,,,ok,4.66,35,prior,0.2459016393442623,True,15.43,0.2838436986298878,0.5522256561108128,0.7249781623305395,0.39535096549830695,0.903491176858297,0.2459016393442623
|
| 31 |
+
A3,capture_rejection,catboost,gbdt,False,classification,,2.94,,,,,,,,,,,ok,4.66,35,prior,0.2459016393442623,True,21.46,0.2986611304240019,0.5630499168019767,0.6816912681208498,0.4033317001469867,0.908946155030489,0.2459016393442623
|
leaderboard_module_b.csv
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
target,target_name,model,family,is_baseline,task,n_folds,notes,mae,mae_sd,rmse,rmse_sd,median_ae,median_ae_sd,r2,r2_sd,poisson_deviance,poisson_deviance_sd,mae_minutes,mae_minutes_sd,status,fit_seconds,pinball_loss,pinball_loss_sd,pr_auc,pr_auc_sd,roc_auc,roc_auc_sd,brier,brier_sd,f1_best,f1_best_sd,threshold_best,threshold_best_sd,prevalence,prevalence_sd,macro_f1,accuracy,macro_f1_english,macro_f1_kannada,n_classes
|
| 2 |
+
B1,clearance_duration,mean,baseline,True,regression,5,training mean; absolute floor,1.260522106664037,0.24065851165191923,1.7509625051756554,0.3123877691892465,0.8182186930855149,0.10365072055742873,-0.03382723196245516,0.046237587712695025,0.690449950536684,0.212962633001905,554.9495030799408,326.5441776584073,ok,0.0,,,,,,,,,,,,,,,,,,,
|
| 3 |
+
B1,clearance_duration,ridge,linear,False,regression,5,L2 linear; interpretable reference,1.2027714447584033,0.22107559382787254,1.558701342695872,0.26439943382884573,0.9284125467194627,0.16692183551890266,0.17806096764552876,0.06060978670652946,0.5400559881078847,0.1506640444624086,554.24205262534,321.0496104169942,ok,0.0,,,,,,,,,,,,,,,,,,,
|
| 4 |
+
B1,clearance_duration,poisson_glm,linear,False,regression,5,principled for counts; log link matches the data-generating process,1.2004740738582493,0.226246960403613,1.5670191250666126,0.27521093954153764,0.9107688574864687,0.15149816303053437,0.17034943702382183,0.06249915395863155,0.5445168447346016,0.15971452782463025,555.4238921566173,321.414740670501,ok,0.1,,,,,,,,,,,,,,,,,,,
|
| 5 |
+
B1,clearance_duration,random_forest,trees,False,regression,5,best performer in the NYC parking-ticket literature,1.154109403970058,0.20386322571261686,1.5038677747309048,0.24884664840166593,0.8994341603897524,0.16931014891016072,0.2349544148863924,0.04191577024976812,0.5034028656508378,0.1336955141062254,546.6246740710304,318.3372895885935,ok,0.5,,,,,,,,,,,,,,,,,,,
|
| 6 |
+
B1,clearance_duration,extra_trees,trees,False,regression,5,variance-reduced contrast to random forest,1.170107417853491,0.196936582044114,1.517832248851376,0.22795257951879677,0.916624274822818,0.18568561664998787,0.21698979131712245,0.06127465914212488,0.5084229745354177,0.12182766493882241,551.1426573705972,316.830673070478,ok,0.3,,,,,,,,,,,,,,,,,,,
|
| 7 |
+
B1,clearance_duration,hist_gbm,gbdt,False,regression,5,sklearn-native GBDT; no extra dependency,1.1611349606244405,0.17240512322910476,1.5410742439131884,0.21841018429659834,0.8821463162595204,0.11817623056696008,0.1886687817938532,0.09343934368444978,0.5321782898307907,0.11978398454851363,549.0341083921994,303.80459511948555,ok,3.6,,,,,,,,,,,,,,,,,,,
|
| 8 |
+
B1,clearance_duration,hist_gbm_poisson,gbdt,False,regression,5,GBDT with a Poisson objective; regularised to keep the log link stable,1.1868588555401016,0.21445214888247693,1.5547732119350581,0.2727403476151118,0.9004333603032701,0.14198654381520903,0.18322617151449858,0.06898591271113204,0.5362677504652243,0.1518549175604013,552.7475898758667,320.23679844832895,ok,0.9,,,,,,,,,,,,,,,,,,,
|
| 9 |
+
B1,clearance_duration,xgboost,gbdt,False,regression,5,GBDT benchmark with a count objective,1.1191195132282084,0.18446061055021115,1.4936198240242242,0.23736234194795164,0.8383735278704563,0.10175839466304133,0.24277048434229717,0.06488679791559139,0.49897152893099894,0.12794040677529817,538.6806482810352,310.529315461345,ok,1.2,,,,,,,,,,,,,,,,,,,
|
| 10 |
+
B1,clearance_duration,lightgbm,gbdt,False,regression,5,fast GBDT; also supplies quantile regression for module B,1.1645695314531896,0.20544872614182955,1.5196092073161651,0.2507225683803128,0.8932175105056505,0.171521305785665,0.2176992125048928,0.06449326836308021,0.5118820240103862,0.13289145525794557,549.3335062251077,320.4921936535713,ok,0.7,,,,,,,,,,,,,,,,,,,
|
| 11 |
+
B1,clearance_duration,catboost,gbdt,False,regression,5,ordered target statistics for high-cardinality categoricals,1.174484044419622,0.1534538387857054,1.557109600189331,0.2101488036586489,0.8907565744051299,0.08694029233256124,0.172111730452497,0.07541396133765116,0.5468205776648352,0.11220804648294296,538.7609414365767,312.3461617908101,ok,1.9,,,,,,,,,,,,,,,,,,,
|
| 12 |
+
B1,clearance_duration,torch_mlp,deep,False,regression,5,"feedforward net, Poisson NLL, on mps",4.051738410161095,2.0251186137000228,10.668206192627903,9.935947712074,2.0321815146253757,0.6175151979876022,-54.39175130074419,90.93946061170031,4.404505914031806,3.908198617112085,14098.059535723452,7892.800038703403,ok,1.0,,,,,,,,,,,,,,,,,,,
|
| 13 |
+
B1,clearance_duration,lightgbm_q50,quantile,False,regression,5,LightGBM quantile regression at P50,,,,,,,,,,,541.7571322286803,,ok,,0.5658338191196254,0.09038348141031136,,,,,,,,,,,,,,,,,
|
| 14 |
+
B1,clearance_duration,lightgbm_q90,quantile,False,regression,5,LightGBM quantile regression at P90,,,,,,,,,,,895.5332533083016,,ok,,0.23434683692192348,0.04018826495735153,,,,,,,,,,,,,,,,,
|
| 15 |
+
B2,road_closure,prior,baseline,True,classification,5,training prevalence for every row,,,,,,,,,,,,,ok,0.0,,,0.0872716303646841,0.015447408075374954,0.5,0.0,0.0797543279072396,0.013092340418834492,0.16023722561204323,0.02604840552371711,0.07779003473865542,0.003531587336180356,0.0872716303646841,0.015447408075374954,,,,,
|
| 16 |
+
B2,road_closure,logistic,linear,False,classification,5,interpretable reference,,,,,,,,,,,,,ok,0.1,,,0.3304267858760782,0.06471350802192852,0.7584314260669237,0.04641625426463492,0.07129412959900527,0.015619908442937083,0.38178201640419,0.04937322041037473,0.20804403607236194,0.14745539082543763,0.0872716303646841,0.015447408075374954,,,,,
|
| 17 |
+
B2,road_closure,random_forest,trees,False,classification,5,,,,,,,,,,,,,,ok,0.7,,,0.35779048369341504,0.07988578135872054,0.7723327586297549,0.044824833846754765,0.07123508605190483,0.01345000678288648,0.4326232448515889,0.07302480797017939,0.1953908651352837,0.04965092516914378,0.0872716303646841,0.015447408075374954,,,,,
|
| 18 |
+
B2,road_closure,extra_trees,trees,False,classification,5,,,,,,,,,,,,,,ok,0.5,,,0.3024126443474463,0.08285502431502986,0.7443135887736125,0.04988927394341682,0.07340695542256745,0.01399431883063253,0.38827682438344857,0.05921573087401412,0.17721072629847961,0.055056346149816346,0.0872716303646841,0.015447408075374954,,,,,
|
| 19 |
+
B2,road_closure,hist_gbm,gbdt,False,classification,5,,,,,,,,,,,,,,ok,7.2,,,0.3268907537929864,0.0607311114359096,0.7365730144984709,0.05000068175392363,0.07237993687219586,0.013179333444799383,0.385491439170347,0.06543762427594003,0.14926429545520192,0.11864230225770306,0.0872716303646841,0.015447408075374954,,,,,
|
| 20 |
+
B2,road_closure,xgboost,gbdt,False,classification,5,,,,,,,,,,,,,,ok,1.4,,,0.3445279383603258,0.08145351326476695,0.7564887454692879,0.039417263136213306,0.07034847421374624,0.014451926365461434,0.40934629190793936,0.0803790517207043,0.1640516385436058,0.06275346045375635,0.0872716303646841,0.015447408075374954,,,,,
|
| 21 |
+
B2,road_closure,lightgbm,gbdt,False,classification,5,,,,,,,,,,,,,,ok,5.6,,,0.34713162813596854,0.05956817136956174,0.7582920185954402,0.037401106139839,0.07459904815861046,0.017229342835227944,0.41444885495934836,0.0649962113608353,0.05424631594083251,0.06795915052012211,0.0872716303646841,0.015447408075374954,,,,,
|
| 22 |
+
B2,road_closure,catboost,gbdt,False,classification,5,,,,,,,,,,,,,,ok,2.6,,,0.36154124887172945,0.07135973584030703,0.7684213052775986,0.04496009015012284,0.06880849046861276,0.01507502042241341,0.4322953764133743,0.06712787868962242,0.18886126651494797,0.08503831960200346,0.0872716303646841,0.015447408075374954,,,,,
|
| 23 |
+
B3,priority,prior,baseline,True,classification,5,training prevalence for every row,,,,,,,,,,,,,ok,0.0,,,0.6145971416089371,0.02353481658298647,0.5,0.0,0.23695592363446677,0.005439595310225961,0.7610913675212618,0.017970121630957004,0.6162612661577086,0.002386558743819849,0.6145971416089371,0.02353481658298647,,,,,
|
| 24 |
+
B3,priority,logistic,linear,False,classification,5,interpretable reference,,,,,,,,,,,,,ok,0.1,,,0.9933935255657236,0.008031403033504112,0.9950780370164105,0.006034972026040526,0.006008575093313115,0.007661646948506368,0.9974926982551462,0.003481571668642841,0.7476996574894341,0.3411055493181163,0.6145971416089371,0.02353481658298647,,,,,
|
| 25 |
+
B3,priority,random_forest,trees,False,classification,5,,,,,,,,,,,,,,ok,0.5,,,0.9973889310065299,0.004981379764173996,0.9979504925338165,0.003571257954802564,0.039381992777994576,0.020561213204744477,0.9974926982551462,0.003481571668642841,0.507360591280179,0.034660868112138456,0.6145971416089371,0.02353481658298647,,,,,
|
| 26 |
+
B3,priority,extra_trees,trees,False,classification,5,,,,,,,,,,,,,,ok,0.4,,,0.9972109556737389,0.004959056524694404,0.9977295869448346,0.003401513231123668,0.07302468713917501,0.022180478049269765,0.9974926982551462,0.003481571668642841,0.6170408971335138,0.07512827299533618,0.6145971416089371,0.02353481658298647,,,,,
|
| 27 |
+
B3,priority,hist_gbm,gbdt,False,classification,5,,,,,,,,,,,,,,ok,2.5,,,0.9997690883722552,0.0004909861818297587,0.9996994001036444,0.0006276316772815197,0.0032002353687849983,0.004188334085885902,0.9985050903771393,0.0018159116197732246,0.8086935859415953,0.4260624958457399,0.6145971416089371,0.02353481658298647,,,,,
|
| 28 |
+
B3,priority,xgboost,gbdt,False,classification,5,,,,,,,,,,,,,,ok,0.8,,,0.9993561268804145,0.0014355424114520315,0.9991910133372957,0.0018013747447878274,0.002776907357935806,0.0042633603214508485,0.9981519545757035,0.003704339551672374,0.8368383288383484,0.1871354260488693,0.6145971416089371,0.02353481658298647,,,,,
|
| 29 |
+
B3,priority,lightgbm,gbdt,False,classification,5,,,,,,,,,,,,,,ok,3.3,,,0.9997107195995196,0.0006426535470423078,0.9996955843868814,0.0006731356339959261,0.0015704390192494478,0.002348312161142105,0.9991597127597821,0.001475565546121307,0.8499869811010715,0.33359256431401246,0.6145971416089371,0.02353481658298647,,,,,
|
| 30 |
+
B3,priority,catboost,gbdt,False,classification,5,,,,,,,,,,,,,,ok,2.5,,,0.9998711193264042,0.0002839992804634838,0.9998204267084283,0.0003939978795279536,0.0022089023102066473,0.0030789153217137236,0.9989900799351055,0.0018465461649882862,0.9303915652402834,0.11580199387046292,0.6145971416089371,0.02353481658298647,,,,,
|
| 31 |
+
B4,cause_from_text,majority,baseline,True,classification,1,always predict the most common cause,,,,,,,,,,,,,ok,,,,,,,,,,,,,,,,0.04407376233835795,,,,
|
| 32 |
+
B4,cause_from_text,tfidf_char_logreg,nlp,False,classification,1,TF-IDF char n-grams (2-5) into logistic regression; handles code-mixed English/Kannada without tokenisation,,,,,,,,,,,,,ok,,,,,,,,,,,,,,,,0.4781960734643766,0.6555423122765197,0.48334516832814006,0.47172455632110644,12.0
|
model_cards/A1.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Model Card · A1 — How many parking violations will this H3 cell see in this hour?
|
| 2 |
+
|
| 3 |
+
*Generated 2026-09-02 from `reports/` — do not edit by hand.*
|
| 4 |
+
|
| 5 |
+
## What this model answers
|
| 6 |
+
|
| 7 |
+
How many parking violations will this H3 cell see in this hour?
|
| 8 |
+
|
| 9 |
+
## Caveats
|
| 10 |
+
|
| 11 |
+
- Counts are enforcement observations, not violation occurrences: 94% of per-cell variance is explained by patrol history (F6).
|
| 12 |
+
- Poisson deviance is the ranking metric, not MAE. On a 97%-zero target MAE is minimised by the conditional median (zero), so ranking by it rewards under-prediction.
|
| 13 |
+
|
| 14 |
+
## Results
|
| 15 |
+
|
| 16 |
+
Ranked by **poisson_deviance** (lower is better). Every family that ran is listed, including those that lost — the comparison is the deliverable.
|
| 17 |
+
|
| 18 |
+
| Model | Family | poisson_deviance | Baseline? | Beats best baseline |
|
| 19 |
+
|---|---|---:|---|---|
|
| 20 |
+
| `xgboost` | gbdt | 0.5014 | | yes |
|
| 21 |
+
| `hist_gbm_poisson` | gbdt | 0.5045 | | yes |
|
| 22 |
+
| `lightgbm` | gbdt | 0.5076 | | yes |
|
| 23 |
+
| `extra_trees` | trees | 0.5086 | | yes |
|
| 24 |
+
| `catboost` | gbdt | 0.5104 | | yes |
|
| 25 |
+
| `hist_gbm` | gbdt | 0.5171 | | yes |
|
| 26 |
+
| `torch_mlp` | deep | 0.5659 | | yes |
|
| 27 |
+
| `random_forest` | trees | 0.5669 | | yes |
|
| 28 |
+
| `poisson_glm` | linear | 0.5674 | | yes |
|
| 29 |
+
| `torch_lstm` | deep | 0.5842 | | yes |
|
| 30 |
+
| `ridge` | linear | 0.5959 | | yes |
|
| 31 |
+
| `mean` | baseline | 0.8775 | baseline | — |
|
| 32 |
+
| `cell_hour_mean` | baseline | 1.3910 | baseline | — |
|
| 33 |
+
| `seasonal_naive` | baseline | 3.5434 | baseline | — |
|
| 34 |
+
|
| 35 |
+
**Best learned family: `xgboost`** at 0.5014, +42.9% against the strongest baseline (0.8775).
|
| 36 |
+
|
| 37 |
+
## Reproduction
|
| 38 |
+
|
| 39 |
+
```bash
|
| 40 |
+
make data && make ingest && make features
|
| 41 |
+
make train
|
| 42 |
+
```
|
| 43 |
+
|
| 44 |
+
Seed `42`. Splits are chronological, never random.
|
model_cards/A2.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Model Card · A2 — Is this cell-hour in the top decile of violation intensity?
|
| 2 |
+
|
| 3 |
+
*Generated 2026-09-02 from `reports/` — do not edit by hand.*
|
| 4 |
+
|
| 5 |
+
## What this model answers
|
| 6 |
+
|
| 7 |
+
Is this cell-hour in the top decile of violation intensity?
|
| 8 |
+
|
| 9 |
+
## Caveats
|
| 10 |
+
|
| 11 |
+
- The original goal of PR-AUC >= 0.45 was unreachable by construction (F10): it assumed ~10% prevalence, but only 2.94% of cell-hours are non-zero, so the label lands at 0.33%.
|
| 12 |
+
- Read scores against the 0.29% base rate, not against 0.45.
|
| 13 |
+
|
| 14 |
+
## Results
|
| 15 |
+
|
| 16 |
+
Ranked by **pr_auc** (higher is better). Every family that ran is listed, including those that lost — the comparison is the deliverable.
|
| 17 |
+
|
| 18 |
+
| Model | Family | pr_auc | Baseline? | Beats best baseline |
|
| 19 |
+
|---|---|---:|---|---|
|
| 20 |
+
| `catboost` | gbdt | 0.1438 | | yes |
|
| 21 |
+
| `random_forest` | trees | 0.1368 | | yes |
|
| 22 |
+
| `xgboost` | gbdt | 0.1292 | | yes |
|
| 23 |
+
| `extra_trees` | trees | 0.1231 | | yes |
|
| 24 |
+
| `logistic` | linear | 0.1123 | | yes |
|
| 25 |
+
| `hist_gbm` | gbdt | 0.0855 | | yes |
|
| 26 |
+
| `lightgbm` | gbdt | 0.0360 | | yes |
|
| 27 |
+
| `prior` | baseline | 0.0029 | baseline | — |
|
| 28 |
+
|
| 29 |
+
**Best learned family: `catboost`** at 0.1438, +4844.3% against the strongest baseline (0.0029).
|
| 30 |
+
|
| 31 |
+
## Reproduction
|
| 32 |
+
|
| 33 |
+
```bash
|
| 34 |
+
make data && make ingest && make features
|
| 35 |
+
make train
|
| 36 |
+
```
|
| 37 |
+
|
| 38 |
+
Seed `42`. Splits are chronological, never random.
|
model_cards/A3.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Model Card · A3 — Will this field capture be rejected at officer review?
|
| 2 |
+
|
| 3 |
+
*Generated 2026-09-02 from `reports/` — do not edit by hand.*
|
| 4 |
+
|
| 5 |
+
## What this model answers
|
| 6 |
+
|
| 7 |
+
Will this field capture be rejected at officer review?
|
| 8 |
+
|
| 9 |
+
## Caveats
|
| 10 |
+
|
| 11 |
+
- NOT YET ANSWERABLE (F11). The review process changed regime mid-window: February 2024 rejection jumped to 0.790 from ~0.28 while reviewed volume collapsed sixfold.
|
| 12 |
+
- Every family is miscalibrated as a result - Brier scores are worse than the prior baseline. This is a property of the label, not the models.
|
| 13 |
+
|
| 14 |
+
## Results
|
| 15 |
+
|
| 16 |
+
Ranked by **pr_auc** (higher is better). Every family that ran is listed, including those that lost — the comparison is the deliverable.
|
| 17 |
+
|
| 18 |
+
| Model | Family | pr_auc | Baseline? | Beats best baseline |
|
| 19 |
+
|---|---|---:|---|---|
|
| 20 |
+
| `xgboost` | gbdt | 0.3088 | | yes |
|
| 21 |
+
| `catboost` | gbdt | 0.2987 | | yes |
|
| 22 |
+
| `hist_gbm` | gbdt | 0.2955 | | yes |
|
| 23 |
+
| `random_forest` | trees | 0.2919 | | yes |
|
| 24 |
+
| `logistic` | linear | 0.2893 | | yes |
|
| 25 |
+
| `lightgbm` | gbdt | 0.2838 | | yes |
|
| 26 |
+
| `extra_trees` | trees | 0.2825 | | yes |
|
| 27 |
+
| `prior` | baseline | 0.2459 | baseline | — |
|
| 28 |
+
|
| 29 |
+
**Best learned family: `xgboost`** at 0.3088, +25.6% against the strongest baseline (0.2459).
|
| 30 |
+
|
| 31 |
+
## Reproduction
|
| 32 |
+
|
| 33 |
+
```bash
|
| 34 |
+
make data && make ingest && make features
|
| 35 |
+
make train
|
| 36 |
+
```
|
| 37 |
+
|
| 38 |
+
Seed `42`. Splits are chronological, never random.
|
model_cards/B1.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Model Card · B1 — How long until this event is cleared?
|
| 2 |
+
|
| 3 |
+
*Generated 2026-09-02 from `reports/` — do not edit by hand.*
|
| 4 |
+
|
| 5 |
+
## What this model answers
|
| 6 |
+
|
| 7 |
+
How long until this event is cleared?
|
| 8 |
+
|
| 9 |
+
## Caveats
|
| 10 |
+
|
| 11 |
+
- Predicts ADMINISTRATIVE closure (ticket closed), not physical road-clear time.
|
| 12 |
+
- n=2,720 of 8,173 events carry a usable duration (F4). Metrics are means over five chronological folds with a standard deviation, because a single split at this size is one draw from a small sample.
|
| 13 |
+
|
| 14 |
+
## Results
|
| 15 |
+
|
| 16 |
+
Ranked by **poisson_deviance** (lower is better). Every family that ran is listed, including those that lost — the comparison is the deliverable.
|
| 17 |
+
|
| 18 |
+
| Model | Family | poisson_deviance | Baseline? | Beats best baseline |
|
| 19 |
+
|---|---|---:|---|---|
|
| 20 |
+
| `xgboost` | gbdt | 0.4990 | | yes |
|
| 21 |
+
| `random_forest` | trees | 0.5034 | | yes |
|
| 22 |
+
| `extra_trees` | trees | 0.5084 | | yes |
|
| 23 |
+
| `lightgbm` | gbdt | 0.5119 | | yes |
|
| 24 |
+
| `hist_gbm` | gbdt | 0.5322 | | yes |
|
| 25 |
+
| `hist_gbm_poisson` | gbdt | 0.5363 | | yes |
|
| 26 |
+
| `ridge` | linear | 0.5401 | | yes |
|
| 27 |
+
| `poisson_glm` | linear | 0.5445 | | yes |
|
| 28 |
+
| `catboost` | gbdt | 0.5468 | | yes |
|
| 29 |
+
| `mean` | baseline | 0.6904 | baseline | — |
|
| 30 |
+
| `torch_mlp` | deep | 4.4045 | | **no** |
|
| 31 |
+
|
| 32 |
+
**Best learned family: `xgboost`** at 0.4990, +27.7% against the strongest baseline (0.6904).
|
| 33 |
+
|
| 34 |
+
## Reproduction
|
| 35 |
+
|
| 36 |
+
```bash
|
| 37 |
+
make data && make ingest && make features
|
| 38 |
+
make train-b
|
| 39 |
+
```
|
| 40 |
+
|
| 41 |
+
Seed `42`. Splits are chronological, never random.
|
model_cards/B2.md
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Model Card · B2 — Will this event require a road closure?
|
| 2 |
+
|
| 3 |
+
*Generated 2026-09-02 from `reports/` — do not edit by hand.*
|
| 4 |
+
|
| 5 |
+
## What this model answers
|
| 6 |
+
|
| 7 |
+
Will this event require a road closure?
|
| 8 |
+
|
| 9 |
+
## Caveats
|
| 10 |
+
|
| 11 |
+
- 8.3% positive class. Read PR-AUC against that prevalence.
|
| 12 |
+
|
| 13 |
+
## Results
|
| 14 |
+
|
| 15 |
+
Ranked by **pr_auc** (higher is better). Every family that ran is listed, including those that lost — the comparison is the deliverable.
|
| 16 |
+
|
| 17 |
+
| Model | Family | pr_auc | Baseline? | Beats best baseline |
|
| 18 |
+
|---|---|---:|---|---|
|
| 19 |
+
| `catboost` | gbdt | 0.3615 | | yes |
|
| 20 |
+
| `random_forest` | trees | 0.3578 | | yes |
|
| 21 |
+
| `lightgbm` | gbdt | 0.3471 | | yes |
|
| 22 |
+
| `xgboost` | gbdt | 0.3445 | | yes |
|
| 23 |
+
| `logistic` | linear | 0.3304 | | yes |
|
| 24 |
+
| `hist_gbm` | gbdt | 0.3269 | | yes |
|
| 25 |
+
| `extra_trees` | trees | 0.3024 | | yes |
|
| 26 |
+
| `prior` | baseline | 0.0873 | baseline | — |
|
| 27 |
+
|
| 28 |
+
**Best learned family: `catboost`** at 0.3615, +314.3% against the strongest baseline (0.0873).
|
| 29 |
+
|
| 30 |
+
## Reproduction
|
| 31 |
+
|
| 32 |
+
```bash
|
| 33 |
+
make data && make ingest && make features
|
| 34 |
+
make train-b
|
| 35 |
+
```
|
| 36 |
+
|
| 37 |
+
Seed `42`. Splits are chronological, never random.
|
model_cards/B3.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Model Card · B3 — Is this event High or Low priority?
|
| 2 |
+
|
| 3 |
+
*Generated 2026-09-02 from `reports/` — do not edit by hand.*
|
| 4 |
+
|
| 5 |
+
## What this model answers
|
| 6 |
+
|
| 7 |
+
Is this event High or Low priority?
|
| 8 |
+
|
| 9 |
+
## Caveats
|
| 10 |
+
|
| 11 |
+
- NOT A PREDICTION (F13). `priority` is a deterministic operational rule: corridor status predicts High at 99.84%, with 13 exceptions in 8,173 events.
|
| 12 |
+
- Scores near 1.0 reflect that rule, not learned structure. Reporting them as modelling performance would be misleading.
|
| 13 |
+
|
| 14 |
+
## Results
|
| 15 |
+
|
| 16 |
+
Ranked by **pr_auc** (higher is better). Every family that ran is listed, including those that lost — the comparison is the deliverable.
|
| 17 |
+
|
| 18 |
+
| Model | Family | pr_auc | Baseline? | Beats best baseline |
|
| 19 |
+
|---|---|---:|---|---|
|
| 20 |
+
| `catboost` | gbdt | 0.9999 | | yes |
|
| 21 |
+
| `hist_gbm` | gbdt | 0.9998 | | yes |
|
| 22 |
+
| `lightgbm` | gbdt | 0.9997 | | yes |
|
| 23 |
+
| `xgboost` | gbdt | 0.9994 | | yes |
|
| 24 |
+
| `random_forest` | trees | 0.9974 | | yes |
|
| 25 |
+
| `extra_trees` | trees | 0.9972 | | yes |
|
| 26 |
+
| `logistic` | linear | 0.9934 | | yes |
|
| 27 |
+
| `prior` | baseline | 0.6146 | baseline | — |
|
| 28 |
+
|
| 29 |
+
**Best learned family: `catboost`** at 0.9999, +62.7% against the strongest baseline (0.6146).
|
| 30 |
+
|
| 31 |
+
## Reproduction
|
| 32 |
+
|
| 33 |
+
```bash
|
| 34 |
+
make data && make ingest && make features
|
| 35 |
+
make train-b
|
| 36 |
+
```
|
| 37 |
+
|
| 38 |
+
Seed `42`. Splits are chronological, never random.
|
model_cards/B4.md
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Model Card · B4 — What caused this event, from the operator's free-text note?
|
| 2 |
+
|
| 3 |
+
*Generated 2026-09-02 from `reports/` — do not edit by hand.*
|
| 4 |
+
|
| 5 |
+
## What this model answers
|
| 6 |
+
|
| 7 |
+
What caused this event, from the operator's free-text note?
|
| 8 |
+
|
| 9 |
+
## Caveats
|
| 10 |
+
|
| 11 |
+
- Descriptions mix English and Kannada, often within one entry. Character n-grams are used rather than word tokenisation.
|
| 12 |
+
- Per-language F1 is reported because a single macro-F1 could hide a model that works on the English majority and fails on Kannada.
|
| 13 |
+
|
| 14 |
+
## Results
|
| 15 |
+
|
| 16 |
+
Ranked by **macro_f1** (higher is better). Every family that ran is listed, including those that lost — the comparison is the deliverable.
|
| 17 |
+
|
| 18 |
+
| Model | Family | macro_f1 | Baseline? | Beats best baseline |
|
| 19 |
+
|---|---|---:|---|---|
|
| 20 |
+
| `tfidf_char_logreg` | nlp | 0.4782 | | yes |
|
| 21 |
+
| `majority` | baseline | 0.0441 | baseline | — |
|
| 22 |
+
|
| 23 |
+
**Best learned family: `tfidf_char_logreg`** at 0.4782, +985.0% against the strongest baseline (0.0441).
|
| 24 |
+
|
| 25 |
+
## Reproduction
|
| 26 |
+
|
| 27 |
+
```bash
|
| 28 |
+
make data && make ingest && make features
|
| 29 |
+
make train-b
|
| 30 |
+
```
|
| 31 |
+
|
| 32 |
+
Seed `42`. Splits are chronological, never random.
|
model_cards/README.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Model Cards
|
| 2 |
+
|
| 3 |
+
One card per target, generated from `reports/` so they cannot drift from what was measured. Every family appears, including the ones that lost.
|
| 4 |
+
|
| 5 |
+
| Target | Families | Card |
|
| 6 |
+
|---|---:|---|
|
| 7 |
+
| A1 | 14 | [A1.md](A1.md) |
|
| 8 |
+
| A2 | 8 | [A2.md](A2.md) |
|
| 9 |
+
| A3 | 8 | [A3.md](A3.md) |
|
| 10 |
+
| B1 | 13 | [B1.md](B1.md) |
|
| 11 |
+
| B2 | 8 | [B2.md](B2.md) |
|
| 12 |
+
| B3 | 8 | [B3.md](B3.md) |
|
| 13 |
+
| B4 | 2 | [B4.md](B4.md) |
|
onnx/b1_clearance_duration.features.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model": "b1_clearance_duration",
|
| 3 |
+
"n_features": 37,
|
| 4 |
+
"features": [
|
| 5 |
+
"latitude",
|
| 6 |
+
"longitude",
|
| 7 |
+
"requires_road_closure",
|
| 8 |
+
"age_of_truck",
|
| 9 |
+
"at_junction",
|
| 10 |
+
"hour",
|
| 11 |
+
"dayofweek",
|
| 12 |
+
"is_weekend",
|
| 13 |
+
"is_high_priority",
|
| 14 |
+
"day",
|
| 15 |
+
"month",
|
| 16 |
+
"weekofyear",
|
| 17 |
+
"hour_of_week",
|
| 18 |
+
"is_morning_peak",
|
| 19 |
+
"is_evening_peak",
|
| 20 |
+
"is_night",
|
| 21 |
+
"hour_sin",
|
| 22 |
+
"hour_cos",
|
| 23 |
+
"dayofweek_sin",
|
| 24 |
+
"dayofweek_cos",
|
| 25 |
+
"month_sin",
|
| 26 |
+
"month_cos",
|
| 27 |
+
"dist_centre_km",
|
| 28 |
+
"event_type_freq",
|
| 29 |
+
"event_cause_freq",
|
| 30 |
+
"veh_type_freq",
|
| 31 |
+
"corridor_freq",
|
| 32 |
+
"zone_freq",
|
| 33 |
+
"police_station_freq",
|
| 34 |
+
"priority_freq",
|
| 35 |
+
"gba_identifier_freq",
|
| 36 |
+
"direction_freq",
|
| 37 |
+
"concurrent_events",
|
| 38 |
+
"is_planned",
|
| 39 |
+
"has_vehicle",
|
| 40 |
+
"desc_len",
|
| 41 |
+
"desc_has_kannada"
|
| 42 |
+
],
|
| 43 |
+
"note": "Input must be a float32 array in exactly this order. ONNX has no column names; a different order returns wrong numbers silently."
|
| 44 |
+
}
|
onnx/b1_clearance_duration.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2c20e2c53f3d3e77ea4b5e4838d6cb7549dd7fd6414926d47d1d2053efb06d37
|
| 3 |
+
size 3180935
|
onnx/b2_road_closure.features.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model": "b2_road_closure",
|
| 3 |
+
"n_features": 36,
|
| 4 |
+
"features": [
|
| 5 |
+
"latitude",
|
| 6 |
+
"longitude",
|
| 7 |
+
"age_of_truck",
|
| 8 |
+
"at_junction",
|
| 9 |
+
"hour",
|
| 10 |
+
"dayofweek",
|
| 11 |
+
"is_weekend",
|
| 12 |
+
"is_high_priority",
|
| 13 |
+
"day",
|
| 14 |
+
"month",
|
| 15 |
+
"weekofyear",
|
| 16 |
+
"hour_of_week",
|
| 17 |
+
"is_morning_peak",
|
| 18 |
+
"is_evening_peak",
|
| 19 |
+
"is_night",
|
| 20 |
+
"hour_sin",
|
| 21 |
+
"hour_cos",
|
| 22 |
+
"dayofweek_sin",
|
| 23 |
+
"dayofweek_cos",
|
| 24 |
+
"month_sin",
|
| 25 |
+
"month_cos",
|
| 26 |
+
"dist_centre_km",
|
| 27 |
+
"event_type_freq",
|
| 28 |
+
"event_cause_freq",
|
| 29 |
+
"veh_type_freq",
|
| 30 |
+
"corridor_freq",
|
| 31 |
+
"zone_freq",
|
| 32 |
+
"police_station_freq",
|
| 33 |
+
"priority_freq",
|
| 34 |
+
"gba_identifier_freq",
|
| 35 |
+
"direction_freq",
|
| 36 |
+
"concurrent_events",
|
| 37 |
+
"is_planned",
|
| 38 |
+
"has_vehicle",
|
| 39 |
+
"desc_len",
|
| 40 |
+
"desc_has_kannada"
|
| 41 |
+
],
|
| 42 |
+
"note": "Input must be a float32 array in exactly this order. ONNX has no column names; a different order returns wrong numbers silently."
|
| 43 |
+
}
|
onnx/b2_road_closure.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:687138f1df9087c592ec4cacf7a1b1f6fb354bece270ac34b1cdc6366715a497
|
| 3 |
+
size 3742243
|
reports/ablation_enrichment.csv
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
arm,model,n_features,fit_seconds,mae,rmse,median_ae,r2,poisson_deviance,precision_at_10,ndcg_at_10,precision_at_50,ndcg_at_50,kendall_tau
|
| 2 |
+
plain,hist_gbm_poisson,40,34.9,0.161917240569187,1.0289828610535874,0.01834047777342695,0.15405062629205601,0.5044736803352946,0.9,0.9928776900994111,0.88,0.9828895420262487,0.747536295929003
|
| 3 |
+
plain,xgboost,40,14.0,0.16132170237280638,1.0295177075844357,0.020227094180881977,0.1531709796169487,0.5014180720880342,0.9,0.9930155771598324,0.9,0.9892487999987141,0.732518897543617
|
| 4 |
+
plain,lightgbm,40,12.0,0.16640163520589776,1.036428653608582,0.023906181597715806,0.14176363311352247,0.5075690673391181,0.9,0.9946071712836422,0.88,0.9875119017082823,0.6610736017346375
|
| 5 |
+
plain,catboost,40,25.6,0.1612747364091122,1.0276079755812633,0.024321455756110506,0.15630976299014676,0.5104211001090951,0.9,0.9939142269313003,0.9,0.987792243792657,0.76728054230587
|
| 6 |
+
enriched,hist_gbm_poisson,63,15.5,0.16409045802456768,1.0318576855796617,0.020413952731622116,0.14931711058334418,0.5041641594766796,0.9,0.9901673253529395,0.9,0.9860215287207704,0.7540472071701869
|
| 7 |
+
enriched,xgboost,63,17.3,0.1655901280028289,1.0283607290168781,0.022760430350899696,0.15507325383289483,0.4999245389994539,0.9,0.9902052182525148,0.9,0.9862101550938679,0.7438854036087347
|
| 8 |
+
enriched,lightgbm,63,14.1,0.16715915345246246,1.0372624874862837,0.02326316690533358,0.1403821305365608,0.5054702095359982,0.9,0.981691040657606,0.9,0.9796544111883096,0.6879816897172703
|
| 9 |
+
enriched,catboost,63,29.1,0.1613680746985717,1.034722383293808,0.024543008806415557,0.14458713249336175,0.5162038659511996,0.9,0.9892766101467407,0.88,0.9839587508600609,0.7338523468797351
|
| 10 |
+
enriched_shifted_weather,hist_gbm_poisson,63,17.7,0.15940056810473405,1.032778410316773,0.0185416580185246,0.14779830768131508,0.5062185329682204,0.9,0.986365419908762,0.88,0.97713175709869,0.7511595996423172
|
| 11 |
+
enriched_shifted_weather,xgboost,63,18.8,0.1604203795951518,1.0329316874664005,0.021255734376609325,0.14754533426892935,0.5029255609058015,0.9,0.990591935057202,0.9,0.9870493911486077,0.7355352519039394
|
| 12 |
+
enriched_shifted_weather,lightgbm,63,17.4,0.16406841997900407,1.0418332225600342,0.021838562455278918,0.13278956371179207,0.5082089779691461,0.9,0.9736958702898314,0.9,0.9808362994576851,0.6806615126720974
|
| 13 |
+
enriched_shifted_weather,catboost,63,32.4,0.16020330004821454,1.0355190372288887,0.024149416284925083,0.14326942568405,0.515177882880325,0.9,0.9910284331296748,0.9,0.9864991635262492,0.7667747511783768
|
| 14 |
+
plain_nohistory,hist_gbm_poisson,28,16.6,0.17227650990612062,1.0724256522203648,0.01735502058528162,0.08111221510001576,0.563272291747162,0.8,0.8556939291424982,0.72,0.8768544301791124,0.49851233335835593
|
| 15 |
+
plain_nohistory,xgboost,28,12.4,0.17490295103935447,1.0641167726131298,0.022386454045772552,0.0952956715049238,0.5601035642942772,0.8,0.89817800091537,0.76,0.915704569957301,0.5084350356595387
|
| 16 |
+
plain_nohistory,lightgbm,28,10.8,0.18059054126516075,1.0969147447901304,0.021536277861551503,0.0386670245583296,0.5718014884378391,0.8,0.8195174131128363,0.7,0.8308286621165942,0.47438149847577615
|
| 17 |
+
plain_nohistory,catboost,28,25.7,0.16325544011982077,1.0760795065847706,0.019430470051016897,0.07484007536907489,0.5722942643435406,0.9,0.8683267355911121,0.76,0.8665268941903924,0.5240066011993365
|
| 18 |
+
enriched_nohistory,hist_gbm_poisson,51,22.7,0.17231000968751034,1.0710530867394874,0.022524312973580332,0.08346282382361236,0.5666402543428396,0.8,0.88414269429272,0.74,0.8883219158337051,0.5091615356426651
|
| 19 |
+
enriched_nohistory,xgboost,51,17.9,0.17823462740156973,1.063160124073102,0.026817698031663895,0.096921611550433,0.5614783145144302,0.8,0.8752795033786148,0.78,0.9025819799924915,0.4988801814510782
|
| 20 |
+
enriched_nohistory,lightgbm,51,15.1,0.1816625757896661,1.0840482064038788,0.026326126796171516,0.061087153147136086,0.5623088169274146,0.8,0.8398350997878868,0.74,0.8609586176733373,0.4856928273269854
|
| 21 |
+
enriched_nohistory,catboost,51,32.9,0.16593212570285132,1.0855381274833364,0.021851706169000215,0.05850448686784426,0.5789239007904274,0.7,0.7933776431685268,0.78,0.8689934259378373,0.5054830547154426
|
| 22 |
+
plain_bare,hist_gbm_poisson,22,15.5,0.17468434221156595,1.0665141543221643,0.03395066987481486,0.09121460656823155,0.5745419271321749,0.9,0.9588184692019744,0.7,0.915436158504819,0.3684650803265987
|
| 23 |
+
plain_bare,xgboost,22,10.5,0.18422303852376523,1.063349086136521,0.044223638251423836,0.09660056354087732,0.58297836591965,0.9,0.9651308672743643,0.72,0.9296477425166881,0.3396073315042545
|
| 24 |
+
plain_bare,lightgbm,22,10.1,0.18223990112859687,1.0802233754027235,0.03621040251906445,0.06770096899849332,0.5795233249801494,0.8,0.834012660728226,0.68,0.8426226572140023,0.362003906149128
|
| 25 |
+
plain_bare,catboost,22,26.0,0.17780858272587366,1.0680156386801252,0.039585332451128316,0.08865395124585262,0.5970555782152497,0.9,0.9770771495719469,0.68,0.920808412482469,0.30034419624331526
|
| 26 |
+
enriched_bare,hist_gbm_poisson,45,23.3,0.17154525494415823,1.0666740766665,0.03298720619061207,0.0909420438714762,0.5697063219565848,0.7,0.9110980296679819,0.72,0.9160568958184908,0.4187536706538535
|
| 27 |
+
enriched_bare,xgboost,45,17.3,0.18283503037094687,1.0579090614736975,0.0423115361481905,0.10582038440453045,0.5644487024752095,0.8,0.9376539085720996,0.74,0.9290808935361992,0.3983564939124046
|
| 28 |
+
enriched_bare,lightgbm,45,14.6,0.1770161843744813,1.0706564963654104,0.036925317448784474,0.08414145036305676,0.5653732553066203,0.8,0.8526264592947483,0.72,0.8520651035298589,0.4218343984304024
|
| 29 |
+
enriched_bare,catboost,45,33.2,0.1699090449809257,1.0774976782073489,0.03248817865635312,0.0723999208764422,0.5865842200202079,0.8,0.83807719716417,0.7,0.8531155574176256,0.36959077306152444
|
reports/bundle.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"surfaces_mb": 2.956,
|
| 3 |
+
"models": [
|
| 4 |
+
{
|
| 5 |
+
"name": "b1_clearance_duration",
|
| 6 |
+
"size_mb": 3.181,
|
| 7 |
+
"max_abs_diff": 1.0359972169027287e-06,
|
| 8 |
+
"verified": true
|
| 9 |
+
},
|
| 10 |
+
{
|
| 11 |
+
"name": "b2_road_closure",
|
| 12 |
+
"size_mb": 3.742,
|
| 13 |
+
"max_abs_diff": 0.0,
|
| 14 |
+
"verified": true
|
| 15 |
+
}
|
| 16 |
+
],
|
| 17 |
+
"models_mb": 6.923,
|
| 18 |
+
"total_mb": 9.879
|
| 19 |
+
}
|
reports/cis_validation.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"window_hours": 3622,
|
| 3 |
+
"cells": 662,
|
| 4 |
+
"total_obstruction_m2h": 885304.5,
|
| 5 |
+
"max_cis_seconds_per_day": 12.237083435058594,
|
| 6 |
+
"checks": [
|
| 7 |
+
{
|
| 8 |
+
"name": "congestion co-occurrence",
|
| 9 |
+
"passed": false,
|
| 10 |
+
"statistic": 0.546268982847154,
|
| 11 |
+
"p_value": 0.7294,
|
| 12 |
+
"detail": "1 congestion events in top-50 CIS cells, 0.55x exposure-matched expectation (p=0.7294)"
|
| 13 |
+
},
|
| 14 |
+
{
|
| 15 |
+
"name": "closure co-occurrence",
|
| 16 |
+
"passed": false,
|
| 17 |
+
"statistic": 1.4121225287855748,
|
| 18 |
+
"p_value": 0.0848,
|
| 19 |
+
"detail": "39 closure events in top-50 CIS cells, 1.41x exposure-matched expectation (p=0.0848)"
|
| 20 |
+
},
|
| 21 |
+
{
|
| 22 |
+
"name": "weight sensitivity",
|
| 23 |
+
"passed": true,
|
| 24 |
+
"statistic": 0.8522597439177156,
|
| 25 |
+
"p_value": null,
|
| 26 |
+
"detail": "Kendall tau 0.852 over 12 trials at +/-30%; top-50 membership overlap 92.8% (threshold tau>=0.8)"
|
| 27 |
+
},
|
| 28 |
+
{
|
| 29 |
+
"name": "width-normalisation ablation",
|
| 30 |
+
"passed": true,
|
| 31 |
+
"statistic": 0.76,
|
| 32 |
+
"p_value": null,
|
| 33 |
+
"detail": "top-50 overlap 76.0% with a flat-width index (full-ranking tau 0.727); lower means width normalisation is doing real work"
|
| 34 |
+
}
|
| 35 |
+
],
|
| 36 |
+
"n_passed": 2
|
| 37 |
+
}
|
reports/fairness_audit.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"highest_concern": "high",
|
| 3 |
+
"findings": [
|
| 4 |
+
{
|
| 5 |
+
"name": "feedback loop",
|
| 6 |
+
"statistic": 0.6133053955548047,
|
| 7 |
+
"concern": "moderate",
|
| 8 |
+
"interpretation": "Spearman rho=+0.613 between score and historical patrol hours - recommendations substantially track past patrolling"
|
| 9 |
+
},
|
| 10 |
+
{
|
| 11 |
+
"name": "under-observation coverage",
|
| 12 |
+
"statistic": 0.0,
|
| 13 |
+
"concern": "high",
|
| 14 |
+
"interpretation": "no recommendation reaches an under-observed cell, though 25.8% of cells are flagged - the system only looks where someone already looked"
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"name": "station disparity",
|
| 18 |
+
"statistic": 0.20912368007966697,
|
| 19 |
+
"concern": "high",
|
| 20 |
+
"interpretation": "recommendation Gini 0.796 vs violation Gini 0.587 (excess +0.209) across 53 stations"
|
| 21 |
+
},
|
| 22 |
+
{
|
| 23 |
+
"name": "counterfactual patrol",
|
| 24 |
+
"statistic": 0.3,
|
| 25 |
+
"concern": "moderate",
|
| 26 |
+
"interpretation": "only 30% of the top-50 cells survive equalising patrol effort (full-ranking tau +0.318)"
|
| 27 |
+
}
|
| 28 |
+
],
|
| 29 |
+
"coverage": {
|
| 30 |
+
"cells_assigned": 8,
|
| 31 |
+
"cells_total": 1802,
|
| 32 |
+
"risk_covered": 5.038800746202469,
|
| 33 |
+
"risk_total": 48.28950881958008,
|
| 34 |
+
"risk_covered_share": 0.10434566160174677,
|
| 35 |
+
"under_observed_assigned": 0,
|
| 36 |
+
"seed": 42
|
| 37 |
+
}
|
| 38 |
+
}
|
reports/fairness_audit.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Enforcement-Bias Audit
|
| 2 |
+
|
| 3 |
+
*Generated 2026-09-01 23:22 UTC · MargaDrishti Phase 9*
|
| 4 |
+
|
| 5 |
+
## Why this exists
|
| 6 |
+
|
| 7 |
+
Finding F6: `corr(log patrol_hours, log total_captures) = 0.967`. Roughly **94%
|
| 8 |
+
of the variance** in per-cell violation counts is explained by how much
|
| 9 |
+
patrolling happened there — not by how much illegal parking happened there.
|
| 10 |
+
|
| 11 |
+
Violation records are **enforcement observations, not violation occurrences**. A
|
| 12 |
+
model trained on them largely reconstructs the existing patrol roster. Deployed
|
| 13 |
+
as a recommender, it sends officers where officers have been, generating more
|
| 14 |
+
records there, confirming itself.
|
| 15 |
+
|
| 16 |
+
This audit measures how close the system sits to that loop. **It does not issue
|
| 17 |
+
a clearance.** The bias is known to exist and cannot be removed from this data;
|
| 18 |
+
the honest output is a magnitude.
|
| 19 |
+
|
| 20 |
+
## Findings
|
| 21 |
+
|
| 22 |
+
| Test | Statistic | Concern | Interpretation |
|
| 23 |
+
|---|---|---|---|
|
| 24 |
+
| feedback loop | `+0.613` | **MODERATE** | Spearman rho=+0.613 between score and historical patrol hours - recommendations substantially track past patrolling |
|
| 25 |
+
| under-observation coverage | `+0.000` | **HIGH** | no recommendation reaches an under-observed cell, though 25.8% of cells are flagged - the system only looks where someone already looked |
|
| 26 |
+
| station disparity | `+0.209` | **HIGH** | recommendation Gini 0.796 vs violation Gini 0.587 (excess +0.209) across 53 stations |
|
| 27 |
+
| counterfactual patrol | `+0.300` | **MODERATE** | only 30% of the top-50 cells survive equalising patrol effort (full-ranking tau +0.318) |
|
| 28 |
+
|
| 29 |
+
**Highest concern level: HIGH**
|
| 30 |
+
|
| 31 |
+
## Deployment-plan coverage
|
| 32 |
+
|
| 33 |
+
- Cells assigned: **8** of 1,802
|
| 34 |
+
- Share of total city risk addressed: **10.43%**
|
| 35 |
+
- Under-observed cells in the plan: **0**
|
| 36 |
+
|
| 37 |
+
| rank | cell | rcri | parking_share | under_observed | reason |
|
| 38 |
+
|-------:|:----------------|--------:|----------------:|:-----------------|:-------------------------------------------------------|
|
| 39 |
+
| 1 | 8960145b427ffff | 0.98443 | 0.962 | False | highest remaining risk outside an already-covered area |
|
| 40 |
+
| 2 | 8961892e9abffff | 0.88877 | 0.99 | False | highest remaining risk outside an already-covered area |
|
| 41 |
+
| 3 | 89601690193ffff | 0.79073 | 0.992 | False | highest remaining risk outside an already-covered area |
|
| 42 |
+
| 4 | 89618920babffff | 0.63428 | 0.878 | False | highest remaining risk outside an already-covered area |
|
| 43 |
+
| 5 | 8960145b59bffff | 0.46944 | 0.939 | False | highest remaining risk outside an already-covered area |
|
| 44 |
+
| 6 | 8960145b543ffff | 0.44005 | 0.96 | False | highest remaining risk outside an already-covered area |
|
| 45 |
+
| 7 | 8961892e16bffff | 0.41807 | 0.895 | False | highest remaining risk outside an already-covered area |
|
| 46 |
+
| 8 | 896016964b7ffff | 0.41304 | 1 | False | highest remaining risk outside an already-covered area |
|
| 47 |
+
|
| 48 |
+
## What this system does and does not claim
|
| 49 |
+
|
| 50 |
+
**Does:** rank locations by predicted enforcement demand, conditioned on
|
| 51 |
+
observed patrol effort, with under-observed cells flagged.
|
| 52 |
+
|
| 53 |
+
**Does not:** claim to identify where illegal parking actually occurs. Phase 5
|
| 54 |
+
established that no Getis-Ord hotspot survives exposure adjustment — the
|
| 55 |
+
apparent spatial structure of violations is substantially a map of where
|
| 56 |
+
officers went.
|
| 57 |
+
|
| 58 |
+
**Never:** rank or profile an individual officer or vehicle owner. `device_id`,
|
| 59 |
+
`created_by_id` and `vehicle_number` are used only in aggregate.
|
| 60 |
+
|
| 61 |
+
## Mitigations in force
|
| 62 |
+
|
| 63 |
+
1. Enforcement effort enters models as both features and a Poisson offset, so
|
| 64 |
+
the target is a rate per unit effort rather than a raw count.
|
| 65 |
+
2. Under-observed cells (bottom patrol-coverage quartile) are flagged and
|
| 66 |
+
surfaced, never silently dropped — excluding them would entrench the
|
| 67 |
+
existing patrol map.
|
| 68 |
+
3. Constructed indices (CIS, RCRI) are labelled as constructed wherever they
|
| 69 |
+
appear, and CIS is **not externally validated** (F16).
|
| 70 |
+
4. Deployment plans carry a per-assignment reason so an inspector can overrule
|
| 71 |
+
on visible grounds.
|
reports/leaderboard.csv
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
target,target_name,model,family,is_baseline,task,notes,fit_seconds,mae,rmse,median_ae,r2,poisson_deviance,precision_at_10,ndcg_at_10,precision_at_50,ndcg_at_50,kendall_tau,status,peak_rss_gb,n_features,baseline_model,baseline_metric,beats_baseline,improvement_pct,pr_auc,roc_auc,brier,f1_best,threshold_best,prevalence
|
| 2 |
+
A1,parking_intensity,mean,baseline,True,regression,training mean; absolute floor,0.0,0.21914739880112935,1.1188749580216464,0.12099105630842004,-0.00021001473471704557,0.8775469874345732,0.0,0.011836678227344,0.02,0.04359245856709398,,ok,2.62,40,mean,0.8775469874345732,False,0.0,,,,,,
|
| 3 |
+
A1,parking_intensity,seasonal_naive,baseline,True,regression,"same cell, same hour, one week earlier",0.0,0.18092604212984703,1.4625021548471049,0.0,-0.7089175909565442,3.5433803733331763,0.9,0.9892596488518955,0.94,0.9894062538383603,0.7874110090786781,ok,2.91,40,mean,0.8775469874345732,False,-303.78,,,,,,
|
| 4 |
+
A1,parking_intensity,cell_hour_mean,baseline,True,regression,per-cell hour-of-week historical mean,0.05,0.18129081343487274,1.0917370605397225,0.0,0.04772102118075083,1.3909762113409176,0.9,0.9640526701091585,0.74,0.9368908812103371,0.4254233878612323,ok,2.99,40,mean,0.8775469874345732,False,-58.51,,,,,,
|
| 5 |
+
A1,parking_intensity,ridge,linear,False,regression,L2 linear; interpretable reference,2.56,0.18181800680663765,1.053400425402709,0.04035066663937402,0.11342583888505309,0.5958682195895385,1.0,0.9996289938547847,0.94,0.994423004151664,0.7779481369948152,ok,4.56,40,mean,0.8775469874345732,True,32.1,,,,,,
|
| 6 |
+
A1,parking_intensity,poisson_glm,linear,False,regression,principled for counts; log link matches the data-generating process,5.06,0.17189238236181775,1.0885180260902263,0.020988049915628713,0.05332841455092818,0.5673836008157805,0.9,0.9921111598444908,0.82,0.9734818390275598,0.6490265766979837,ok,4.56,40,mean,0.8775469874345732,True,35.34,,,,,,
|
| 7 |
+
A1,parking_intensity,random_forest,trees,False,regression,best performer in the NYC parking-ticket literature,432.02,0.2187852573703123,1.0368686931759805,0.07861505291819938,0.14103471051962968,0.5668776162518149,1.0,0.9976864207756954,0.92,0.9925068023673536,0.3824930449137574,ok,4.56,40,mean,0.8775469874345732,True,35.4,,,,,,
|
| 8 |
+
A1,parking_intensity,extra_trees,trees,False,regression,variance-reduced contrast to random forest,113.51,0.1748889492729056,1.0341993416221973,0.024441011100341938,0.14545171897779297,0.5086050211645817,1.0,0.9980373997309749,0.9,0.9904771755584537,0.7389562391662564,ok,4.56,40,mean,0.8775469874345732,True,42.04,,,,,,
|
| 9 |
+
A1,parking_intensity,hist_gbm,gbdt,False,regression,sklearn-native GBDT; no extra dependency,7.01,0.1699447558929771,1.034312065227721,0.032510768255749244,0.1452654241134953,0.5171461350222122,0.9,0.9949781774288574,0.92,0.9926367657099348,0.7824813544738287,ok,4.56,40,mean,0.8775469874345732,True,41.07,,,,,,
|
| 10 |
+
A1,parking_intensity,hist_gbm_poisson,gbdt,False,regression,GBDT with a Poisson objective; regularised to keep the log link stable,14.29,0.161917240569187,1.0289828610535874,0.01834047777342695,0.15405062629205601,0.5044736803352946,0.9,0.9928776900994111,0.88,0.9828895420262487,0.747536295929003,ok,4.56,40,mean,0.8775469874345732,True,42.51,,,,,,
|
| 11 |
+
A1,parking_intensity,xgboost,gbdt,False,regression,GBDT benchmark with a count objective,13.35,0.16132170237280638,1.0295177075844357,0.020227094180881977,0.1531709796169487,0.5014180720880342,0.9,0.9930155771598324,0.9,0.9892487999987141,0.732518897543617,ok,4.56,40,mean,0.8775469874345732,True,42.86,,,,,,
|
| 12 |
+
A1,parking_intensity,lightgbm,gbdt,False,regression,fast GBDT; also supplies quantile regression for module B,9.21,0.16640163520589776,1.036428653608582,0.023906181597715806,0.14176363311352247,0.5075690673391181,0.9,0.9946071712836422,0.88,0.9875119017082823,0.6610736017346375,ok,4.56,40,mean,0.8775469874345732,True,42.16,,,,,,
|
| 13 |
+
A1,parking_intensity,catboost,gbdt,False,regression,ordered target statistics for high-cardinality categoricals,24.29,0.1612747364091122,1.0276079755812633,0.024321455756110506,0.15630976299014676,0.5104211001090951,0.9,0.9939142269313003,0.9,0.987792243792657,0.76728054230587,ok,4.56,40,mean,0.8775469874345732,True,41.84,,,,,,
|
| 14 |
+
A1,parking_intensity,torch_mlp,deep,False,regression,"feedforward net, Poisson NLL, on mps",27.37,0.13132892692142556,1.0542680428133824,0.005885475780814886,0.11196481051931706,0.5659210694417138,1.0,0.9968587149371659,0.9,0.98714599707701,0.7811024343899086,ok,4.56,40,mean,0.8775469874345732,True,35.51,,,,,,
|
| 15 |
+
A1,parking_intensity,torch_lstm,deep,False,regression,"LSTM over each cell's 48h history, on mps; the only family that sees temporal order rather than unordered lag columns",143.46,0.18193766879577852,1.0532079351876282,0.031860023736953735,0.11374982063897854,0.5841935486447665,0.9,0.9971648090706511,0.94,0.9931211246170913,0.878144760211635,ok,4.56,40,mean,0.8775469874345732,True,33.43,,,,,,
|
| 16 |
+
A2,hotspot,prior,baseline,True,classification,training prevalence for every row,0.02,,,,,,,,,,,ok,4.56,40,prior,0.0029089458395841036,False,0.0,0.0029089458395841036,0.5,0.0029007703566372683,0.005801016835379573,0.003444186860804607,0.0029089458395841036
|
| 17 |
+
A2,hotspot,logistic,linear,False,classification,interpretable reference,3.64,,,,,,,,,,,ok,4.56,40,prior,0.0029089458395841036,True,3760.27,0.11229315997607633,0.9221106745877935,0.0027461978520655697,0.2100065832784727,0.08572510411809244,0.0029089458395841036
|
| 18 |
+
A2,hotspot,random_forest,trees,False,classification,,50.6,,,,,,,,,,,ok,4.66,40,prior,0.0029089458395841036,True,4603.33,0.1368172776631159,0.9377418045451218,0.0026732557654095324,0.2285714285714286,0.1031976092892432,0.0029089458395841036
|
| 19 |
+
A2,hotspot,extra_trees,trees,False,classification,,17.08,,,,,,,,,,,ok,4.66,40,prior,0.0029089458395841036,True,4130.18,0.1230537723686062,0.9369560104765595,0.0027087969286315886,0.21223122032951688,0.08255354841731292,0.0029089458395841036
|
| 20 |
+
A2,hotspot,hist_gbm,gbdt,False,classification,,3.67,,,,,,,,,,,ok,4.66,40,prior,0.0029089458395841036,True,2838.28,0.08547284025267596,0.9097763542394164,0.00298728517614979,0.18650887573964497,0.07681518232189857,0.0029089458395841036
|
| 21 |
+
A2,hotspot,xgboost,gbdt,False,classification,,11.43,,,,,,,,,,,ok,4.66,40,prior,0.0029089458395841036,True,4340.7,0.12917743676760496,0.9368364582607696,0.002691778627234639,0.223070149691811,0.07977016270160675,0.0029089458395841036
|
| 22 |
+
A2,hotspot,lightgbm,gbdt,False,classification,,8.01,,,,,,,,,,,ok,4.66,40,prior,0.0029089458395841036,True,1136.22,0.035961093687821556,0.9252418276166541,0.007973816202310666,0.09569881165211906,0.05188120058826153,0.0029089458395841036
|
| 23 |
+
A2,hotspot,catboost,gbdt,False,classification,,24.89,,,,,,,,,,,ok,4.66,40,prior,0.0029089458395841036,True,4844.35,0.14382839190503652,0.9353999584117022,0.0026639999595382945,0.23731186559327966,0.10559202874947071,0.0029089458395841036
|
| 24 |
+
A3,capture_rejection,prior,baseline,True,classification,training prevalence for every row,0.0,,,,,,,,,,,ok,4.66,35,prior,0.2459016393442623,False,0.0,0.2459016393442623,0.5,0.1880989065447491,0.3947368421052631,0.2975241483174076,0.2459016393442623
|
| 25 |
+
A3,capture_rejection,logistic,linear,False,classification,interpretable reference,0.25,,,,,,,,,,,ok,4.66,35,prior,0.2459016393442623,True,17.67,0.28934353491863396,0.5642003700819774,0.7210785599827645,0.4068151532457644,0.965719296137278,0.2459016393442623
|
| 26 |
+
A3,capture_rejection,random_forest,trees,False,classification,,1.83,,,,,,,,,,,ok,4.66,35,prior,0.2459016393442623,True,18.72,0.2919371223029594,0.56828217040538,0.5618644396428021,0.4039561718219723,0.778454848961047,0.2459016393442623
|
| 27 |
+
A3,capture_rejection,extra_trees,trees,False,classification,,0.95,,,,,,,,,,,ok,4.66,35,prior,0.2459016393442623,True,14.87,0.2824691009004455,0.5544284084529997,0.4572565673147851,0.4027477180765973,0.6802202257324684,0.2459016393442623
|
| 28 |
+
A3,capture_rejection,hist_gbm,gbdt,False,classification,,2.19,,,,,,,,,,,ok,4.66,35,prior,0.2459016393442623,True,20.19,0.29554389576175,0.5574531478765222,0.7166039444839376,0.3960306720793866,0.7667793311770811,0.2459016393442623
|
| 29 |
+
A3,capture_rejection,xgboost,gbdt,False,classification,,1.21,,,,,,,,,,,ok,4.66,35,prior,0.2459016393442623,True,25.57,0.30877406545463415,0.574990291887237,0.712176038585389,0.3962299020513768,0.8728531002998352,0.2459016393442623
|
| 30 |
+
A3,capture_rejection,lightgbm,gbdt,False,classification,,1.64,,,,,,,,,,,ok,4.66,35,prior,0.2459016393442623,True,15.43,0.2838436986298878,0.5522256561108128,0.7249781623305395,0.39535096549830695,0.903491176858297,0.2459016393442623
|
| 31 |
+
A3,capture_rejection,catboost,gbdt,False,classification,,2.94,,,,,,,,,,,ok,4.66,35,prior,0.2459016393442623,True,21.46,0.2986611304240019,0.5630499168019767,0.6816912681208498,0.4033317001469867,0.908946155030489,0.2459016393442623
|
reports/leaderboard_module_b.csv
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
target,target_name,model,family,is_baseline,task,n_folds,notes,mae,mae_sd,rmse,rmse_sd,median_ae,median_ae_sd,r2,r2_sd,poisson_deviance,poisson_deviance_sd,mae_minutes,mae_minutes_sd,status,fit_seconds,pinball_loss,pinball_loss_sd,pr_auc,pr_auc_sd,roc_auc,roc_auc_sd,brier,brier_sd,f1_best,f1_best_sd,threshold_best,threshold_best_sd,prevalence,prevalence_sd,macro_f1,accuracy,macro_f1_english,macro_f1_kannada,n_classes
|
| 2 |
+
B1,clearance_duration,mean,baseline,True,regression,5,training mean; absolute floor,1.260522106664037,0.24065851165191923,1.7509625051756554,0.3123877691892465,0.8182186930855149,0.10365072055742873,-0.03382723196245516,0.046237587712695025,0.690449950536684,0.212962633001905,554.9495030799408,326.5441776584073,ok,0.0,,,,,,,,,,,,,,,,,,,
|
| 3 |
+
B1,clearance_duration,ridge,linear,False,regression,5,L2 linear; interpretable reference,1.2027714447584033,0.22107559382787254,1.558701342695872,0.26439943382884573,0.9284125467194627,0.16692183551890266,0.17806096764552876,0.06060978670652946,0.5400559881078847,0.1506640444624086,554.24205262534,321.0496104169942,ok,0.0,,,,,,,,,,,,,,,,,,,
|
| 4 |
+
B1,clearance_duration,poisson_glm,linear,False,regression,5,principled for counts; log link matches the data-generating process,1.2004740738582493,0.226246960403613,1.5670191250666126,0.27521093954153764,0.9107688574864687,0.15149816303053437,0.17034943702382183,0.06249915395863155,0.5445168447346016,0.15971452782463025,555.4238921566173,321.414740670501,ok,0.1,,,,,,,,,,,,,,,,,,,
|
| 5 |
+
B1,clearance_duration,random_forest,trees,False,regression,5,best performer in the NYC parking-ticket literature,1.154109403970058,0.20386322571261686,1.5038677747309048,0.24884664840166593,0.8994341603897524,0.16931014891016072,0.2349544148863924,0.04191577024976812,0.5034028656508378,0.1336955141062254,546.6246740710304,318.3372895885935,ok,0.5,,,,,,,,,,,,,,,,,,,
|
| 6 |
+
B1,clearance_duration,extra_trees,trees,False,regression,5,variance-reduced contrast to random forest,1.170107417853491,0.196936582044114,1.517832248851376,0.22795257951879677,0.916624274822818,0.18568561664998787,0.21698979131712245,0.06127465914212488,0.5084229745354177,0.12182766493882241,551.1426573705972,316.830673070478,ok,0.3,,,,,,,,,,,,,,,,,,,
|
| 7 |
+
B1,clearance_duration,hist_gbm,gbdt,False,regression,5,sklearn-native GBDT; no extra dependency,1.1611349606244405,0.17240512322910476,1.5410742439131884,0.21841018429659834,0.8821463162595204,0.11817623056696008,0.1886687817938532,0.09343934368444978,0.5321782898307907,0.11978398454851363,549.0341083921994,303.80459511948555,ok,3.6,,,,,,,,,,,,,,,,,,,
|
| 8 |
+
B1,clearance_duration,hist_gbm_poisson,gbdt,False,regression,5,GBDT with a Poisson objective; regularised to keep the log link stable,1.1868588555401016,0.21445214888247693,1.5547732119350581,0.2727403476151118,0.9004333603032701,0.14198654381520903,0.18322617151449858,0.06898591271113204,0.5362677504652243,0.1518549175604013,552.7475898758667,320.23679844832895,ok,0.9,,,,,,,,,,,,,,,,,,,
|
| 9 |
+
B1,clearance_duration,xgboost,gbdt,False,regression,5,GBDT benchmark with a count objective,1.1191195132282084,0.18446061055021115,1.4936198240242242,0.23736234194795164,0.8383735278704563,0.10175839466304133,0.24277048434229717,0.06488679791559139,0.49897152893099894,0.12794040677529817,538.6806482810352,310.529315461345,ok,1.2,,,,,,,,,,,,,,,,,,,
|
| 10 |
+
B1,clearance_duration,lightgbm,gbdt,False,regression,5,fast GBDT; also supplies quantile regression for module B,1.1645695314531896,0.20544872614182955,1.5196092073161651,0.2507225683803128,0.8932175105056505,0.171521305785665,0.2176992125048928,0.06449326836308021,0.5118820240103862,0.13289145525794557,549.3335062251077,320.4921936535713,ok,0.7,,,,,,,,,,,,,,,,,,,
|
| 11 |
+
B1,clearance_duration,catboost,gbdt,False,regression,5,ordered target statistics for high-cardinality categoricals,1.174484044419622,0.1534538387857054,1.557109600189331,0.2101488036586489,0.8907565744051299,0.08694029233256124,0.172111730452497,0.07541396133765116,0.5468205776648352,0.11220804648294296,538.7609414365767,312.3461617908101,ok,1.9,,,,,,,,,,,,,,,,,,,
|
| 12 |
+
B1,clearance_duration,torch_mlp,deep,False,regression,5,"feedforward net, Poisson NLL, on mps",4.051738410161095,2.0251186137000228,10.668206192627903,9.935947712074,2.0321815146253757,0.6175151979876022,-54.39175130074419,90.93946061170031,4.404505914031806,3.908198617112085,14098.059535723452,7892.800038703403,ok,1.0,,,,,,,,,,,,,,,,,,,
|
| 13 |
+
B1,clearance_duration,lightgbm_q50,quantile,False,regression,5,LightGBM quantile regression at P50,,,,,,,,,,,541.7571322286803,,ok,,0.5658338191196254,0.09038348141031136,,,,,,,,,,,,,,,,,
|
| 14 |
+
B1,clearance_duration,lightgbm_q90,quantile,False,regression,5,LightGBM quantile regression at P90,,,,,,,,,,,895.5332533083016,,ok,,0.23434683692192348,0.04018826495735153,,,,,,,,,,,,,,,,,
|
| 15 |
+
B2,road_closure,prior,baseline,True,classification,5,training prevalence for every row,,,,,,,,,,,,,ok,0.0,,,0.0872716303646841,0.015447408075374954,0.5,0.0,0.0797543279072396,0.013092340418834492,0.16023722561204323,0.02604840552371711,0.07779003473865542,0.003531587336180356,0.0872716303646841,0.015447408075374954,,,,,
|
| 16 |
+
B2,road_closure,logistic,linear,False,classification,5,interpretable reference,,,,,,,,,,,,,ok,0.1,,,0.3304267858760782,0.06471350802192852,0.7584314260669237,0.04641625426463492,0.07129412959900527,0.015619908442937083,0.38178201640419,0.04937322041037473,0.20804403607236194,0.14745539082543763,0.0872716303646841,0.015447408075374954,,,,,
|
| 17 |
+
B2,road_closure,random_forest,trees,False,classification,5,,,,,,,,,,,,,,ok,0.7,,,0.35779048369341504,0.07988578135872054,0.7723327586297549,0.044824833846754765,0.07123508605190483,0.01345000678288648,0.4326232448515889,0.07302480797017939,0.1953908651352837,0.04965092516914378,0.0872716303646841,0.015447408075374954,,,,,
|
| 18 |
+
B2,road_closure,extra_trees,trees,False,classification,5,,,,,,,,,,,,,,ok,0.5,,,0.3024126443474463,0.08285502431502986,0.7443135887736125,0.04988927394341682,0.07340695542256745,0.01399431883063253,0.38827682438344857,0.05921573087401412,0.17721072629847961,0.055056346149816346,0.0872716303646841,0.015447408075374954,,,,,
|
| 19 |
+
B2,road_closure,hist_gbm,gbdt,False,classification,5,,,,,,,,,,,,,,ok,7.2,,,0.3268907537929864,0.0607311114359096,0.7365730144984709,0.05000068175392363,0.07237993687219586,0.013179333444799383,0.385491439170347,0.06543762427594003,0.14926429545520192,0.11864230225770306,0.0872716303646841,0.015447408075374954,,,,,
|
| 20 |
+
B2,road_closure,xgboost,gbdt,False,classification,5,,,,,,,,,,,,,,ok,1.4,,,0.3445279383603258,0.08145351326476695,0.7564887454692879,0.039417263136213306,0.07034847421374624,0.014451926365461434,0.40934629190793936,0.0803790517207043,0.1640516385436058,0.06275346045375635,0.0872716303646841,0.015447408075374954,,,,,
|
| 21 |
+
B2,road_closure,lightgbm,gbdt,False,classification,5,,,,,,,,,,,,,,ok,5.6,,,0.34713162813596854,0.05956817136956174,0.7582920185954402,0.037401106139839,0.07459904815861046,0.017229342835227944,0.41444885495934836,0.0649962113608353,0.05424631594083251,0.06795915052012211,0.0872716303646841,0.015447408075374954,,,,,
|
| 22 |
+
B2,road_closure,catboost,gbdt,False,classification,5,,,,,,,,,,,,,,ok,2.6,,,0.36154124887172945,0.07135973584030703,0.7684213052775986,0.04496009015012284,0.06880849046861276,0.01507502042241341,0.4322953764133743,0.06712787868962242,0.18886126651494797,0.08503831960200346,0.0872716303646841,0.015447408075374954,,,,,
|
| 23 |
+
B3,priority,prior,baseline,True,classification,5,training prevalence for every row,,,,,,,,,,,,,ok,0.0,,,0.6145971416089371,0.02353481658298647,0.5,0.0,0.23695592363446677,0.005439595310225961,0.7610913675212618,0.017970121630957004,0.6162612661577086,0.002386558743819849,0.6145971416089371,0.02353481658298647,,,,,
|
| 24 |
+
B3,priority,logistic,linear,False,classification,5,interpretable reference,,,,,,,,,,,,,ok,0.1,,,0.9933935255657236,0.008031403033504112,0.9950780370164105,0.006034972026040526,0.006008575093313115,0.007661646948506368,0.9974926982551462,0.003481571668642841,0.7476996574894341,0.3411055493181163,0.6145971416089371,0.02353481658298647,,,,,
|
| 25 |
+
B3,priority,random_forest,trees,False,classification,5,,,,,,,,,,,,,,ok,0.5,,,0.9973889310065299,0.004981379764173996,0.9979504925338165,0.003571257954802564,0.039381992777994576,0.020561213204744477,0.9974926982551462,0.003481571668642841,0.507360591280179,0.034660868112138456,0.6145971416089371,0.02353481658298647,,,,,
|
| 26 |
+
B3,priority,extra_trees,trees,False,classification,5,,,,,,,,,,,,,,ok,0.4,,,0.9972109556737389,0.004959056524694404,0.9977295869448346,0.003401513231123668,0.07302468713917501,0.022180478049269765,0.9974926982551462,0.003481571668642841,0.6170408971335138,0.07512827299533618,0.6145971416089371,0.02353481658298647,,,,,
|
| 27 |
+
B3,priority,hist_gbm,gbdt,False,classification,5,,,,,,,,,,,,,,ok,2.5,,,0.9997690883722552,0.0004909861818297587,0.9996994001036444,0.0006276316772815197,0.0032002353687849983,0.004188334085885902,0.9985050903771393,0.0018159116197732246,0.8086935859415953,0.4260624958457399,0.6145971416089371,0.02353481658298647,,,,,
|
| 28 |
+
B3,priority,xgboost,gbdt,False,classification,5,,,,,,,,,,,,,,ok,0.8,,,0.9993561268804145,0.0014355424114520315,0.9991910133372957,0.0018013747447878274,0.002776907357935806,0.0042633603214508485,0.9981519545757035,0.003704339551672374,0.8368383288383484,0.1871354260488693,0.6145971416089371,0.02353481658298647,,,,,
|
| 29 |
+
B3,priority,lightgbm,gbdt,False,classification,5,,,,,,,,,,,,,,ok,3.3,,,0.9997107195995196,0.0006426535470423078,0.9996955843868814,0.0006731356339959261,0.0015704390192494478,0.002348312161142105,0.9991597127597821,0.001475565546121307,0.8499869811010715,0.33359256431401246,0.6145971416089371,0.02353481658298647,,,,,
|
| 30 |
+
B3,priority,catboost,gbdt,False,classification,5,,,,,,,,,,,,,,ok,2.5,,,0.9998711193264042,0.0002839992804634838,0.9998204267084283,0.0003939978795279536,0.0022089023102066473,0.0030789153217137236,0.9989900799351055,0.0018465461649882862,0.9303915652402834,0.11580199387046292,0.6145971416089371,0.02353481658298647,,,,,
|
| 31 |
+
B4,cause_from_text,majority,baseline,True,classification,1,always predict the most common cause,,,,,,,,,,,,,ok,,,,,,,,,,,,,,,,0.04407376233835795,,,,
|
| 32 |
+
B4,cause_from_text,tfidf_char_logreg,nlp,False,classification,1,TF-IDF char n-grams (2-5) into logistic regression; handles code-mixed English/Kannada without tokenisation,,,,,,,,,,,,,ok,,,,,,,,,,,,,,,,0.4781960734643766,0.6555423122765197,0.48334516832814006,0.47172455632110644,12.0
|
reports/spatial_analysis.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"gistar": {
|
| 3 |
+
"permutations": 26480,
|
| 4 |
+
"raw_counts": {
|
| 5 |
+
"moran_i": 0.3848551744256353,
|
| 6 |
+
"moran_p": 3.7762924360862507e-05,
|
| 7 |
+
"hot_raw_p05": 37,
|
| 8 |
+
"hot_fdr": 6,
|
| 9 |
+
"cold_fdr": 1
|
| 10 |
+
},
|
| 11 |
+
"per_patrol_hour": {
|
| 12 |
+
"moran_i": 0.210928770710602,
|
| 13 |
+
"moran_p": 0.0006797326384955251,
|
| 14 |
+
"hot_raw_p05": 28,
|
| 15 |
+
"hot_fdr": 0,
|
| 16 |
+
"cold_fdr": 3
|
| 17 |
+
},
|
| 18 |
+
"hotspot_overlap": 0,
|
| 19 |
+
"raw_only": 6,
|
| 20 |
+
"rate_only": 0
|
| 21 |
+
},
|
| 22 |
+
"clustering": {
|
| 23 |
+
"sample_size": 80000,
|
| 24 |
+
"hdbscan": {
|
| 25 |
+
"clusters": 124,
|
| 26 |
+
"noise": 15294
|
| 27 |
+
},
|
| 28 |
+
"stdbscan": {
|
| 29 |
+
"clusters": 151,
|
| 30 |
+
"noise": 72710
|
| 31 |
+
}
|
| 32 |
+
}
|
| 33 |
+
}
|