我正在使用 scikit 库来使用 svm。我有大量数据无法一起读取以提供fit()
功能。
我想对文件中的所有数据进行迭代并一一训练 svm。有没有办法做到这一点。文档并不清楚,在他们的教程中,他们fit
立即提供了完整的数据。
有没有办法一一训练它(手段可能类似于调用fit
训练数据的每个输入模式)。
问问题
2080 次
1 回答
15
支持向量机(至少在 scikit-learn 封装的 libsvm 中实现)本质上是一种批处理算法:它需要一次访问内存中的所有数据。因此它们不可扩展。
相反,您应该使用支持增量学习的模型partial_fit
。例如一些线性模型如sklearn.linear_model.SGDClassifier
支持partial_fit
方法。您可以对数据集进行切片并将其加载为具有 shape 的小批量序列(batch_size, n_features)
。batch_size
可以为 1 但效率不高,因为 Python 解释器开销(+ 数据加载开销)。因此,建议以至少 100 的 minitache 为单位引导样品。
于 2013-04-21T08:15:05.630 回答