我尝试在 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
请帮我解决这些问题,谢谢!