我正在使用scikit库来使用svm。我有大量的数据,我不能一起阅读fit()
function
我想对文件中的所有数据进行迭代,并逐个训练svm。有没有办法做到这一点。文档并不清楚,在他们的教程中,他们会立即向fit
提供完整的数据
有没有办法逐一训练它(可能就像为训练数据的每个输入模式调用fit
一样)。
答案 0 :(得分:14)
支持向量机(至少在libsvm中实现,其中scikit-learn是包装器)基本上是一种批处理算法:它需要一次访问内存中的所有数据。因此,它们不具备可扩展性。
相反,您应该使用支持partial_fit
方法的增量学习的模型。例如,某些线性模型(如sklearn.linear_model.SGDClassifier
)支持partial_fit
方法。您可以对数据集进行切片并将其作为一系列形状为(batch_size, n_features)
的小批量加载。 batch_size
可以是1,但效率不高,因为python解释器开销(+数据负载开销)。因此,建议至少100名小型医生领导样本。