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

Python 如何找到数据集中所有点到第k个最近邻的距离,python,machine-learning,scikit-learn,distance,knn,Python,Machine Learning,Scikit Learn,Distance,Knn,我们有一个形状为(10000,1500)的矩阵X。 让我们取k=9。 我们要计算从X中的每个点到X中第9个最近点的距离 是否存在用于此任务的函数或Sklearn库 def k_nearest_distances(X, k){ return d } d应该是长度为10000的数组。当索引i处的每个值表示到k最近点的距离时,形式为X[i]确定,我使用下面的代码使用sklearn库最近邻找到解决方案 k = 9 # importing NearestNeighbors class from s

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

是否存在用于此任务的函数或Sklearn库

def k_nearest_distances(X, k){
return d
} 


d应该是长度为10000的数组。当索引
i
处的每个值表示到k最近点的距离时,形式为
X[i]

确定,我使用下面的代码使用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))]


我不知道,但你可以自己计算。获取您想要的距离度量,并使用其公式计算您想要的值。sklearn最近的邻居是否不满足您的要求?