用新数据更新 SVM 分类器

Posted

技术标签:

【中文标题】用新数据更新 SVM 分类器【英文标题】:Update SVM classifier with new data 【发布时间】:2014-03-22 02:49:31 【问题描述】:

我使用 Python 训练了一个 SVM 分类器

clf = sklearn.svm.NuSVC(nu=0.05, probability=True, kernel='rbf')
clf.fit(points, classes)

这非常适合预测。 现在我想更新分类器参数。 很少有点改变分类(从正数到零),并且添加了一些。少数意味着 10000 中的 50 或更多。

我认为提示 SVM 分类器从之前的参数开始是明智的,这应该非常接近最佳解决方案。我有一个问题,有时分类器随机很差(我想拟合失败)。 在 scikit-learn 或 libsvm 中有没有办法做到这一点?

【问题讨论】:

这似乎相关但没有解决方案:stats.stackexchange.com/questions/30834/… 【参考方案1】:

NuSVC 不提供增量/在线学习。要在 scikit-learn 中做到这一点,您需要 SGDClassifier。这适合线性模型,但您可以使用 kernel_approximations 模块获得 RBF 内核的近似值(另请参阅 its author's blog)。

如果您想要真正的在线内核学习者,请查看LASVM。

【讨论】:

以上是关于用新数据更新 SVM 分类器的主要内容,如果未能解决你的问题,请参考以下文章

Keras CIFAR-10分类 SVM 分类器篇

在 OpencV 中训练 SVM 分类器?

如何在斯坦福分类器中使用朴素贝叶斯分类器、SVM 和最大熵

如何进行交叉验证 SVM 分类器

图像识别之初探SVM分类器

基于SVM的分类器Python实现