3 分•作者: ivorius•3 个月前
这个项目源于我想和我的伴侣一起找到一个宜居的地方。我白天是一名数据科学家,所以我想系统地处理这个问题。当我把它展示给我的朋友们时,很多人说他们也想试试,于是我把它做成了一个应用程序并上线了。(-> MIT 许可) 这个应用程序是德语的,但支持翻译 :) 它不提供单一的“最佳地点”排名,而是根据用户对十几个生活质量指标的偏好,对德国约 0.5 平方公里的六边形区域进行评分,这些指标包括租金、通勤时间、休闲潜力、噪音水平等等。用户偏好通过颜色渐变和悬停图块在地图上实时反映出来。 过程中的一些想法/挑战: 思维框架:我带着“市场会自我调节”的假设来处理这个项目,即“只要有足够的维度,就没有一个地方本质上比另一个地方更好”。我很快发现,大部分的租金都可以解释为对工作地点和人口密集度的资源博弈,而不是研究中常被认为能带来更幸福生活的、更难以捉摸的因素,例如低压力信号。该应用程序现在有一个“默认组合”,包含当前被低估的生活质量因素,但也可以禁用此功能,仅根据用户偏好来区分不同地点。 寻找优质数据:仅仅找到 80% 正确的数据是不够的,因为它可能会严重歪曲一个地方的情况,导致用户立即不再信任该网站。我收集了来自各种公共来源的数据,包括德国各州部门、OpenStreetMap 和 WorldCover。然后,在数据上进行一些 Python 后处理,最后在客户端根据用户偏好进行聚合。我现在对此相当有信心,但误报和误解仍然是最有可能受到批评的地方。 拒绝数据:我探索并最终拒绝了许多数据,例如犯罪统计、用户评分、事故统计、空气质量、氂(氂)测量(等等……)。大多数拒绝是因为缺乏科学证据证明其相关性。软件中最明显的遗漏可能是“居民对这个地方的评价如何”和“我在这里会感到安全吗”这两个维度。 使其足够快:大约有 50 万个六边形区域,所以我需要设计出在我的笔记本电脑上计算不到一天,在前端聚合不到一秒的模型。一些解决方案包括 GPU 渲染、可达性的 mx+b 式近似、通过人口高峰发现的热点进行数据聚合、以及积极的缓存和针对公共交通的空间局部窗口等等。我惊叹于如今计算机的速度之快,使得这一切成为可能! 您可以在方法页面(https://wohnortatlas.de/method.html)上阅读更多关于这些维度(layers)的信息,或者如果您真的很好奇,可以在 GitHub 上查看源代码(https://github.com/Ivorforce/wohnortatlas)。 祝您探索愉快!我非常渴望得到一些反馈。