python - 一一训练scikit svm(在线或随机训练)

标签 python machine-learning svm scikit-learn

我正在使用 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/

相关文章:

python - dateutil.rrule.rrule.between() 只给出现在之后的日期

python - 使用 Pandas 计算 CSV 行中的分隔符

python - 在 Python 中使用多线程迭代字典

c++ - 输入的机器学习数据结构最佳实践

r - 在R中使用SVM实现多类分类

python - "None"尝试在 Python 中返回 dict 的值时给出

python - Sci-Kit 机器学习程序的结果代表什么?

machine-learning - Caffe 中的多标签回归

matlab - 我的混淆矩阵的实现正确吗?或者这里还有其他问题吗?

c++ - 使用 cpp 程序中的 svm-train.c 和 svm-predict.c