一个接一个地训练scikit svm(在线或随机训练)

时间:2013-04-21 07:15:59

标签: python machine-learning svm scikit-learn

我正在使用scikit库来使用svm。我有大量的数据,我不能一起阅读fit() function 我想对文件中的所有数据进行迭代,并逐个训练svm。有没有办法做到这一点。文档并不清楚,在他们的教程中,他们会立即向fit提供完整的数据 有没有办法逐一训练它(可能就像为训练数据的每个输入模式调用fit一样)。

1 个答案:

答案 0 :(得分:14)

支持向量机(至少在libsvm中实现,其中scikit-learn是包装器)基本上是一种批处理算法:它需要一次访问内存中的所有数据。因此,它们不具备可扩展性。

相反,您应该使用支持partial_fit方法的增量学习的模型。例如,某些线性模型(如sklearn.linear_model.SGDClassifier)支持partial_fit方法。您可以对数据集进行切片并将其作为一系列形状为(batch_size, n_features)的小批量加载。 batch_size可以是1,但效率不高,因为python解释器开销(+数据负载开销)。因此,建议至少100名小型医生领导样本。