scikit SGDClassifierpartial_fit 不会增量学习。返回“类应包含所有有效标签”

2024-01-04

我将两个数据流传递给 sgd_clf 分类器,如下面的代码所示。第一个partial_fit 正在获取第一个数据流x1,y1。第二个partial_fit 正在获取第二个数据流x2,y2。

下面的代码在第二个partial_fit步骤中给了我错误,即之前要包含的类标签。当我将 x2 y2 中的所有数据包含在 x1, y1 中时,此错误消失了。 (在现在调用第二个partial_fit之前包含我的班级标签)

但是,我无法事先给出 x2 y2 数据。如果我在第一个partial_fit()之前给出了所有数据,为什么我需要使用第二个partial_fit()?事实上,如果我之前知道所有数据,我不需要使用partial_fit(),我可以只做fit()。

from sklearn import neighbors, linear_model
import numpy as np

def train_new_data():

    sgd_clf = linear_model.SGDClassifier()

    x1 = [[8, 9], [20, 22]]
    y1 = [5, 6]

    classes = np.unique(y1)

    #print(classes)

    sgd_clf.partial_fit(x1,y1,classes=classes)

    x2 = [10, 12]
    y2 = 8


    sgd_clf.partial_fit([x2], [y2],classes=classes)#Error here!!

    return sgd_clf

if __name__ == "__main__":

    print(train_new_data().predict([[20,22]]))

Q1:我对sklearn分类器的partial_fit()的理解是否错误,它按照此处指定的方式动态获取数据:渐进学习 http://scikit-learn.org/stable/modules/scaling_strategies.html

Q2:我想用新数据重新训练模型/更新模型。我不想从头开始训练。 partial_fit 会帮我解决这个问题吗?

Q3:我不仅仅针对 SGDClassifier。我可以使用任何支持在线/批量学习的算法。我的主要目的是第三季度。我有一个经过数千张图像训练的模型。我不想仅仅因为我有一个/两个新的图像样本就从头开始重新训练这个模型。两者都没有兴趣为每个新条目创建一个新模型,然后将它们混合在一起。这降低了我在所有训练模型中进行搜索的预测性能。我只想借助partial_fit 将这个新数据实例添加到经过训练的模型中。这可行吗?

Q4:如果我无法使用 scikit 分类器实现 Q2,请指导我如何实现这一目标

非常感谢任何建议、想法或参考。


您需要事先知道您需要多少课程。第一次调用部分拟合后,算法假设您不会有任何新的classes稍后添加。

在您的示例中,您被添加到一个以前从未见过的新类 (y2 = 8) 中,并且在您对部分拟合的初始调用中未指示为存在(仅包含标签“5”和“6”)。您需要在第一次调用时将其添加到类对象中。

为了保持一致性,我还建议您从 0 开始对课程进行编号。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

scikit SGDClassifierpartial_fit 不会增量学习。返回“类应包含所有有效标签” 的相关文章

