1

scikit documentation解釋fit_transform只能用於密集矩陣,但我有一個csr格式的稀疏矩陣,我想執行tsne。該文檔說爲使用稀疏矩陣使用fit方法,但是這不會返回低維嵌入。是否可以在大型稀疏矩陣上使用scikit TSNE?

我明白我可以使用.todense()方法如this question,但我的數據集非常大(0.4 * 10^6行和0.5 * 10^4列),從而不會配合在存儲器中。真的,使用稀疏矩陣來做這個很好。有沒有辦法使用scikit TSNE(或TSNE的任何其他python實現)來減少大型稀疏矩陣的維數並返回低維嵌入然後可視化?

回答

1

從該相同文檔:

強烈建議使用另一種降維的方法(例如PCA爲密集數據或TruncatedSVD對於稀疏數據),以維數降低到一個合理的量(例如50 )如果功能的數量非常高。這將抑制一些噪聲並加速樣本之間成對距離的計算。

改爲使用sklearn.decomposition.TruncatedSVD

+0

根據我對TSNE的理解,它可以在任何維度上使用,並且根據我的數據結構,我覺得TSNE比其他大多數降維算法更好。我想這是scikit的限制。感謝您的鏈接! – killerT2333