使用python sklearn增量训练随机森林模型

2024-04-20

我使用下面的代码来保存随机森林模型。我正在使用 cPickle 保存训练后的模型。当我看到新数据时,我可以增量训练模型吗? 目前,训练集大约有2年的数据。有没有办法再训练两年并将其(某种程度上)附加到现有保存的模型中。

rf =  RandomForestRegressor(n_estimators=100)
print ("Trying to fit the Random Forest model --> ")
if os.path.exists('rf.pkl'):
    print ("Trained model already pickled -- >")
    with open('rf.pkl', 'rb') as f:
        rf = cPickle.load(f)
else:
    df_x_train = x_train[col_feature]
    rf.fit(df_x_train,y_train)
    print ("Training for the model done ")
    with open('rf.pkl', 'wb') as f:
        cPickle.dump(rf, f)
df_x_test = x_test[col_feature]
pred = rf.predict(df_x_test)

编辑 1:我没有计算能力来一次性使用 4 年的数据训练模型。


你所说的,用额外的数据增量更新模型,在 sklearn 中讨论过用户指南 https://scikit-learn.org/stable/modules/computing.html#strategies-to-scale-computationally-bigger-data:

尽管并非所有算法都可以增量学习(即无需 一次看到所有实例),所有估计器都实现了 partial_fit API 是候选者。其实,学习能力 从小批量实例中逐步增量(有时称为“在线 学习”)是核心外学习的关键,因为它保证在任何时候 在给定的时间内,主程序中只会出现少量实例 记忆。

它们包括实现分类器和回归器的列表partial_fit(),但 RandomForest 并不在其中。您还可以确认 RFRegressor 没有实现部分拟合在 RandomForestRegressor 的文档页面上 http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestRegressor.html.

