今天碰到一个问题,训练数据随着随着时间的累计越来越多。这样如果每一次训练都把所有的样本,训练一次,既浪费资源又耽误时间。所以,希望可以时间基于已有的模型,直接训练新的数据。比如,我用第一个月的数据训练好了一个模型,现在又来了第二个月的数据,以往的方式是把一月和二月的数据拼起来训练模型,现在希望的基于一月份已经获得的模型,直接训练二月份的数据。具体方法为:

step 1 利用一月份的数据训练得到模型,并保存。

step2 调用保存的模型,对其进行fit(其实,就是连续fit模型就行。), 这样得到的模型与把一月二月数据合在一起训练得到的模型结果一致。

下面为实现代码及验证

import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.utils import shuffle
import picklex = load_iris().data
y = load_iris().target
x_disorder, y_disorder = shuffle(x, y, random_state=1)
x_train, x_test, y_train, y_test = train_test_split(x_disorder, y_disorder, random_state=3)x_old_train = x_train[:90, :]
y_old_train = y_train[:90]
x_new_train = x_train[90:, :]
y_new_train = y_train[90:]
model = RandomForestClassifier()
model = model.fit(x_old_train, y_old_train)  # 先用一部分训练数据,训练模型,并保存with open('old_version.pickle', 'wb') as f:pickle.dump(model, f)
# 调用刚刚保存的模型,比如此时又来新的训练数据,这时模型继续训练,再预测
pickle_in = open('old_version.pickle', 'rb')
model = pickle.load(pickle_in)
model = model.fit(x_new_train, y_new_train)
# 对比直接训练所有数据后,再预测的结果
all_model = RandomForestClassifier()
all_model = all_model.fit(x_train, y_train)
# 两种结果完全一致,所以这样的好处是:模型参数不需要重新训练,只需要再以前的基础上继续训练节省时间。
print('基于已有模型+新训练数据得到模型结果', model.score(x_test, y_test))
print('训练所有数据得到的结果', all_model.score(x_test, y_test))

基于已有模型,训练新数据的方法相关推荐

  1. ML之xgboost:基于xgboost(5f-CrVa)算法对HiggsBoson数据集(Kaggle竞赛)训练实现二分类预测(基于训练好的模型进行新数据预测)

    ML之xgboost:基于xgboost(5f-CrVa)算法对HiggsBoson数据集(Kaggle竞赛)训练实现二分类预测(基于训练好的模型进行新数据预测) 目录 输出结果 设计思路 核心代码 ...

  2. 持续学习常用6种方法总结:使ML模型适应新数据的同时保持旧数据的性能

    来源:Deep IMBA 本文约4800字,建议阅读9分钟 本文将讨论6种方法,使模型可以在保持旧的性能的同时适应新数据,并避免需要在整个数据集(旧+新)上进行重新训练. 持续学习是指在不忘记从前面的 ...

  3. 【深度学习】基于PyTorch的模型训练实用教程之数据处理

    [深度学习]基于PyTorch的模型训练实用教程之数据处理 文章目录 1 transforms 的二十二个方法 2 数据加载和预处理教程 3 torchvision 4 如何用Pytorch进行文本预 ...

  4. abaqus基于已有模型仿真

    abaqus基于已有模型仿真 一.导入模型 二.设置属性 三.划分截面 创建边界集合 手动切分不规则部分 四.划分网格 手动设置不同属性相邻截面 五.装配和分析步 六.设置边界条件和载荷 七.创建作业 ...

  5. 基于paddlex图像分类模型训练(一):图像分类数据集切分:文件夹转化为imagenet训练格式

    相关博文 基于paddlex图像分类模型训练(二):训练自己的分类模型.熟悉官方demo 背景 在使用paddlex GUI训练图像分类时,内部自动对导入的分类文件夹进行细分,本文主要介绍其图像分类数 ...

  6. 模型训练:数据预处理和预载入

    相对于模型的训练而言,有时候数据的预处理和载入反而是一件更为耗时的工作. 为了优化模型的训练流程,有必要对训练的全流程做一个时间上的评测(Profiling),以弄清每一步所耗费的时间,并发现性能上的 ...

  7. 【小样本实体识别】Few-NERD——基于N-way K-shot的实体识别数据集和方法介绍

    [小样本实体识别]Few-NERD--基于N-way K-shot的实体识别数据集和方法介绍 前记:   实体识别是信息抽取领域中比较重要的任务,其在学术界和工业界都是有很广泛的应用前景.但是当前实体 ...

  8. 利用GBDT模型构造新特征具体方法

    利用GBDT模型构造新特征具体方法 数据挖掘入门与实战  公众号: datadw   实际问题中,可直接用于机器学**模型的特征往往并不多.能否从"混乱"的原始log中挖掘到有用的 ...

  9. ACL’22 | 为大模型定制的数据增强方法FlipDA,屠榜六大NLU 数据集!

    文 | ZenMoore 编 | 小轶 今天由一篇清华大学发表于 ACL'22 的最新论文说起,一起探讨一下:大模型时代,我们该如何进行数据增强? 大家可能都多少了解一些传统的数据增强方法,比如回译. ...

最新文章

  1. 【iOS开展-94】xcode6如何使用GIT以及如何添加太老项目GIT特征?
  2. ABP 重写主键ID
  3. 【S操作】老铁留步,干货来了!小总结云存储云办公云笔记工具——我的云工具选择,供您参考...
  4. ugly number
  5. MIPS衰落 LoongArch崛起
  6. 【活动(北京)】Global Azure Bootcamp
  7. CSharpGL(7)对VAO和VBO的封装
  8. HDU1829【种类并查集】
  9. 读写卡测试程序VFP源代码
  10. 伯努利分布、二项分布和多项分布
  11. 超级详细的 Maven 教程(基础+高级)
  12. FER基于卷积神经网络: 处理少量数据和训练样本订单FER with CNN:Coping with few data and the training sample order
  13. c语言拼图小游戏编程,c语言控制台输出制作拼图小游戏
  14. android自学视频!2021年Android进阶者的新篇章,附面试题答案
  15. layui单选框verify_layui 实现自动选择radio单选框(checked)的方法
  16. 实用技巧--CAD制作空心文字【中级】
  17. UA OPTI544 量子光学4 补充:Parity Operator
  18. 猎豹android studio,小米方盒音箱与猎豹音箱对比
  19. kafka connect mysql_Kafka Connect如何实现同步RDS binlog数据?
  20. 中国省市区三级联的JSON格式

热门文章

  1. python爬取百度贴吧的实例
  2. retrospective material for final English exam unit_5 Law
  3. 1135 Is It A Red-Black Tree (30分)
  4. 成才之路杂志社成才之路编辑部成才之路杂志2022年第33期目录
  5. 工业相机标定(张正友标定法)
  6. 2017下半年掘金日报优质文章合集:iOS篇
  7. Gank教学贴:Gank是一门艺术 不是固定的套路
  8. css中什么是伪类选择器?伪类选择器的简要介绍
  9. 2019辽宁公务员考试行测常识大全:公务员常识40000问(四十六)
  10. “问天号”已就位!喻京川2013年畅想的《中国空间站》,即将启航星辰大海!...