在Python上的Sklearn KNN + mahalanobis

时间:2016-09-20 08:08:50

标签: scikit-learn knn mahalanobis

我尝试在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

请帮我解决这些问题,非常好!

0 个答案:

没有答案