python - 估价时如何选择区域划分?
问题描述
我正在开发一个 python 脚本,旨在使用回归模型预测房价(特别是我使用多项式回归)。我用于训练我的模型的功能是:
- 房间数
- 平方米
- 浴室数量
- 如果有露台
- 如果有阳台
- 纬度
- 经度
- 区
该区域是一个标称属性,具有大约 200 个值。这是一个重要的属性,因为房子的价格因区域而异,有一个区域更贵。我的问题是,我应该只使用纬度和经度,还是可以使用二进制转换的区域来获得良好的回归结果?
解决方案
在我看来,您可以从纬度/经度数据生成三种不同类型的特征:类别、聚类和距离。
类别:将每条记录转换为一个或多个类别。类别可以是国家、城市、兴趣点 (POI) 或不同的地理空间层。通常,这称为反向地理编码 (RGC) 或 POI 提取
打开街图。(免费、开源)对于 RGC:Nominatim API,请参阅 POI 和附加层的反向地理编码:Overpass API 商业 API Google Places API Foursquare API
集群:在某些情况下,您可能希望将地图上的点与其他点相关联。因此,您首先对点进行聚类,然后将聚类 ID 分配为特征集中的分类特征。一些方法:DBSCAN,一种基于邻近度/密度对点进行聚类并对异常值具有鲁棒性的聚类方法。
当您的集群彼此相对靠近但您希望将集群很好地分离,或者当您希望将软分配创建到集群中时,GMM 非常有用。Hierarchical Clustering (),它创建集群的树状图,并允许您调整决定集群数量的阈值。时空方法:在某些情况下,您还希望将时域合并到模型中(例如,当您想检测用户在某个地方的停留/访问但忽略他们在很短的时间内访问的地方时) .
您可以提取的第三种特征类型是距离:从一个点到下一个点的距离,到一个固定点(例如,原点)的距离,这一切都取决于您的上下文。首选距离公式是Haversine distance (),它计算距离,因为地球是一个球体而不是平面。
推荐阅读
- c++ - 我在这部分代码中遇到了这个错误,它有一个递归函数
- python - 如何有效地向从复杂字典创建的 Pandas DataFrame 添加维度
- android - 如何使用 Appium 滚动 Robot Framework 以在 Android 设备上测试应用程序
- javascript - 自定义油门单元测试
- angular - 如何设置离子内容滚动的开始 y 位置?
- java - 始终在顶部回收站视图上设置特定项目
- javascript - 以引导样式显示自定义验证错误
- javascript - 流类型 - GenericType 中缺少声明预期键/值类型的索引签名
- php - 尝试实现“喜欢”功能和“愿望清单”功能。两者都有 1 个中间表?
- google-app-engine - 无法从应用引擎连接到 postgres cloudsql