一些可能的前进方向:

  • 使用确实实现的回归器partial_fit(),例如 SGDRegressor
  • 检查您的随机森林模型feature_importances_属性,然后在删除不重要的特征后,使用 3 或 4 年的数据重新训练模型
  • 如果只能使用两年的数据,则仅使用最近两年的数据训练模型
  • 使用从所有四年的数据中抽取的随机子集来训练您的模型。
  • 改变tree_depth参数来限制模型的复杂程度。这节省了计算时间,因此可以让您使用所有数据。它还可以防止过度拟合。使用交叉验证为您的问题选择最佳的树深度超参数
  • 设置 RF 模型的参数n_jobs=-1如果您还没有在您的计算机上使用多个核心/处理器。
  • 使用更快的基于集成树的算法,例如 xgboost
  • 在云中的大型机器(例如 AWS 或 dominodatalab)上运行模型拟合代码
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用python sklearn增量训练随机森林模型 的相关文章

  • 如何在Python中选择要写入(.csv)的列

    import csv f csv reader open lmt csv r open input file for reading Date Open Hihh mLow Close Volume zip f s plit it into
  • ca 证书 Mac OS X

    我需要在emacs 上安装offlineimap 和mu4e 问题是配置 当我运行 Offlineimap 时 我得到 OfflineIMAP 6 5 5 Licensed under the GNU GPL v2 v2 or any la
  • Python GTK + webkit - 在 gtk.main() 之后插入 JavaScript

    我在终端中尝试了这个 一切正常 但是如果我在脚本内运行这个 我无法在 gtk main 之后插入 JavaScript import gtk import webkit w gtk Window b webkit WebView w add
  • 正则表达式,选择最接近的匹配

    假设以下单词序列 BLA text text text text text text BLA text text text text LOOK text text text BLA text text BLA 我想做的是将 BLA 中的文本
  • matplotlib 中的 R 风格数据轴缓冲区

    R 绘图自动设置 x 和 y 限制 以在数据和轴之间留出一些空间 我想知道 matplotlib 是否有办法自动执行相同的操作 如果没有 是否有一个好的公式或 经验法则 来说明 R 如何设置其轴限制 在 matplotlib 中 您可以通过
  • 使用 pandas 将字符串对象转换为 int/float

    import pandas as pd path1 home supertramp Desktop 100 life 180 data csv mydf pd read csv path1 numcigar Never 0 1 5 Ciga
  • 使用多级解决方案计算二维网格中的最近邻

    我有一个问题 在 x y 大小的网格中 我提供了一个点 并且我需要找到最近的邻居 在实践中 我试图在 pygame 中找到距离光标最近的点 该点跨越颜色距离阈值 计算如下 sqrt rgb1 0 rgb2 0 2 rgb1 1 rgb2 1
  • 如何将类添加到 LinkML 中的 SchemaDefinition?

    中的图表https linkml io linkml model docs SchemaDefinition https linkml io linkml model docs SchemaDefinition and https link
  • Pandas:将 pytz.FixedOffset 应用于系列

    我有一个带有timestamp列看起来像这样 0 2020 01 26 05 00 00 08 00 1 2020 01 26 06 00 00 08 00 Name timestamp dtype datetime64 ns pytz F
  • pandas 中连续数据的平行坐标图

    pandas 的 parallel coordinates 函数非常有用 import pandas import matplotlib pyplot as plt from pandas tools plotting import par
  • PyArmor - 打包为一个可执行文件

    当我执行此命令时 您好 使用 PyArmor pyarmor pack main py 它将它打包到一个名为的文件夹中dist里面包含我的 exe 以及许多 Python 扩展文件 据我所知 PyArmor 使用 PyInstaller 来
  • 用于多个窗口的 Tkinter 示例代码,为什么按钮无法正确加载?

    我正在编写一个程序 应该 按一下按钮即可打开一个窗口 按另一个按钮关闭新打开的窗口 我使用类 以便稍后可以将代码插入到更大的程序中 但是 我无法正确加载按钮 import tkinter as tk class Demo1 tk Frame
  • 在seaborn中对箱线图x轴进行排序

    我的数据框round data看起来像这样 error username task path 0 0 02 n49vq14uhvy93i5uw33tf7s1ei07vngozrzlsr6q6cnh8w 39 png 1 0 10 n49vq
  • 如何分析组合的 python 和 c 代码

    我有一个由多个 python 脚本组成的应用程序 其中一些脚本正在调用 C 代码 该应用程序现在的运行速度比以前慢得多 因此我想对其进行分析以查看问题所在 是否有工具 软件包或只是一种分析此类应用程序的方法 有一个工具可以将 python
  • 根据列索引重命名 Dataframe 列

    是否有内置函数可以按索引重命名 pandas 数据框 我以为我知道列标题的名称 但事实证明第二列中有一些十六进制字符 根据我接收数据的方式 我将来可能会在第 2 列中遇到这个问题 因此我无法将这些特定的十六进制字符硬编码到 datafram
  • 在Python中连续解析文件

    我正在编写一个脚本 该脚本使用 HTTP 流量行解析文件 并取出域 目前仅将它们打印到屏幕上 我正在使用 httpry 将流量连续写入文件 这是我用来删除域名的脚本 usr bin python import re input open r
  • Python 导入非常慢 - Anaconda python 2.7

    我的 python import 语句变得非常慢 我使用 Anaconda 包在本地运行 python 2 7 导入模块后 我编写的代码运行得非常快 似乎只是导入需要很长时间 例如 我使用以下代码运行了一个 tester py 文件 imp
  • 更新 SQLAlchemy 中的特定行

    我将 SQLAlchemy 与 python 一起使用 我想更新表中等于此查询的特定行 UPDATE User SET name user WHERE id 3 我通过 sql alchemy 编写了这段代码 但它不起作用 session
  • 如何在Tensorflow中保存估计器以供以后使用?

    我按照教程 TF Layers 指南 构建卷积神经网络 以下是代码 https github com tensorflow tensorflow blob r1 1 tensorflow examples tutorials layers
  • 在python中对列表列表执行行总和和列总和

    我想用python计算矩阵的行和和列和 但是 由于信息安全要求 我无法使用任何外部库 因此 为了创建矩阵 我使用了列表列表 如下所示 matrix 0 for x in range 5 for y in range 5 for pos in

