Python内存错误 - Sklearn大输入数据?
我需要在sklearn中训练一个支持向量机(svm)分类器。我的特征向量的维度有好几万,而且这样的特征向量有几万条。不过,每个维度的值只能是0、1或-1。在每个特征向量中,只有大约100个维度的值不是0。有没有什么有效的方法可以把这些特征向量的信息传递给分类器呢?
1 个回答
2
我需要在sklearn中训练svm分类器。
你是指sklearn.svm.SVC
吗?对于高维稀疏数据和很多样本来说,LinearSVC
、LogisticRegression
、PassiveAggressiveClassifier
或者SGDClassifier
在训练时可能会更快,而且预测准确度也差不多。
特征向量的维度有好几万,并且有成千上万个这样的特征向量。不过,每个维度的值只能是0、1或-1。每个特征向量中只有大约100个维度是非零的。有没有什么有效的方法可以把特征向量的信息传递给分类器?
找一种方法,把你的数据加载为scipy.sparse
矩阵,这样就不会在内存中存储零值。可以看看特征提取的文档。根据你原始数据的表示方式,它会给你提供一些工具来实现这一点。