Comment l’intelligence artificielle réinvente la sécurité des promenades urbaines à San Francisco
En sortant d’un dîner dans le centre-ville de San Francisco, j’ai dit au revoir à mes amis et j’ai sorti mon téléphone pour trouver un moyen de rentrer chez moi. Il était près de 23h30, et les estimations d’Uber étaient inhabituellement longues. J’ai ouvert Google Maps pour envisager de marcher. Les itinéraires étaient comparables en distance, mais j’hésitais — non pas à cause de la durée, mais parce que je ne savais pas comment certains tronçons de route pourraient se sentir à cette heure-là. Google Maps pouvait me donner le chemin le plus rapide, mais pas répondre à la question que je me posais vraiment : comment choisir un trajet qui passe par des quartiers plus sûrs, plutôt que le plus rapide ? Définition du problème Étant donné un point de départ, un point d’arrivée, un jour de la semaine et une heure, comment prédire le risque attendu sur un itinéraire piéton ? Par exemple, si je veux aller du Ferry Building à Lower Nob Hill, Google Maps propose plusieurs options, toutes d’environ 40 minutes. Bien que ces données soient utiles pour comparer distance et durée, elles ne répondent pas à une question contextuelle essentielle : comment le risque varie-t-il selon l’heure ? Un même trajet à 9h un mardi ou à 23h un samedi peut être très différent. Les trajets longs ou traversant des zones aux dynamiques historiques variées rendent cette évaluation intuitive difficile. Bien que San Francisco ne soit pas particulièrement dangereux comparé à d’autres grandes villes, la sécurité publique reste un facteur pertinent, surtout pour les visiteurs ou lorsqu’on marche dans des quartiers inconnus. Mon objectif était de créer un outil pour les habitants et les touristes, utilisant des données historiques et l’apprentissage automatique pour estimer comment le risque évolue dans l’espace et le temps, sans réduire la ville à des étiquettes simplistes. Collecte et prétraitement des données Les rapports d’incidents policiers de San Francisco sont publiés quotidiennement via le portail des données ouvertes de la ville. Ce jeu de données, couvrant janvier 2018 à aujourd’hui, inclut la catégorie, la sous-catégorie, la description, l’heure et la localisation (latitude/longitude). Un défi majeur : toutes les infractions ne représentent pas le même niveau de risque. Un vandalisme mineur ne devrait pas être traité comme une agression violente. Pour corriger cela, j’ai extrait plus de 800 combinaisons uniques de catégorie, sous-catégorie et description. Ensuite, j’ai utilisé un modèle de langage (LLM) pour attribuer une note de gravité à chaque type d’incident, sur trois dimensions (0–10) : gravité physique, impact psychologique, et fréquence. Ces notes ont été combinées pour former un signal de risque global, permettant de modéliser non seulement la fréquence, mais aussi la nature des incidents. Représentation spatiale et temporelle Pour intégrer les données géospatiales, j’ai utilisé H3, une grille hexagonale développée par Uber. Cette méthode divise la Terre en hexagones (et 12 pentagones) à partir d’un icosaèdre, offrant une tessellation régulière où chaque cellule est équidistante de ses voisines — idéal pour lissage spatial. Chaque bloc ou quartier est ainsi associé à un index unique, simplifiant l’ingénierie des caractéristiques. Le temps est tout aussi crucial. Une codification naïve de l’heure ou du jour entraîne des discontinuités (23h59 et 00h00 sont numériquement éloignés). J’ai donc utilisé des transformations sinusoidales (sin et cos) pour représenter le temps cycliquement sur un cercle unité, permettant au modèle de comprendre que la nuit et le matin sont proches. Les incidents ont été regroupés en fenêtres de 3 heures — un compromis entre granularité et stabilité, permettant de distinguer l’après-midi, le soir ou la nuit. Modélisation du risque avec XGBoost et régression Tweedie Le modèle cible était la prédiction du risque attendu par cellule H3, à une heure et un jour donnés. J’ai choisi XGBoost pour sa capacité à capturer des relations non linéaires, sa rapidité d’inférence et sa robustesse sur des données tabulaires. Le risque n’est pas gaussien : les données sont fortement asymétriques, avec de nombreux zéros (zones peu incidentées) et des pics rares mais extrêmes. La régression Tweedie est idéale ici : elle modélise le risque comme une somme de nombre aléatoire d’événements, chacun ayant une taille aléatoire positive. Elle combine Poisson (nombre d’événements) et Gamma (gravité des événements), ce qui correspond parfaitement à la nature des incidents criminels. Par exemple, dans le Presidio, une seule infraction grave donne un risque élevé en théorie, mais si elle est rare, le risque attendu reste faible. À l’inverse, dans le Tenderloin, des milliers d’incidents de gravité modérée produisent un risque élevé. Tweedie prend en compte ces deux dimensions. Application : StreetSense J’ai développé une application web, StreetSense, intégrant Google Maps. Les segments sont colorés selon des percentiles : vert (≤ P50), jaune (≤ P75), orange (≤ P90), rouge (au-delà). Si un itinéraire plus sûr existe avec une déviation inférieure à 15 %, l’application propose une réorientation automatique. Sur un trajet de Chinatown à Market & Van Ness, les différences entre 9h un mardi et 23h un samedi sont frappantes : le modèle propose un itinéraire plus sûr la nuit, évitant les zones à risque élevé. Perspectives Le modèle repose sur des données historiques, donc il reflète les tendances passées, pas les événements futurs. Il ne doit pas être vu comme une garantie, mais comme un outil d’aide à la décision. L’objectif est d’offrir une prise de conscience contextuelle, pas de juger les lieux. Essayer StreetSense : https://san-francisco-safety-index.vercel.app Données : Open Data Portal de San Francisco (licence ouverte). Remerciements : Équipe des données ouvertes de San Francisco, et références techniques sur H3, régression Tweedie et ingénierie temporelle.