随机推荐

  • CoreData 获取孩子的父母

    我有一个one to many关系store lt gt gt product 并且我知道该产品 我如何才能找到该产品的父级是谁 例如 我可以拥有许多具有相同值的产品product1 has parent1以及具有相同值的另一种产品prod
  • ViewBag RuntimeBinderException(MVC 4、ASPX)

    我使用以下命令启动了一个 Default MVC 4 项目ASPX引擎 不是 Razor 一切正常 我可以用 and 用于图书评级 而不是 asp net mvc 教程网站上的餐厅评论 但是 我的代码错误 所以出于某种原因 当从 BookR
  • 一组顶点不相交的循环,使得每个顶点都属于一个循环

    这里我有一个有向图G 我需要判断是否存在 一组顶点不相交的循环 使得每个顶点都属于一个循环 我不确定这是否可以在多项式时间内完成或者是否是 NP 完全的 有人能至少指出我正确的方向吗 将每个顶点拆分为 内 顶点和 外 顶点 那么顶点不相交的
  • PHP Mailer 返回 PHP 致命错误:未捕获 PHPMailer\PHPMailer\Exception:SMTP 错误:无法进行身份验证

    我看到了很多类似的问题 比如我的问题 但从来没有一个对我有帮助的 我正在尝试 PHPMailerhttps github com PHPMailer PHPMailer https github com PHPMailer PHPMaile
  • 使用 JQuery .ajax,使用 jquery 'json' 与 'text' 时不会调用 Success 方法

    我有一个 ASP Net 网页尝试使用 jquery axax 方法从 asmx web 服务检索数据 当dataType text 时 ajax方法正确调用成功方法 但是当使用 json 的dataType时 我无法让它返回 谁能看到我缺
  • 当存在 UTF-8 字符编码时,显示引号的问号图标

    由于某种原因 我添加后 在我的头标签之间 某些符号 即引号 显示为中间带有问号的菱形图标 就好像没有找到该符号一样 有人知道怎么回事吗 您的文本编辑器正在以某种非 UTF 8 很可能是 CP1252 的编码保存文件 包括引号 将文件实际转换
  • Java 中所有 UTF-8 字符的维吉尼亚密码

    我有一个简单的函数 用于通过 Java 中的 Vigen re 加密字符串 我省略了解密 因为这只是计算新值的行中的 而不是 但此功能仅适用于普通字母 A Z 如何更改该函数以使其支持小写字母以及大写字母和所有其他 UTF 8 字符 pub
  • 将 Homebrew 安装的 Qt 添加到 Mac 上的 Qt Creator

    我通过安装 Qt5 和 Qt Creatorhomebrew https brew sh 由于它们是彼此独立安装的 因此 Qt 不会自动添加到 Qt Creator 中的已知 Qt 安装列表中 我以为添加安装很简单 但是 由于自制程序将所有
  • 为什么要把Reader的构造函数参数定义为函数呢?

    在学习Reader Monad时 我发现它的定义是 newtype Reader r a Reader runReader r gt a instance Monad Reader r where return a Reader gt a
  • Express js:将多个路由文件合并为单个文件

    在我的express js应用程序中 我按以下方式组织我的路线 paths comment js 处理所有评论路由 var express require express var router express Router var comm
  • 将 DAO 记录集转换为断开连接的 ADO 记录集 dbDecimal 问题

    在 MS Access VBA 2007 中 我编写了以下函数 将 DAO 记录集转换为断开连接的内存中 ADO 记录集 问题是我在 DAO dbDecimal 字段上遇到数据类型转换问题 当我尝试将 DAO 记录集中的数据插入到新创建的
  • 使用 geom_smooth() 和“gam”相当于 span

    这可能是一个非常基本的问题 但我还没有找到答案 有没有相当于span论据中的geom smooth函数时method gam 我对 GAM 不太熟悉 所以如果有任何意见 我将不胜感激 我想为 n gt 1 000 的数据添加更灵活 更摆动
  • 声明图像字段的正确方法,sqlalchemy

    我正在尝试使用 Flask 构建和应用程序 我看过一些教程和书籍以及一些代码 1 它们解释了如何为数据库设置声明整数和字符串 然而 他们没有解释如何存储图像 我现在很困惑 虽然存储图像的自然方法是在数据库中 但阅读 Flask 站点上的一些
  • .NET 中机器的域名?

    一定有一种简单的方法可以做到这一点 我不敢相信没有 我扫描了网络 发现有 20 种不同的方法来查找当前用户所在的域 但没有一种方法可以获取当前计算机的域 或工作组 在非托管 c 中 这是通过以下方式检索的 WKSTA INFO 100 bu
  • Python CSV 模块 - 引号丢失

    我有一个 CSV 文件 其中包含这样的数据 15 I 2 41301888 BYRNESS RAW BYRNESS VILLAGE NORTHUMBERLAND ENG 11 I 3 41350101 2 2935 2 2008 01 09
  • OpenCV:何时使用 GridAdaptedFeatureDetector?

    我正在尝试制作一个基于描述符的检测器 我正在使用 OpenCV 我发现有很多特征类型和描述符类型 以及匹配器类型 更多我还看到可以有诸如网格或金字塔之类的组合类型作为特征类型 我还没有找到对它们的很好的解释 除了金字塔 它说这很好 对于本质
  • 容器“Android 依赖项”引用不存在的库 appcompat_v7.jar”

    我知道这个问题已被问过很多次 但不幸的是找不到任何解决方案 所以这里是 The container Android Dependencies references non existing library C Users Zain ul a
  • 替代RelativeLayout中的weightSum?

    我有四个TextView我想要在水平线上均匀分布的项目 这意味着一行中的所有空间必须均匀地被TextView项目 像这样 以前 我使用 LinearLayout 来实现此目的 我将weightSum 设置为4 并将layout weight
  • 单个构建步骤的 TeamCity 构建日志

    当 teamcity 执行 MSBuild 步骤时 构建日志具有可折叠 可扩展的层次结构 我有一个很大的构建步骤 它运行一个 powershell 脚本 生成的构建日志很大 需要很长时间才能加载 有没有一种方法可以让 teamcity 将单
  • 使用python sklearn增量训练随机森林模型

    我使用下面的代码来保存随机森林模型 我正在使用 cPickle 保存训练后的模型 当我看到新数据时 我可以增量训练模型吗 目前 训练集大约有2年的数据 有没有办法再训练两年并将其 某种程度上 附加到现有保存的模型中 rf RandomFor