在大型稀疏矩阵上执行SVD特征分解

时间:2017-04-12 12:12:06

标签: scikit-learn nlp sparse-matrix svd lsa

我用文本数据保存了我的特征,其中pickle采用稀疏矩阵格式,形状为(323549,4119259)。我正在尝试使用sklearn库对它们执行奇异值分解,但是,我不断收到内存错误,这表明我的计算机不够强大,无法执行功能缩减。有更有效的方法吗?这是我使用的代码。

import numpy as np
from sklearn.decomposition import TruncatedSVD
import pickle


with open('vectors.pickle') as f:  # Python 3: open(..., 'wb')
    matrix = pickle.load(f) #Loads the TF-IDF Vectors



print('LSAING . . .')
lsa = TruncatedSVD(n_components=300, n_iter=10) #Perform the Feature Reduction
lsa.fit(matrix)

matrix_T = lsa.fit_transform(matrix)

print('Dumping')
with open('lsa.pickle', 'w') as f:
    pickle.dump(lsa, f) #Dumps the new features

我正在使用带有8GB RAM的i7-5500处理器。

0 个答案:

没有答案