Využití strojového učení k vytvoření skóre pěší dostupnosti
Žiji v Seattlu a nedávno jsem se přestěhoval do jiné čtvrti. Podle vlastních algoritmů Walk Score jsem se přestěhoval z 9. nejschůdnější čtvrti Seattlu na 30. místo. Stále mohu snadno dojít do místní kavárny a k holiči, ale to je asi tak všechno! Mohu říci, že jsem se přestěhoval do podstatně méně schůdné čtvrti, ale není jasné, jak kvantifikovat velikost nebo co vstupuje do skóre schůdnosti.
Předtím jsem použil rozhraní Walk Score API jako zdroj dat pro předpovídání shlukování umístění elektrických koloběžek. Walk Score je webová stránka, která vezme adresu a vypočítá míru její pěší dostupnosti na stupnici od 0 do 100 pomocí vlastních algoritmů a různých datových toků.
Jako člověka, který rád chodí na místa pěšky (a na túry!), mě začalo zajímat, co pohání tyto vlastní algoritmy, které generují skóre pěší dostupnosti. Rozhodl jsem se položit si následující otázky:
- Dají se proprietární algoritmy Walk Score zpětně analyzovat?
2. Jaké vlastnosti jsou důležité při sestavování skóre pěší dostupnosti?
Pro zodpovězení těchto otázek jsem vytvořil vlastní soubor dat shromážděním různorodého souboru granulovaných dat města Seattle a dat Walk Score API, abych mohl trénovat modely strojového učení pro předpovídání skóre pěší dostupnosti. Podařilo se mi natrénovat model, který dosáhl R² 0,95 na datech testovací sady. R-kvadrát vysvětluje, do jaké míry rozptyl sady funkcí vysvětluje rozptyl skóre chůze.
V podstatě jsem byl schopen zpětně analyzovat metodiku Walk Score a znovu vytvořit vlastní algoritmy, které pohánějí jejich Walk Score. Nejdůležitějšími znaky pro pěší dostupnost lokality jsou počet restaurací v okruhu 1000 metrů, hustota obyvatelstva v daném sčítacím obvodu, počet supermarketů v okruhu 1000 metrů a blízkost v metrech k nejbližší komerční zóně.
Data
Začal jsem náhodným generováním souřadnic zeměpisné šířky a délky v oblasti Velkého Seattlu. Jakmile jsem měl k dispozici seznam ~ 7800 jedinečných geolokací, využil jsem rozhraní Walk Score API, které pro každou jedinečnou geolokaci vrátilo skóre pěší dostupnosti. Poté jsem se pustil do sběru dat, která odrážela schůdnost okolí dané lokality.
Zdroje dat:
- OSMnx:
- Walk Score API: Balíček pro Python, který umožňuje stahovat prostorovou geometrii a modelovat, promítat, vizualizovat a analyzovat sítě ulic z rozhraní API OpenStreetMap:
- LocationIQ API: Vrátí skóre schůdnosti pro libovolné místo:
- Seattle City Zoning: Rozhraní API pro blízké body zájmu (PoI) vrací zadané body zájmu nebo místa v okolí dané souřadnice: Zoning districts specifikuje kategorii využití (např. obytné domy pro jednu rodinu, obytné domy pro více rodin, komerční, průmyslové atd.)
- Seattle Census Data: Poskytuje údaje o počtu obyvatel a rozloze v čtverečních mílích pro sčítací obvody v rámci Census Tracts and Geographic Identifiers
- U.S. Census Geocoder API: Pro danou zeměpisnou polohu vrátí API sčítací obvody a jedinečné geografické identifikátory. To bylo klíčové pro správné sloučení v datech územního plánování a sčítání lidu.
Inženýrství funkcí
Vzhledem k omezení denních požadavků rozhraní API LocationIQ jsem fázi sběru dat prodloužil o dva týdny. Díky tomu jsem získal ~ 7800 unikátních geolokací, ze kterých jsem následně vytvořil 27 funkcí pro trénování modelů strojového učení k předpovídání pěší dostupnosti v celém Seattlu.
Funkce se dělí do čtyř kategorií:
- Založené na objektech: Počet autobusových zastávek, parků, restaurací, škol, celková vybavenost v určitém okruhu (pro většinu vybavenosti byl použit okruh 1000 metrů)
2) Odvozené ze sčítání lidu:
3) na základě vzdálenosti: Blízkost k nejbližší dálnici, nejbližší hlavní silnici, nejbližší vedlejší silnici, nejbližší obytné silnici, nejbližší průmyslové zóně
4) Struktura pěší sítě: Počet křižovatek, průměrný okruh, průměrná délka ulice, průměrná délka ulice na uzel
Vývoj modelu
Trénoval jsem tři modely strojového učení: regresi s náhodným lesem, regresi s gradientním boostingem a regresi s extrémním gradientním boostingem. Každý z těchto modelů jsem trénoval na dvou třetinách shromážděných dat a zbývající třetinu jsem vyhradil pro testování.
Regrese s extrémním gradientním boostingem odvedla skvělou práci při predikci skóre chůze, když dosáhla R² 0,95 na třetinovém testovacím souboru (~2300 vzorků). Tento model měl nejlepší přesnost testovací sady (RMSE).
Co je v černé skříňce?“
Účelem zpětného inženýrství metodiky Walk Score bylo získat představu o klíčových funkcích, které jsou součástí jejich algoritmů. Chceme vědět, co skutečně dělá lokalitu schůdnou, ne jen skóre! Při zkoumání důležitosti funkce modelu extrémního gradientního posilování dominoval jako nejdůležitější funkce počet restaurací v okruhu 1000 metrů. Dalšími důležitými rysy modelu byly hustota obyvatelstva v daném sčítacím obvodu, počet všech zařízení občanské vybavenosti, počet supermarketů v okruhu 1000 metrů a blízkost v metrech k nejbližší komerční zóně.
Závěr
Skóre chůze je již nyní užitečným nástrojem pro rozhodování o místě bydlení a výstavby nemovitostí na základě preferencí chůze, jízdy na kole a dopravy. Nyní je užitečné mít přehled o metodice Walk Score a o tom, jaké funkce vstupují do sestavování jejich algoritmů. Nyní známe vstupy, díky nimž je lokalita podle Walk Score vhodná pro chůzi.
Současný model je vycvičen v rámci města Seattle, kde jsou městské charakteristiky podobné. Existují další prvky, které by mohly být shromážděny za účelem zvýšení prediktivní síly Walk Score, jako jsou topografická měření a výpočty vzdálenosti nejbližší občanské vybavenosti. Predikce modelu lze snadno rozšířit i na další oblasti, protože rozhraní API Walk Score a základní zdroje dat pro generování funkcí (US Census, OSMnx, City Zoning, LocationIQ) jsou široce dostupné.
Kód
Kód tohoto projektu najdete na mém GitHubu
.