基于已有模型,训练新数据的方法
今天碰到一个问题,训练数据随着随着时间的累计越来越多。这样如果每一次训练都把所有的样本,训练一次,既浪费资源又耽误时间。所以,希望可以时间基于已有的模型,直接训练新的数据。比如,我用第一个月的数据训练好了一个模型,现在又来了第二个月的数据,以往的方式是把一月和二月的数据拼起来训练模型,现在希望的基于一月份已经获得的模型,直接训练二月份的数据。具体方法为:
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))
基于已有模型,训练新数据的方法相关推荐
- ML之xgboost:基于xgboost(5f-CrVa)算法对HiggsBoson数据集(Kaggle竞赛)训练实现二分类预测(基于训练好的模型进行新数据预测)
ML之xgboost:基于xgboost(5f-CrVa)算法对HiggsBoson数据集(Kaggle竞赛)训练实现二分类预测(基于训练好的模型进行新数据预测) 目录 输出结果 设计思路 核心代码 ...
- 持续学习常用6种方法总结:使ML模型适应新数据的同时保持旧数据的性能
来源:Deep IMBA 本文约4800字,建议阅读9分钟 本文将讨论6种方法,使模型可以在保持旧的性能的同时适应新数据,并避免需要在整个数据集(旧+新)上进行重新训练. 持续学习是指在不忘记从前面的 ...
- 【深度学习】基于PyTorch的模型训练实用教程之数据处理
[深度学习]基于PyTorch的模型训练实用教程之数据处理 文章目录 1 transforms 的二十二个方法 2 数据加载和预处理教程 3 torchvision 4 如何用Pytorch进行文本预 ...
- abaqus基于已有模型仿真
abaqus基于已有模型仿真 一.导入模型 二.设置属性 三.划分截面 创建边界集合 手动切分不规则部分 四.划分网格 手动设置不同属性相邻截面 五.装配和分析步 六.设置边界条件和载荷 七.创建作业 ...
- 基于paddlex图像分类模型训练(一):图像分类数据集切分:文件夹转化为imagenet训练格式
相关博文 基于paddlex图像分类模型训练(二):训练自己的分类模型.熟悉官方demo 背景 在使用paddlex GUI训练图像分类时,内部自动对导入的分类文件夹进行细分,本文主要介绍其图像分类数 ...
- 模型训练:数据预处理和预载入
相对于模型的训练而言,有时候数据的预处理和载入反而是一件更为耗时的工作. 为了优化模型的训练流程,有必要对训练的全流程做一个时间上的评测(Profiling),以弄清每一步所耗费的时间,并发现性能上的 ...
- 【小样本实体识别】Few-NERD——基于N-way K-shot的实体识别数据集和方法介绍
[小样本实体识别]Few-NERD--基于N-way K-shot的实体识别数据集和方法介绍 前记: 实体识别是信息抽取领域中比较重要的任务,其在学术界和工业界都是有很广泛的应用前景.但是当前实体 ...
- 利用GBDT模型构造新特征具体方法
利用GBDT模型构造新特征具体方法 数据挖掘入门与实战 公众号: datadw 实际问题中,可直接用于机器学**模型的特征往往并不多.能否从"混乱"的原始log中挖掘到有用的 ...
- ACL’22 | 为大模型定制的数据增强方法FlipDA,屠榜六大NLU 数据集!
文 | ZenMoore 编 | 小轶 今天由一篇清华大学发表于 ACL'22 的最新论文说起,一起探讨一下:大模型时代,我们该如何进行数据增强? 大家可能都多少了解一些传统的数据增强方法,比如回译. ...
最新文章
- nginx访问日志,错误日志参数说明
- TensorFlow 常见错误与解决方法——长期不定时更新
- v8-su-root
- 20150127--Session入库
- python生成一定范围的符合正态分布的数
- 操作系统内存管理——分区、页式、段式管理
- SAP S/4HANA里修改了Business Partner后的调试入口
- 开放开源 | DeepKE:基于深度学习的开源中文关系抽取工具
- 一种基于平衡二叉树(AVL树)插入、查找和删除的简易图书管理系统
- 支付宝程序员眼中的极致代码和卓越程序员是什么样的?
- 【es】FATAL [circuit_breaking_exception] [parent] Data too large, data for [<http_request>] would be
- A+B and A*B problem 大数相加 相乘 模拟
- TG电报telegram群发软件,批量采集群成员、发消息、拉人,全自动营销工具,免费用
- 一文搞明白DNS缓存投毒
- 本机修改虚拟机linux中的代码文件
- 数据库只读问题解决!!!MySQL server is running with the --read-only option
- android sim卡工具,手机sim卡工具包老是弹出来怎么办?sim卡工具包不断弹出删除方法...
- Xilinx 网站资源导读2
- 字幕:《李开复谈创新思维》上
- 直播系统---从数据层设计的角度看映客直播系统架构变化