0

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

请帮我解决这些问题,谢谢!

4

0 回答 0