Python 什么';这是在回归模型中使用gps坐标的最佳方法

Python 什么';这是在回归模型中使用gps坐标的最佳方法,python,geolocation,latitude-longitude,transformation,geopandas,Python,Geolocation,Latitude Longitude,Transformation,Geopandas,在我的数据集中,我有两列以小数表示的纬度和经度,我想将数据拟合到一个回归模型中,用于价格预测。我想知道我应该在这两列上做什么样的数据转换?是否可以只将给定的十进制值拟合到模型中,或者需要进行转换 我尝试使用python geopandas将它们转换为分类变量,但我的训练和测试中不匹配的分类变量无法使我适应模型。您尤其需要(kNN)算法 Scikit learn有两种实现: -查找点的K近邻 -查找一个或多个点的给定半径内的邻居 但值得注意的是,使用半径作为其距离度量的重要性,该度量“确定给定

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

我尝试使用python geopandas将它们转换为分类变量,但我的训练和测试中不匹配的分类变量无法使我适应模型。

您尤其需要(kNN)算法

Scikit learn有两种实现:

  • -查找点的K近邻
  • -查找一个或多个点的给定半径内的邻居
但值得注意的是,使用半径作为其距离度量的重要性,该度量“确定给定经度和纬度的球体上两点之间的大圆距离”,即使用地球半径

此外,python和scikit学习期望弧度超过度(lat/lon),因此必须首先转换值

一个基本的例子如下:

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)