【发布时间】:2017-07-21 08:58:47
【问题描述】:
我正在尝试在具有预先计算的距离值的非常稀疏的矩阵上显示 tsne,但我遇到了问题。
归结为:
row = np.array([0, 2, 2, 0, 1, 2])
col = np.array([0, 0, 1, 2, 2, 2])
distances = np.array([.1, .2, .3, .4, .5, .6])
X = csc_matrix((distances, (row, col)), shape=(3, 3))
Y = TSNE(metric='precomputed').fit_transform(X)
但是,我收到此错误:
TypeError:传递了稀疏矩阵,但需要密集数据 方法="barnes_hut"。使用 X.toarray() 转换为密集的 numpy 数组 如果数组足够小以适合内存。否则 考虑降维技术(例如,TruncatedSVD)
我不想执行 TruncatedSVD,因为我已经计算了距离。
如果我更改method='exact',我会收到另一个错误(这有点可疑):
NotImplementedError:>= 和
注意:我的距离矩阵约为 100k x 100k,大约有 1M 个非零值。
有什么想法吗?
【问题讨论】:
标签: python scikit-learn sparse-matrix dimensionality-reduction