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
これらの質問を解決するのを手伝ってください。