我正在抓取大约20万个网站,寻找小型企业网站上发布的特定类型的媒体。我有一个经过训练的LinearSVC模型,它可以预测网页上找到的链接是否包含我正在寻找的媒体类型,并且它的表现相当好(总体准确率约为95%)。然而,我希望抓取器能够在抓取过程中定期用新数据更新分类器。
所以我的问题是,如果我已经加载了一个经过pickle处理的sklearn LinearSVC模型,是否有办法在不重新训练整个模型的情况下添加新的训练数据?还是我必须加载所有之前的训练数据,添加新数据,然后训练一个全新的模型?
回答:
你不能向SVM添加数据并达到与将其添加到原始训练集中相同的效果。你可以从之前的解决方案开始,使用扩展的训练集重新训练(应该更快),或者仅在新数据上训练,完全偏离之前的解决方案。
只有少数模型可以实现你想要的功能——例如Ridge回归或线性判别分析(以及它们的核化版本——核Ridge回归或核Fischer判别,或“极端”对应物——ELM或EEM),这些模型具有能够“即时”添加新训练数据的特性。