根据与一组经度点的最小距离分配聚类



我有一个数据帧(df1),如下所示:

clust   longitude   latitude
1   77.62279999 12.95248389
1   77.62517676 12.95027966
2   77.62753442 12.93745478
2   77.62753442 12.93745478
3   77.62217671 12.93353553
3   77.62217671 12.93353553

我有一个带有经度/纬度(df2)集的数据帧。我想遍历所有这些点,并为每个点迭代 df1 的所有点,并根据最小距离分配聚类值。

我可以为循环和计算距离做一个,但是如何为集群分配最小距离。循环是解决此类问题的最佳方法,还是可以有更好的方法,如knn或Kd树?

这称为最近邻分类

对于测试集的每个点,在训练数据中找到最近的邻居并预测 is 标签。

如果有很多训练日,请使用索引。K-d树可能不支持Haversine距离,因此覆盖树或R*树可能是更好的选择。

好的。这对我有用:

X = np.array(filtered1[['latitude','longitude']])
y = np.array(filtered1['clust'])
from sklearn.neighbors import KNeighborsClassifier
neigh = KNeighborsClassifier(n_neighbors=10)
neigh.fit(X, y) 
rest_x=np.array(rest1[['Latitude','Longitude']])
rest_y=neigh.predict(rest_x)

最新更新