美文网首页机器学习
Xgboost之增量学习

Xgboost之增量学习

作者: 可能性之兽 | 来源:发表于2022-05-14 19:05 被阅读0次

日常处理数据过程中,我们会遇到新数据的增加这个问题,我们既想增加新数据,又想利用原先的模型,迁移学习和增量学习就应运而生了

增量学习可以分为3类:样本增量学习(SIL),类别增量学习(CIL),特征增量学习(FIL)
1、SIL
问题:由于新数据的各种原因,样本的特征值可能会改变,每个类别的比例也会改变。这些都会影响分类的准确率。
任务:因此,需要确保在现有知识的情况下,通过新样本的增量学习来提取新知识,融合新旧知识以提高分类的准确性。
2、 CIL
任务:识别新类,并将其加入现有类别的集合中,提升分类的准确性和智能。
3、FIL
一些新的属性特征能够将分类提升到一个很大的程度,并提升分类准确率。
任务:在现有特征空间的基础上,加入新的属性特征,构建新的特征空间,提升分类准确率。

Xgboost提供两种增量训练的方式,一种是在当前迭代树的基础上增加新树,原树不变;另一种是当前迭代树结构不变,重新计算叶节点权重,同时也可增加新树。

对于已存在的决策树,早期训练的实例决定了模型的结构(选择哪些特征及分裂点),后期的实例决定最终的结果(叶节点的权重和新加入的树)。

两个重点:
第一,模型训练了一半,突然换了一批完全不同的数据继续训练,早期数据不再能再校正模型;
第二,树一旦形成,结构就不再变化,后续的训练只能增加新树和重新计算前树的节点权重。

xgboost源码中有增量训练的例程:tests/python/test_training_continuation.py,其中核心部分稍做修改如下【1,3】:

# -*- coding: utf-8 -*-
 
import xgboost as xgb
from sklearn.datasets import load_digits # 训练数据
 
xgb_params_01 = {}
 
digits_2class = load_digits(2)
X_2class = digits_2class['data']
y_2class = digits_2class['target']
 
dtrain_2class = xgb.DMatrix(X_2class, label=y_2class)
gbdt_03 = xgb.train(xgb_params_01, dtrain_2class, num_boost_round=3) # 训练三棵树的模型
print(gbdt_03.get_dump()) # 显示模型
gbdt_03a = xgb.train(xgb_params_01, dtrain_2class, num_boost_round=7, xgb_model=gbdt_03) # 在原模型基础上继续训练
print(gbdt_03a.get_dump())

增量学习与迁移学习

在概念上,增量学习与迁移学习最大的区别就是对待旧知识的处理,增量学习在学习新知识的同时需要尽可能保持旧知识,不管它们类别相关还是不相关的,而迁移学习则只是借助旧知识来学习新知识,学习完成后只关注在新知识上的性能,不再考虑在旧知识上的性能。

这个链接还需要重视一波,提供了很多xgboost的使用方法
xgboost/test_training_continuation.py at master · dmlc/xgboost (github.com)

1.Xgboost之增量学习_xieyan0811的博客-CSDN博客_xgboost 增量训练

2.浅谈迁移学习,增量学习Chris_zhangrx的博客-CSDN博客增量学习和迁移学习

3.xgboost/test_training_continuation.py at master · dmlc/xgboost (github.com)

4.增量学习的理解(迁移学习,fit_genrtor区别)herr_kun的博客-CSDN博客增量学习keras

相关文章

  • Xgboost之增量学习

    日常处理数据过程中,我们会遇到新数据的增加这个问题,我们既想增加新数据,又想利用原先的模型,迁移学习和增量学习就应...

  • XGBoost_增量学习

    1. 说明  当我们的训练数据非常多,并且还在不断增加时,每次都用全量训练,数据过多,时间过长,此时就可以使...

  • GBDT进化->XGBoost & LightGBM简记

    很全面的阐释XGBoost: 集成学习之Boosting —— XGBoost 大体来看,XGBoost 在原理方...

  • 11 集成学习 - XGBoost案例 - 波士顿房价进行预测

    08 集成学习 - XGBoost概述09 集成学习 - XGBoost公式推导10 集成学习 - XGBoost...

  • 机器学习之-XGBoost

    之前一直对XGBoost走马观花,觉得就是那么滴,没有详细的理解其中的细节,这次重新看了下,原来里面还是有很多东西的。

  • xgboost和lda学习

    XGBoost 源码阅读笔记 ( 1 ) :代码逻辑结构 XGBoost 源码阅读笔记(2):树构造之 Exact...

  • 读《Smart Pointer Parameters》有感

    最近在给xgboost添加一些接口,便于从稀疏向量数组增量构造DMatrix(在实际业务场景中可以避免数组拼接)。...

  • 071 XGBoost

    背景 谈到大杀器XGBoost,我们从集成学习开始讨论,逐步演化到XGBoost 集成学习 bagging减小方差...

  • 集成学习

    参考:一文搞定GBDT、Xgboost和LightGBM的面试机器学习算法之LightGBMLightGBM两种使...

  • 机器学习之XGBoost篇

    更多机器学习视频教程:http://www.admin444.com/P-c8129a48 一.xgboost的优...

网友评论

    本文标题:Xgboost之增量学习

    本文链接:https://www.haomeiwen.com/subject/ollmurtx.html