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
File size: 4,173 Bytes
55151a3 | 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 | # Enforcement-Bias Audit
*Generated 2026-09-01 23:22 UTC · MargaDrishti Phase 9*
## Why this exists
Finding F6: `corr(log patrol_hours, log total_captures) = 0.967`. Roughly **94%
of the variance** in per-cell violation counts is explained by how much
patrolling happened there — not by how much illegal parking happened there.
Violation records are **enforcement observations, not violation occurrences**. A
model trained on them largely reconstructs the existing patrol roster. Deployed
as a recommender, it sends officers where officers have been, generating more
records there, confirming itself.
This audit measures how close the system sits to that loop. **It does not issue
a clearance.** The bias is known to exist and cannot be removed from this data;
the honest output is a magnitude.
## Findings
| Test | Statistic | Concern | Interpretation |
|---|---|---|---|
| feedback loop | `+0.613` | **MODERATE** | Spearman rho=+0.613 between score and historical patrol hours - recommendations substantially track past patrolling |
| 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 |
| station disparity | `+0.209` | **HIGH** | recommendation Gini 0.796 vs violation Gini 0.587 (excess +0.209) across 53 stations |
| counterfactual patrol | `+0.300` | **MODERATE** | only 30% of the top-50 cells survive equalising patrol effort (full-ranking tau +0.318) |
**Highest concern level: HIGH**
## Deployment-plan coverage
- Cells assigned: **8** of 1,802
- Share of total city risk addressed: **10.43%**
- Under-observed cells in the plan: **0**
| rank | cell | rcri | parking_share | under_observed | reason |
|-------:|:----------------|--------:|----------------:|:-----------------|:-------------------------------------------------------|
| 1 | 8960145b427ffff | 0.98443 | 0.962 | False | highest remaining risk outside an already-covered area |
| 2 | 8961892e9abffff | 0.88877 | 0.99 | False | highest remaining risk outside an already-covered area |
| 3 | 89601690193ffff | 0.79073 | 0.992 | False | highest remaining risk outside an already-covered area |
| 4 | 89618920babffff | 0.63428 | 0.878 | False | highest remaining risk outside an already-covered area |
| 5 | 8960145b59bffff | 0.46944 | 0.939 | False | highest remaining risk outside an already-covered area |
| 6 | 8960145b543ffff | 0.44005 | 0.96 | False | highest remaining risk outside an already-covered area |
| 7 | 8961892e16bffff | 0.41807 | 0.895 | False | highest remaining risk outside an already-covered area |
| 8 | 896016964b7ffff | 0.41304 | 1 | False | highest remaining risk outside an already-covered area |
## What this system does and does not claim
**Does:** rank locations by predicted enforcement demand, conditioned on
observed patrol effort, with under-observed cells flagged.
**Does not:** claim to identify where illegal parking actually occurs. Phase 5
established that no Getis-Ord hotspot survives exposure adjustment — the
apparent spatial structure of violations is substantially a map of where
officers went.
**Never:** rank or profile an individual officer or vehicle owner. `device_id`,
`created_by_id` and `vehicle_number` are used only in aggregate.
## Mitigations in force
1. Enforcement effort enters models as both features and a Poisson offset, so
the target is a rate per unit effort rather than a raw count.
2. Under-observed cells (bottom patrol-coverage quartile) are flagged and
surfaced, never silently dropped — excluding them would entrench the
existing patrol map.
3. Constructed indices (CIS, RCRI) are labelled as constructed wherever they
appear, and CIS is **not externally validated** (F16).
4. Deployment plans carry a per-assignment reason so an inspector can overrule
on visible grounds.
|