随机推荐

  • 如何使 React HOC - 高阶组件协同工作?

    我有一个像这样的小演示组件 function MyList data uppercaseMe lowercaseMe return ul data map item gt li item li ul
  • javafx canvas 几秒钟后停止显示(我正在尝试百万个椭圆)

    我试图每秒在画布上动态显示一百万个椭圆形 我使用线程作为渲染线程 但我的问题是 几秒钟后 画布冻结并停止显示 我猜缓冲区已满 无法再显示 但是如何清除缓冲区呢 测试源码如下 public class Main extends Applica
  • Cucumber:填写带双引号的字段

    我有一些 Rails 应用程序 一个带有字段的视图 可以说它叫做 some field 我想填写 SOME STRING WITH QUOTES 字段 我怎样才能在黄瓜中做到这一点 When I fill in some field wit
  • 如何使用 Yii2 kartik gridview 可编辑列与多个模型关系

    问题 我有 2 个模型 用户模型和用户配置文件模型 两者都与主键和外键 user id 相关 用户表有字段 id 用户名 密码 电子邮件等 user profile表包含id user id 公司 电话等 我在用户视图中创建了gridvie
  • 没有html的innerHTML,只有文本[重复]

    这个问题在这里已经有答案了 我创建了一个电子邮件链接 它会自动填充正文中的必要信息 但是 当我执行 innerHTML 时 我得到的比我预想的要多一些 我想要 2012 年 3 月 12 16 我得到什么 b March 2012 b fo
  • 有没有办法更改谷歌一键提示的语言?

    目前 谷歌一键提示仅以英文呈现 有没有一种方法可以将区域设置传递给 javascript api 以便以该特定语言呈现提示 抱歉这么晚才回复 但是我最近遇到了同样的问题 官方文档没有提供处理提示本地化的直接方法 我发现的最接近的想法是 li
  • 如何获取hive UDF中的taskID或mapperID(类似于Spark中的partitionID)?

    作为问题 如何在 hive UDF 中获取任务 ID 或映射器 ID 类似于 Spark 中的分区 ID 您可以使用 TaskContext 访问任务信息 import org apache spark TaskContext sc par
  • Facebook oauth 授权 URL 和参数选项

    Facebook 提供了一些关于参数的文档oauth login 登录对话框 OAuth 2 https developers facebook com docs reference dialogs oauth 参数为 client id
  • Java 6 中 IdentityHashMap 的实际使用[重复]

    这个问题在这里已经有答案了 可能的重复 IdentityHashMap 的用例 https stackoverflow com questions 838528 use cases for identityhashmap Java 5 中引
  • Android ActionBarSherlock 顶部图标返回

    我正在尝试制作顶部操作栏图标以允许用户返回到上一个屏幕 我试图实现这些代码 但没有一个起作用 任何人都可以指导我吗 我知道这看起来很简单 我是 android 新手 下面是我的代码 问题 当我点击图标按钮时 它只是清除了我的屏幕 而没有转到
  • com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List;'

    错误 无法找到方法 com android build gradle api BaseVariant getOutputs Ljava util List 导致此意外错误的可能原因包括 Gradle 的依赖项缓存可能已损坏 这有时会在网络连
  • 如何确定 ColdFusion 应用程序使用哪些文件?

    我正在开始对现有的 ColdFusion 应用程序进行一些工作 该应用程序没有版本控制 并且看起来像是未使用的 cfm 文件 test cfm test2 cfm 等 我想了解哪些文件实际上是应用程序的一部分 这样我就可以将其以可管理的状态
  • VBScript 环境变量

    我有一个关于应该如何修复运行脚本时看到的错误的问题 我很确定这与我使用 COMPUTERNAME 环境变量的方式有关 我的脚本的作用是在本地压缩一些文件 然后使用 robocopy 将它们复制到已安装或共享的驱动器 然后检查文件大小是否相同
  • 将新记录添加到 GridView 但不应更新数据库

    我有一个绑定到数据视图的网格视图 OnPageLoad 我正在填充网格视图记录 我有一个文本框和一个按钮 所以现在我想向 GridView 添加更多记录 但这些记录不应添加到数据库中 它们只是添加到页面中 当然来自数据库的默认记录也会保留
  • Python 中的就地函数

    Python中有一个就地函数的概念 例如shuffle就位 因为它返回None 如何确定函数是否就位 from random import shuffle print type shuffle
  • Javascript 中的函数是对象还是类型?

    In his 雄辩的 JavaScript Haverbeke 声称 第 16 页 在 JavaScript 系统中 大部分数据被整齐地分成称为值的东西 每个值都有一个类型 它决定了它可以扮演的角色 值有六种基本类型 数字 字符串 布尔值
  • Herkou Redis - 证书验证失败(证书链中的自签名证书)

    我在我的一个业余项目中使用 heroku redis 一段时间了 我目前用它来做三件事 它是我存储 firebase 证书的地方 它用于缓存站点上的数据 它用于 Rails sidekiq 作业 最近 我的 heroku 使用量增加了 我不
  • 自动释放池中的快速闭包访问没有 self 的方法

    这是示例代码 func anyMethod Nothing here var myVariable autoreleasepool anyMethod This should show error print myVariable This
  • 异步网络接口状态检查

    在 Mac OS X 上 有没有办法在网络接口 en0 en1 状态发生变化 例如网络接口处于活动状态 非活动状态等 时获取异步通知 我想知道是否有一种方法可以获取异步通知 而不是轮询状态 以便每当有更改时 都会触发通知并且应用程序可以处理
  • scikit SGDClassifierpartial_fit 不会增量学习。返回“类应包含所有有效标签”

    我将两个数据流传递给 sgd clf 分类器 如下面的代码所示 第一个partial fit 正在获取第一个数据流x1 y1 第二个partial fit 正在获取第二个数据流x2 y2 下面的代码在第二个partial fit步骤中给了我