python-tsne减少内存消耗

python-tsne减少内存消耗,python,scikit-learn,tf-idf,sklearn-pandas,Python,Scikit Learn,Tf Idf,Sklearn Pandas,我有一个非常大的csv文件,我正试图用它进行tf idf分析。我正在使用sklearn的tfidvectorizer,然后我想使用tsne降低维度,以便绘制结果。但是,每当我使用tsne时,就会出现内存错误。有什么方法可以防止这种情况发生吗?我了解到,在实现tsne之前,您可以使用svdTruncate。我将如何着手做这件事(或有任何其他建议)?这是我的密码: tfidf_vectorizer = TfidfVectorizer(max_df=0.95, min_df=2,max_feature

我有一个非常大的csv文件,我正试图用它进行tf idf分析。我正在使用sklearn的tfidvectorizer,然后我想使用tsne降低维度,以便绘制结果。但是,每当我使用tsne时,就会出现内存错误。有什么方法可以防止这种情况发生吗?我了解到,在实现tsne之前,您可以使用svdTruncate。我将如何着手做这件事(或有任何其他建议)?这是我的密码:

tfidf_vectorizer = TfidfVectorizer(max_df=0.95, min_df=2,max_features=n_features,stop_words='english', lowercase = False)

tfidf = tfidf_vectorizer.fit_transform(df['paper_text'])
nmf = NMF(n_components=n_topics, random_state=0,alpha=.1, l1_ratio=.5).fit(tfidf)
nmf_embedding = nmf.transform(tfidf)
nmf_embedding = (nmf_embedding - nmf_embedding.mean(axis=0))/nmf_embedding.std(axis=0)
tsne = TSNE(random_state=3211)
tsne_embedding = tsne.fit_transform(nmf_embedding)
tsne_embedding = pd.DataFrame(tsne_embedding,columns=['x','y'])
tsne_embedding['hue'] = nmf_embedding.argmax(axis=1)

提前谢谢

如果您的功能数量较多,则可以在TSNE之前应用PCA(~25)。如果您的功能数量较多,则可以在TSNE之前应用PCA(~25)。