在回归模型中使用 gps 坐标的最佳方法是啥

Posted

技术标签:

【中文标题】在回归模型中使用 gps 坐标的最佳方法是啥【英文标题】:What's the best way of using gps coordinate in regression model在回归模型中使用 gps 坐标的最佳方法是什么 【发布时间】:2018-10-29 14:43:22 【问题描述】:

在我的数据集中,我有两列以十进制表示的纬度和经度,我想将数据拟合到回归模型以进行价格预测。我想知道我应该对这两列进行什么样的数据转换?是否可以仅将给定的十进制值拟合到模型或需要转换?

我尝试使用 python geopandas 将它们转换为分类变量,但我的训练和测试中不匹配的分类变量不允许我拟合模型。

【问题讨论】:

【参考方案1】:

您需要k-nearest neighbors (kNN) 算法,尤其是kNN regression。

Scikit-learn 有两个kNN regression 的实现:

KNeighborsRegressor - 找到一个点的 K-邻居 RadiusNeighborsRegressor - 在一个或多个点的给定半径内查找邻居

但值得注意的是使用haversine distance作为距离度量的重要性,它“根据经度和纬度确定球体上两点之间的大圆距离”,即使用地球的半径。

此外,python 和 scikit-learn 期望弧度超过度数(纬度/经度),因此必须首先转换您的值。

一个基本的例子如下:

from math import radians
from sklearn.neighbors import KNeighborsRegressor
from sklearn.model_selection import train_test_split

dat['Latitude'] = dat['Latitude'].apply(radians)
dat['Longitude'] = dat['Longitude'].apply(radians)

X = dat[['Latitude', 'Longitude']].values
y = dat['Price'].values

X_train, X_test, y_train, y_test \
  = train_test_split(X, y, test_size=0.25)

nbrs = KNeighborsRegressor(weights='distance', metric='haversine')

nbrs.fit(X_train, y_train)

y_pred = nbrs.predict(X_test)

【讨论】:

以上是关于在回归模型中使用 gps 坐标的最佳方法是啥的主要内容,如果未能解决你的问题,请参考以下文章

R语言—回归诊断

逻辑回归算法原理是啥?

统计学中SSR和SSE是英文全称是啥?

《统计学习方法》--逻辑斯谛回归模型

《统计学习方法》--逻辑斯谛回归模型

R语言survival包coxph函数构建cox回归模型ggrisk包ggrisk函数可视化Cox回归的风险评分图使用cutoff包基于最小p值法方法计算最佳截断值(基于LIRI基因数据集)