次のようにロードするsvmlight形式の大きな(100K x 30K)および(非常に)まばらなデータセットがあります。
import numpy as np
from scipy.cluster.vq import kmeans2
from scipy.spatial.distance import pdist, squareform
from sklearn.datasets import load_svmlight_file
X,Y = load_svmlight_file("somefile_svm.txt")
スパース scipy 配列 X を返します
すべてのトレーニング ポイントのペアごとの距離を次のように計算するだけです。
D = pdist(X)
残念ながら、scipy.spatial.distance の距離計算の実装は、密行列に対してのみ機能します。データセットのサイズが原因で、たとえば pdist を次のように使用することは実行不可能です。
D = pdist(X.todense())
この問題に関する疎行列距離計算の実装または回避策へのポインターは大歓迎です。
どうもありがとう