前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >逆向工程步行得分算法

逆向工程步行得分算法

作者头像
代码医生工作室
发布2019-06-22 14:20:43
1.1K0
发布2019-06-22 14:20:43
举报
文章被收录于专栏:相约机器人

作者 | Perry Johnson

来源 | Medium

编辑 | 代码医生团队

住在西雅图,最近搬到了另一个社区。根据Walk Score的专有算法,从第9个最适合步行的西雅图街区搬到了第30个街区。仍然可以轻松地走到当地的咖啡馆和理发店,但那就是它!可以说已经搬到了一个相当不那么适合步行的社区,但目前还不清楚如何量化其规模或者步行性得分。

之前使用Walk Score API作为预测电动滑板车位置聚类的数据源。Walk Score是一个网站,它使用专有算法和各种数据流获取地址并计算其步行性的度量,范围从0到100。

https://www.walkscore.com/professional/api.php

作为一个喜欢步行去寻找地方的人,对这些产生行走能力得分的专有算法的推动感到好奇。开始提出以下问题:

1.专有的Walk Score算法可以进行逆向工程吗?

2.建立步行性分数有哪些重要特征?

为了回答这些问题,通过收集各种精细的西雅图城市数据和Walk Score API数据来构建自定义数据集,以训练机器学习模型以预测行走能力得分。能够训练一个模型,该模型在测试集数据上达到了0.95 的R²。R平方解释了特征集的方差在多大程度上解释了步行得分的方差。

从本质上讲,能够对Walk Score方法进行逆向工程,并重新创建为其Walk Score提供支持的专有算法。位置步行能力最重要的特征是1000米范围内的餐馆数量,人口普查区内的人口密度,1000米范围内的超市数量,以及距离最近的商业区域的米数。

数据源和机器学习管道

反向工程的完整数据管道步行分数方法

数据

开始在大西雅图地区随机生成纬度和经度坐标。一旦获得了大约7800个独特地理位置的列表,就使用了Walk Score API,它为每个唯一的地理位置返回了一个步行性分数。然后开始收集反映位置周围区域的可行性的数据。

数据源:

  • OSMnx:Python包,允许您从OpenStreetMap的API下载空间几何,模型,项目,可视化和分析街道网络。

https://github.com/gboeing/osmnx

  • Walk Score API:返回任何位置的步行分数。

https://www.walkscore.com/professional/api.php

  • LocationIQ API:附近兴趣点(PoI)API返回指定坐标周围的指定PoI或位置。

https://locationiq.com/

  • 西雅图市分区:分区指定一类使用(例如,单户住宅,多户住宅,商业,工业等)

http://data-seattlecitygis.opendata.arcgis.com/datasets/862db70aaf974523b3bcae427f1f512d_5

  • 西雅图人口普查数据:提供人口普查区和地理标识区内人口普查区的面积和面积

https://www.seattle.gov/opcd/population-and-demographics/geographic-files-and-maps#2010census

  • 美国人口普查地理编码器API:对于给定的地理位置,API会返回人口普查区域和唯一的地理标识符。这对于正确合并分区和人口普查数据至关重要。

https://geocoding.geo.census.gov/

特色工程

由于LocationIQ API每日请求限制,将数据收集阶段延长了两周。这给我留下了~7800个独特的地理位置,然后设计了27个功能来训练机器学习模型,以预测整个西雅图的步行性。

全功能集

功能分为四类:

1.基于设施:公共汽车站,公园,餐馆,学校,指定半径范围内的总设施(大多数设施使用1000米半径)

2.人口普查得出:分区类别和人口密度

按地区分类划分的地理位置观测

3.基于距离:靠近最近的高速公路,最近的主要道路,最近的二级公路,最近的住宅道路,最近的工业区划

4.步行网络结构:交叉点数,平均电路数,街道长度平均值,每个节点的平均街道数

单个地理位置绘制在OSMnx库的顶部,用于生成步行网络结构功能

模型开发

训练了三种机器学习模型:随机森林回归,梯度增强回归和极端梯度增强回归。根据所收集的数据的三分之二训练了这些模型中的每一个,并保留了剩余的三分之一用于测试。

极限梯度增强模型预测(R²为0.95)步行得分与三分之一测试集

极端梯度增强回归在预测步行得分方面做得非常出色,在三分之一测试集(约2300个样本)上达到了0.95 的R²。该模型具有最佳性能的测试集精度(RMSE)。

黑盒子里有什么?

对Walk Score方法进行逆向工程的目的是为了理解算法中的关键特性。想知道什么才能真正使一个位置步行,而不仅仅是一个分数!通过检查极端梯度增强模型的特征重要性,1000米范围内的餐厅数量占据了最重要的特征。其他重要的模型特征是给定人口普查区的人口密度,总设施数,1000米范围内的超市数量,以及距离最近的商业区划的接近度。

1000米范围内的餐馆,超市和总设施数量,人口密度和商业区划的接近度是预测位置步行得分的最重要特征。

结论

Walk Score已经成为一个有用的决策工具,可以根据步行,骑自行车和交通偏好来居住和开发房地产。现在有助于了解Walk Score方法以及构建算法的哪些功能。现在知道根据步行分数使位置可以步行的输入。

目前的模型在西雅图城市范围内进行训练,城市特征相似。可以收集其他功能以增强步行分数的预测能力,例如地形测量和最近的舒适距离计算。模型预测可以很容易地扩展到其他领域,因为Walk Score API和用于生成特征的基础数据源(US Census,OSMnx,City Zoning,LocationIQ)可以广泛使用。

该项目的代码可以在我的GitHub上找到

https://github.com/perryrjohnson/Walk-Score

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 相约机器人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档