我使用
在Python中训练了一个SVM分类器clf = sklearn.svm.NuSVC(nu=0.05, probability=True, kernel='rbf')
clf.fit(points, classes)
这对预测非常有用。 现在我想更新分类器参数。 几点不会改变分类(从正数到零),还会添加一些分数。少数意味着10000或更多的50。
我认为提示SVM分类器从先前的参数开始是明智的,这应该非常接近最佳解决方案。我有一个问题,有时,分类器随机非常差(我认为拟合失败)。 有没有办法在scikit-learn或libsvm中这样做?
答案 0 :(得分:5)
NuSVC
不提供增量/在线学习。要在scikit-learn中执行此操作,您需要SGDClassifier
。这符合线性模型,但您可以使用kernel_approximations
模块获得RBF内核的近似值(另请参阅its author's blog)。
如果您想要一个真正的在线内核学习者,请查看LASVM。
答案 1 :(得分:0)
似乎sklearn.linear_model.SGDClassifier
partial_fit
方法可以通过随机梯度下降实现在线学习效果。但内核必须是线性的。据我所知,scikit或libsvm不支持使用rbf内核进行在线学习。