[英]How to update an SVM model with new data
我有两个不同大小的数据集。
1)数据集1具有高维度4500个样本(草图)。
2)数据集2具有低维1000个样本(实际数据)。 我想“两个数据集具有相同的分布”
我想在第一个数据集上使用sklearn
训练非线性SVM
模型(作为预训练),之后我想在第二个数据集的一部分上更新模型(以适应模型)。 如何在sklearn上开发一种更新。 如何更新SVM模型?
在sklearn中,您只能为线性内核和使用SGDClassifier
执行此SGDClassifier
(适当选择损失/惩罚条款,损失应为铰链,惩罚L2)。 通过partial_fit
方法支持增量学习,并且SVC
和LinearSVC
都没有实现。
不幸的是,在实践中,对于这样的小数据集以增量方式拟合SVM是相当无用的。 SVM具有易于获得的全局解决方案 ,因此您不需要预先训练任何形式 ,事实上,如果您正在考虑在神经网络意义上进行预训练,那么它应该无关紧要 。 如果正确实现,SVM应该完全忘记以前的数据集。 为什么不一次学习整个数据呢? 这就是SVM应该做的事情。 除非您正在使用SVM的一些非凸修改(然后预训练才有意义)。
总结一下:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.