我有一个 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())
任何有关此问题的稀疏矩阵距离计算实现或解决方法的指针都将不胜感激。
非常感谢
In scikit-learn
有一个sklearn.metrics.euclidean_distances
适用于稀疏矩阵和密集 numpy 数组的函数。请参阅参考文档.
然而,稀疏矩阵尚未实现非欧几里德距离。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)