首页 > 解决方案 > 为每个目标位置寻找最近的邻居

问题描述

我有一个三维数据。前两列是 X 和 Y,它们是二维笛卡尔坐标系中的 X、Y 坐标。第三列 Z 是每个 X、Y 位置的高度值。我正在尝试使用 SciKit Learn 的 KNeighborsRegressor 函数根据其周围 50 个最近邻居的平均值来查找每个 X、Y 位置的回归值。我需要输出正在平均的 50 个 X、Y 位置。在下图中,绿色是目标位置,红色表示最近的邻居。我需要每个位置的邻居的 X,Y 坐标。

k 最近邻

这是我必须给我预测值的代码,但如上所述,我需要知道每个预测值使用了 50 个 X、Y 位置。

knn_z = KNeighborsRegressor(n_neighbors=50)
x_columns = ['X','Y']
y_column = ['Z']
knn_z.fit(df[x_columns],df[y_column])
df['NN_Z'] = knn_z.predict(df[x_columns])

我将不胜感激任何指导。

标签: pythonscikit-learnknn

解决方案


您可以使用 KNeighborsRegressor 类中的函数 kneighbors 例如:

knn_z.kneighbors(df[x_columns]),50,True)

您可以在此处阅读有关该功能的更多信息


推荐阅读