如何找到数据集中所有点到第k个最近邻居的距离

让我们有一个形状为(10000,1500)的矩阵X。 让我们取k = 9。 我们想要找到从X中的每个点到X中的第9个最近点的距离。

此任务是否存在任何功能或Sklearn库。

def k_nearest_distances(X,k){
return d
} 

d应该是长度为10000的数组。其中索引i上的每个值代表距k最近点形式X[i]的距离。

lqlqtotti 回答:如何找到数据集中所有点到第k个最近邻居的距离

好的,我发现使用下面的代码使用sklearn库距离最近的邻居

k = 9
# importing NearestNeighbors class 
from sklearn.neighbors import NearestNeighbors
# initialize model
neigh = NearestNeighbors(n_neighbors=k,n_jobs=-1)
# train for getting nearest neighbour
neigh.fit(X)
dist,ind = neigh.kneighbors(X)
# We have no use of indices here
# dist is a 2 dimensional array of shape (10000,9) in which each row is list of length 9. This row contain distances to all 9 nearest points. But we need distance to only 9th nearest point. So
distances = [dist[i][k - 1] for i in range(len(dist))]

本文链接:https://www.f2er.com/3019448.html

大家都在问