根据http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html,我读到了:
"拟合时间复杂度超过二次方与样本数量,这使得难以扩展到具有超过10000个样本的数据集。"
我目前有350,000个样本和4,500个课程,这个数字将进一步增加到1-2百万个样本和10k +课程。
我的问题是我的内存不足。当我只使用少于1000个类的200,000个样本时,一切正常。
有没有办法内置或使用带有SVM的微型计算机?我看到存在MiniBatchKMeans,但我不认为它适用于SVM?
欢迎任何欢迎!
答案 0 :(得分:1)
您可以将大型数据集拆分为可由SVM算法安全使用的批次,然后分别查找每个批次的支持向量,然后在数据集上构建生成的SVM模型,该数据集包含所有支持向量中的所有支持向量批次。
此外,如果在您的情况下不需要使用内核,那么您可以使用sklearn的SGDClassifier,它实现随机梯度下降。它默认适合线性SVM。