我正在使用 scikit 库来使用 svm。我有大量数据无法一起阅读以提供 fit()
function .
我想遍历文件中的所有数据并一个一个地训练 svm。有什么办法可以做到这一点。文档并不清楚,在他们的教程中,他们立即为 fit
提供了完整的数据。
有什么方法可以一个一个地训练它(意味着可能类似于为训练数据的每个输入模式调用 fit
)。
最佳答案
支持向量机(至少在 libsvm 中实现,scikit-learn 是其包装器)从根本上说是一种批处理算法:它需要一次访问内存中的所有数据。因此它们不可扩展。
相反,您应该使用通过 partial_fit
方法支持增量学习的模型。例如,sklearn.linear_model.SGDClassifier
等一些线性模型支持 partial_fit
方法。您可以对数据集进行切片并将其加载为形状为 (batch_size, n_features)
的小批量序列。 batch_size
可以是 1 但效率不高,因为 python 解释器开销(+ 数据加载开销)。因此建议以至少 100 的分钟数引导 sample 。
关于python - 一一训练scikit svm(在线或随机训练),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16128834/