A machine learning case study using 900K+ crash records from Chicago's Open Data Portal, combining interpretable modeling, spatial analysis, and policy-relevant insights.
Class distribution in the 96K modeling sample. Serious injuries (fatal or incapacitating) make up less than 2% of all crashes.
Decision tree model: contribution to reducing entropy across splits
Values represent each feature's share of total impurity reduction across all splits in the tree and sum to 1 across all features used. A score of 0.063 means that feature drove about 6.3% of the model's decision-making.
Chicago launched its Vision Zero Action Plan in 2017 with a goal of eliminating traffic fatalities and serious injuries by 2026. Despite that commitment, the city still recorded 136 traffic deaths in 2023 alone.
Traffic safety is also an equity issue. Black and Brown communities on Chicago's South and West Sides bear a disproportionate share of crash hospitalizations, often in neighborhoods that have seen less investment in road safety infrastructure.
Serious injuries make up a small fraction of all crashes. That class imbalance makes standard accuracy metrics misleading, so the model optimizes for Precision-Recall AUC instead.
The analysis draws from three public datasets maintained by the Chicago Data Portal, all linked by a shared crash record ID.
Crashes: one row per incident, with road conditions, weather, speed limit, contributing cause, and the target variable: most severe injury type.
People: one row per person involved, capturing age, sex, airbag deployment, and injury classification.
Vehicles: one row per vehicle unit, with vehicle type and driver maneuver at the time of the crash.
The three datasets were aggregated to crash level and merged before modeling. The final cleaned sample covers roughly 96K records across 15 features.
Crash volume clusters along Chicago's major north-south corridors: Western, Pulaski, and Cicero Avenues, plus the downtown Loop. These patterns track closely with traffic volume on high-speed arterials.
But high crash volume and high injury severity are not the same thing. The next two maps break that apart.
Zoom and pan the map to explore crash density across the city.
Red points are fatal or incapacitating crashes. Blue points are non-serious. Use the layer toggle in the top right to show or hide each group.
Serious crashes do not simply follow total crash volume. They show up in residential corridors and lower-traffic areas too, which points to road design and speed environment as bigger factors than volume alone.
Looking at crash counts by neighborhood misses the point. What matters is the rate of serious injuries per crash. Some lower-volume neighborhoods have rates well above the city average.
Communities on the South and West Sides show consistently elevated rates. These are also neighborhoods that have historically seen less investment in traffic safety infrastructure, which is central to Chicago's Vision Zero equity framing.
Hover over any neighborhood to see total crashes, serious crashes, and the serious injury rate.
A decision tree was chosen over black-box alternatives because interpretability matters for policy work. Decision-makers need to understand why a model flags something, not just that it does.
The top predictor is airbag non-deployment, which likely serves as a proxy for crash force: airbags only deploy above a certain impact threshold, so their absence in serious crashes points to vehicle speed and size as underlying factors. Male drivers and seasonal conditions also rank consistently high.
The model and the spatial analysis point in the same direction. The question is not just where crashes happen, but which crashes cause serious harm and why. Here is what the data suggests agencies like CDOT and CMAP should focus on.