如何在 scikit-learn 中继续训练 svm 和 knn?

Posted

技术标签:

【中文标题】如何在 scikit-learn 中继续训练 svm 和 knn?【英文标题】:How to continue training svm and knn in scikit-learn? 【发布时间】:2017-04-16 01:16:17 【问题描述】:

在训练之后,因为它花费了很多时间,有没有办法让我继续我的训练并在 scikitlearn 中使用 nusvc() 和nearestneighbor() 添加样本?

【问题讨论】:

您始终可以使用 pickle 或 sklearns tune model persistence functions 保存整个分类器。这允许您将整个对象加载回来。当然,您可以从给定的权重再次使用 warm_starting 进行训练。如果基础估计器尚未为此做好准备(添加新数据),则可能存在限制。一个可能的例子:您的新数据包含一个目标标签。这是有问题的。 如果班级数量相同,有没有更简单的方法可以用更少的时间重新训练它? 阅读this for a start。 【参考方案1】:

对于 SVM,您也许可以使用 SGDClassifier 类的 online learning 功能。为此,您需要使用partial_fit() 函数。

【讨论】:

最近邻()呢? 我在 scikit 文档(下面的链接)中没有看到该特定功能。 scikit KNN 方法似乎没有部分拟合。在所有数据上重新训练 KNN 需要多长时间? scikit-learn.org/stable/modules/… 我错了。 LSH KNN 类确实有部分拟合。我会阅读 scikit 关于此功能的文档,并根据您的数据对其进行测试,看看它是否适合您。 scikit-learn.org/stable/modules/generated/… 谢谢,但是先生,我首先要解决我的 kmeans() 中的内存错误,当我对代码字进行聚类时,我得到了内存错误....对于 k=10000,我有 6gb ram 但它运行在 k=1000。

以上是关于如何在 scikit-learn 中继续训练 svm 和 knn?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 scikit-learn 中的 TransformedTargetRegressor 管道中的经过训练的估计器访问属性?

如何在交叉验证中获得 Keras scikit-learn 包装器的训练和验证损失?

如何获取 Scikit-learn 的 svm 中的训练误差?

SciKit-Learn 随机森林子样本大小如何可能等于原始训练数据大小?

scikit-learn 中的分层训练/验证/测试拆分

如何将训练有素的 scikit-learn 模型导入 android 项目