是否可以在大型稀疏矩阵上使用scikit TSNE?

时间:2017-09-26 13:04:05

标签: python scikit-learn sparse-matrix dimensionality-reduction

scikit documentation解释fit_transform只能用于密集矩阵,但我有一个csr格式的稀疏矩阵,我想执行tsne。文档说使用fit方法用于稀疏矩阵,但这不会返回低维嵌入。

我感谢我可以使用this question中的.todense()方法,但我的数据集非常大(0.4 * 10 ^ 6行和0.5 * 10 ^ 4列),因此不适合内存。真的,使用稀疏矩阵来做这件事会很好。有没有办法使用scikit TSNE(或TSNE的任何其他python实现)来减少大型稀疏矩阵的维数并返回低维嵌入然后可视化?

1 个答案:

答案 0 :(得分:1)

从相同的文档:

  

如果特征的数量非常高,强烈建议使用另一维度降低方法(例如,用于密集数据的PCA或用于稀疏数据的TruncatedSVD)将维度的数量减少到合理的量(例如50)。这将抑制一些噪声并加速样本之间成对距离的计算。

改为使用sklearn.decomposition.TruncatedSVD