我尝试在Sklearn上使用NearestNeighbors函数。我写了一个例子来了解这些功能发生了什么。
from sklearn.neighbors import NearestNeighbors
samples = [[0.2, 0], [0.5, 0.1], [0.4,0.4]]
neigh = NearestNeighbors(n_neighbors=2,metric='mahalanobis')
neigh.fit(samples)
print(neigh.kneighbors([[272,7522752]])) # use any point to test
以上代码运行良好,它可以正确计算2 - 最近点。 但是当我尝试使用我的数据集时,会发生一些错误。数据集矩阵为9959 * 384矩阵。我打印下面的矩阵,并声明矩阵training_data
[[ 0.069915 0.020142 0.070054 ..., 0.333937 0.477351 0.055993]
[ 0.131826 0.038203 0.131573 ..., 0.353589 0.426197 0.048557]
[ 0.130338 0.02595 0.130351 ..., 0.315951 0.32355 0.098884]
...,
[ 0.053331 0.023395 0.0534 ..., 0.366064 0.404756 0.066217]
[ 0.063554 0.021197 0.063671 ..., 0.235945 0.439595 0.105366]
[ 0.123632 0.045492 0.12322 ..., 0.308702 0.437344 0.040144]]
当我在上面的代码中使用training_data时,它只是将样本更改为training_data,但它有一个错误。
LinAlgError: 0-dimensional array given. Array must be at least two- dimensional
请帮我解决这些问题,非常好!