Using Machine Learning to Build a Walkability Score
Vivo a Seattle e mi sono recentemente trasferito in un altro quartiere. Secondo gli algoritmi proprietari di Walk Score, mi sono spostato dal 9° quartiere di Seattle più camminabile al 30°. Posso ancora raggiungere facilmente a piedi una caffetteria locale e un barbiere, ma questo è tutto! Posso dire che mi sono spostato in un quartiere considerevolmente meno percorribile, ma non è chiaro come quantificare l’entità o cosa va in un punteggio di percorribilità.
In precedenza ho usato l’API Walk Score come fonte di dati per prevedere il raggruppamento delle posizioni degli scooter elettrici. Walk Score è un sito web che prende un indirizzo e calcola una misura della sua percorribilità su una scala da 0 a 100 utilizzando algoritmi proprietari e vari flussi di dati.
Come qualcuno a cui piace camminare per andare in giro (e fare escursioni!), sono diventato curioso di sapere cosa alimenta questi algoritmi proprietari che generano un punteggio di percorribilità. Mi sono posto le seguenti domande:
- Gli algoritmi proprietari di Walk Score possono essere reingegnerizzati?
2. Quali caratteristiche sono importanti nella costruzione di un punteggio di camminabilità?
Per rispondere a queste domande, ho costruito un set di dati personalizzato raccogliendo una serie di dati granulari della città di Seattle e dati API Walk Score per addestrare modelli di apprendimento automatico per prevedere un punteggio di camminabilità. Sono stato in grado di addestrare un modello che ha raggiunto un R² di 0,95 sui dati del test-set. R-squared spiega la misura in cui la varianza del set di caratteristiche spiega la varianza del Walk Score.
In sostanza, sono stato in grado di reingegnerizzare la metodologia Walk Score e ricreare gli algoritmi proprietari che alimentano il loro Walk Score. Le caratteristiche più importanti per la camminabilità di un luogo sono il numero di ristoranti entro 1000 metri, la densità di popolazione all’interno di quel tratto di censimento, il numero di supermercati entro 1000 metri, e la vicinanza in metri alla zona commerciale più vicina.
Data
Ho iniziato generando casualmente coordinate di latitudine e longitudine nell’area della Grande Seattle. Una volta armato di una lista di ~7800 geolocalizzazioni uniche, ho sfruttato l’API Walk Score che ha restituito un punteggio di camminabilità per ogni geolocalizzazione unica. Ho quindi iniziato a raccogliere dati che riflettessero la camminabilità dell’area circostante di una località.
Fonti di dati:
- OSMnx: Pacchetto Python che consente di scaricare geometrie spaziali e modellare, proiettare, visualizzare e analizzare reti stradali dalle API di OpenStreetMap.
- Walk Score API: Restituisce un punteggio di camminabilità per qualsiasi località.
- LocationIQ API: Nearby Points of Interest (PoI) API restituisce PoI specificati o luoghi intorno ad una data coordinata.
- Seattle City Zoning: Zoning distretti specificano una categoria di utilizzo (ad esempio, residenziale monofamiliare, residenziale multifamiliare, commerciale, industriale, ecc)
- Seattle Census Data: Fornisce popolazione e area in miglia quadrate per tratti di censimento all’interno di Census Tracts and Geographic Identifiers
- U.S. Census Geocoder API: Per una data geolocalizzazione, l’API restituisce i tratti di censimento e gli identificatori geografici unici. Questo è stato fondamentale per unire correttamente i dati di Zoning e Census.
Feature Engineering
A causa delle limitazioni delle richieste giornaliere di LocationIQ API, ho prolungato la fase di raccolta dati per due settimane. Questo mi ha lasciato con ~7800 geolocalizzazioni uniche che ho poi ingegnerizzato 27 caratteristiche per addestrare modelli di apprendimento automatico per prevedere la camminabilità in tutta Seattle.
Le caratteristiche si suddividono in quattro categorie:
- Basate sulle città: numero di stazioni degli autobus, parchi, ristoranti, scuole, servizi totali entro un raggio specificato (raggio di 1000 metri è stato utilizzato per la maggior parte dei servizi)
2) Census Derived: categoria di zonizzazione e densità di popolazione
3) Basato sulla distanza: vicinanza all’autostrada più vicina, strada primaria più vicina, strada secondaria più vicina, strada residenziale più vicina, zonizzazione industriale più vicina
4) Struttura della rete pedonale: conteggio delle intersezioni, circuitazione media, lunghezza media delle strade, media delle strade per nodo
Sviluppo del modello
Ho addestrato tre modelli di apprendimento automatico: una regressione random forest, una regressione gradient boosting e una regressione extreme gradient boosting. Ho addestrato ciascuno di questi modelli su due terzi dei dati raccolti e ho riservato il restante terzo per i test.
La regressione extreme gradient boosting ha fatto un ottimo lavoro di previsione del Walk Score, ottenendo un R² di 0,95 sul test set di un terzo (~2300 campioni). Questo modello ha avuto la migliore accuratezza del set di test (RMSE).
Cosa c’è nella scatola nera?
Lo scopo del reverse engineering della metodologia Walk Score era quello di ottenere una comprensione delle caratteristiche chiave che vanno nei loro algoritmi. Vogliamo sapere cosa rende davvero un luogo percorribile, non solo un punteggio! Esaminando l’importanza delle caratteristiche del modello di boosting a gradiente estremo, il numero di ristoranti entro 1000 metri ha dominato come caratteristica più importante. Altre caratteristiche importanti del modello erano la densità di popolazione in un dato tratto di censimento, il numero di servizi totali, il numero di supermercati entro 1000 metri e la vicinanza in metri alla zona commerciale più vicina.
Conclusione
Il Walk Score è già un utile strumento decisionale su dove vivere e sviluppare immobili in base alle preferenze di camminare, andare in bicicletta e transitare. Ora è utile avere una comprensione della metodologia del Walk Score e quali caratteristiche entrano nella costruzione dei loro algoritmi. Ora conosciamo gli input che rendono un luogo percorribile secondo Walk Score.
Il modello attuale è addestrato entro i confini della città di Seattle, dove le caratteristiche urbane sono simili. Ci sono caratteristiche aggiuntive che potrebbero essere raccolte per migliorare il potere predittivo del Walk Score, come le misurazioni topografiche e i calcoli della distanza dalle amenità più vicine. Le previsioni del modello potrebbero essere facilmente estese ad altre aree, dato che l’API del Walk Score e le fonti di dati sottostanti per generare le caratteristiche (US Census, OSMnx, City Zoning, LocationIQ) sono ampiamente disponibili.
Codice
Il codice di questo progetto può essere trovato sul mio GitHub