Python内存错误 - Sklearn大输入数据?

1 投票
1 回答
2645 浏览
提问于 2025-04-17 17:32

我需要在sklearn中训练一个支持向量机(svm)分类器。我的特征向量的维度有好几万,而且这样的特征向量有几万条。不过,每个维度的值只能是0、1或-1。在每个特征向量中,只有大约100个维度的值不是0。有没有什么有效的方法可以把这些特征向量的信息传递给分类器呢?

1 个回答

2

我需要在sklearn中训练svm分类器。

你是指sklearn.svm.SVC吗?对于高维稀疏数据和很多样本来说,LinearSVCLogisticRegressionPassiveAggressiveClassifier或者SGDClassifier在训练时可能会更快,而且预测准确度也差不多。

特征向量的维度有好几万,并且有成千上万个这样的特征向量。不过,每个维度的值只能是0、1或-1。每个特征向量中只有大约100个维度是非零的。有没有什么有效的方法可以把特征向量的信息传递给分类器?

找一种方法,把你的数据加载为scipy.sparse矩阵,这样就不会在内存中存储零值。可以看看特征提取的文档。根据你原始数据的表示方式,它会给你提供一些工具来实现这一点。

撰写回答