Using Machine Learning to Build a Walkability Score
Ik woon in Seattle en ben onlangs verhuisd naar een andere buurt. Volgens de eigen algoritmen van Walk Score ben ik van de 9e meest beloopbare buurt van Seattle naar de 30e verhuisd. Ik kan nog steeds gemakkelijk naar een plaatselijke koffieshop en kapper lopen, maar dat is het wel zo’n beetje! Ik kan zeggen dat ik ben verhuisd naar een aanzienlijk minder beloopbare buurt, maar het is onduidelijk hoe de omvang te kwantificeren of wat er in een beloopbaarheidsscore gaat.
Ik heb eerder de Walk Score API gebruikt als een gegevensbron voor het voorspellen van clustering van elektrische scooterlocaties. Walk Score is een website die een adres neemt en een maat van de walkability berekent op een schaal van 0-100 met behulp van eigen algoritmen en verschillende datastromen.
Als iemand die graag loopt om plaatsen te krijgen (en wandelen!), ben ik nieuwsgierig geworden naar wat deze eigen algoritmen voedt die een walkability score genereren. Ik wilde de volgende vragen stellen:
- Kunnen de gepatenteerde Walk Score-algoritmen worden omgekeerd?
2. Welke kenmerken zijn belangrijk bij het opstellen van een walkability-score?
Om deze vragen te beantwoorden, heb ik een aangepaste dataset gebouwd door een reeks granulaire stadsgegevens van Seattle en Walk Score API-gegevens te verzamelen om modellen voor machinaal leren te trainen om een walkability-score te voorspellen. Ik was in staat om een model te trainen dat een R² van 0,95 bereikte op test-set gegevens. R-kwadraat verklaart de mate waarin de variantie van de kenmerkenset de variantie van de Walk Score verklaart.
In wezen was ik in staat om de Walk Score-methodologie te reverse-engineeren en de eigen algoritmen opnieuw te maken die hun Walk Score aandrijven. De belangrijkste kenmerken voor de beloopbaarheid van een locatie zijn het aantal restaurants binnen 1000 meter, de bevolkingsdichtheid binnen dat volkstrekkingsgebied, het aantal supermarkten binnen 1000 meter, en de afstand in meters tot de dichtstbijzijnde commerciële bestemming.
Data
Ik begon met het willekeurig genereren van lengte- en breedtecoördinaten in de regio Groot-Seeuwrijk. Eenmaal gewapend met een lijst van ~7800 unieke geolocaties heb ik gebruik gemaakt van de Walk Score API die een walkability score teruggaf voor elke unieke geolocatie. Ik ben toen begonnen met het verzamelen van gegevens die de beloopbaarheid van de omgeving van een locatie weergeven.
Gegevensbronnen:
- OSMnx: Python-pakket waarmee u ruimtelijke geometrieën kunt downloaden en straatnetwerken van OpenStreetMap’s API’s kunt modelleren, projecteren, visualiseren en analyseren.
- Walk Score API: Geeft een loopbaarheid score voor elke locatie.
- LocationIQ API: Nabijgelegen Points of Interest (PoI) API retourneert gespecificeerde PoI’s of plaatsen rond een gegeven coördinaat.
- Seattle City Zoning: Zoning districten specificeren een categorie van het gebruik (bijvoorbeeld, eengezinswoning, meergezinswoning, commercieel, industrieel, enz.)
- Seattle Census Data: Biedt bevolking en oppervlakte in vierkante mijl voor census tracts binnen Census Tracts and Geographic Identifiers
- U.S. Census Geocoder API: Voor een gegeven geolocatie geeft de API Volkstellingstracties en unieke Geografische Identifiers terug. Dit was cruciaal voor het correct samenvoegen van Zoning en Census data.
Feature Engineering
Vanwege de beperkingen van de LocationIQ API dagelijkse verzoeken, verlengde ik de dataverzamelingsfase met twee weken. Hierdoor beschikte ik over ~7800 unieke geolocaties en heb ik 27 kenmerken ontwikkeld om modellen voor machinaal leren te trainen waarmee de beloopbaarheid in heel Seattle kan worden voorspeld.
De kenmerken kunnen worden onderverdeeld in vier categorieën:
- Gebaseerd op voorzieningen: aantal busstations, parken, restaurants, scholen, totaal aantal voorzieningen binnen een bepaalde straal (voor de meeste voorzieningen werd een straal van 1000 meter gebruikt)
2) Van volkstelling afgeleide: bestemmingscategorie en bevolkingsdichtheid
3) Op afstand gebaseerde: nabijheid van dichtstbijzijnde snelweg, dichtstbijzijnde primaire weg, dichtstbijzijnde secundaire weg, dichtstbijzijnde woonweg, dichtstbijzijnde industriezone
4) Loopnetwerkstructuur: aantal kruispunten, gemiddelde omloopsnelheid, gemiddelde straatlengte, gemiddelde straten per knooppunt
Model ontwikkeling
Ik trainde drie machine learning modellen: een random forest regressie, een gradient boosting regressie en een extreme gradient boosting regressie. Ik trainde elk van deze modellen op twee derde van de verzamelde gegevens en reserveerde het resterende derde voor tests.
De extreme gradiënt boosting regressie deed het uitstekend bij het voorspellen van de wandelscore, met een R² van 0,95 op de een-derde testset (~2300 monsters). Dit model had de best presterende nauwkeurigheid van de testset (RMSE).
Wat zit er in de zwarte doos?
Het doel van de reverse-engineering van de Walk Score-methodologie was om inzicht te krijgen in de hoofdkenmerken die in hun algoritmen zitten. We willen weten wat een locatie echt beloopbaar maakt, niet alleen een score! Door het onderzoeken van het belang van het extreme gradient boosting model, domineerde het aantal restaurants binnen 1000 meter als het meest belangrijke kenmerk. Andere belangrijke modelkenmerken waren de bevolkingsdichtheid in een bepaalde census tract, het aantal totale voorzieningen, het aantal supermarkten binnen 1000 meter, en de nabijheid in meters van de dichtstbijzijnde commerciële zone.
Conclusie
De Walk Score is nu al een nuttig instrument om te bepalen waar je wilt wonen en vastgoed te ontwikkelen op basis van je voorkeuren voor lopen, fietsen en vervoer. Het is nu nuttig om een begrip te hebben van de Walk Score methodologie en welke kenmerken worden gebruikt bij het bouwen van hun algoritmen. We weten nu wat een locatie volgens Walk Score “beloopbaar” maakt.
Het huidige model is getraind binnen de stadsgrenzen van Seattle, waar de stedelijke kenmerken vergelijkbaar zijn. Er zijn extra kenmerken die kunnen worden verzameld om de voorspellende kracht van de Walk Score te verbeteren, zoals topografische metingen en de dichtstbijzijnde voorzieningen afstand berekeningen. Modelvoorspellingen kunnen gemakkelijk worden uitgebreid naar andere gebieden, aangezien de Walk Score API en de onderliggende gegevensbronnen voor het genereren van kenmerken (US Census, OSMnx, City Zoning, LocationIQ) breed beschikbaar zijn.
Code
De code voor dit project is te vinden op mijn GitHub