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