集成学习思想

简介: **集成学习**是通过结合多个预测模型来创建一个更强大、更鲁棒的系统。它利用了如随机森林、AdaBoost和GBDT等策略。随机森林通过Bootstrap抽样构建多个决策树并用多数投票决定结果,增强模型的多样性。Boosting,如Adaboost,逐步调整样本权重,使后续学习器聚焦于前一轮分类错误的样本,减少偏差。GBDT则通过拟合残差逐步提升预测精度。这些方法通过组合弱学习器形成强学习器,提高了预测准确性和模型的鲁棒性。

概述


集成学习思想


  • 线性回归、逻辑回归、决策树都是单一模型预测
  • 我们想把多个相同模型、多个不同种类的模型组合起来,形成一个更强大的模型进行预测


集成学习概念:将多个学习器(也称为基学习器)组合成一个更强大的学习器的机器学习技术。

通过利用多个学习器的优势来提高预测的准确性和鲁棒性,从而达到更好的性能表现。



  • 集成学习通过构建多个模型来解决单一预测问题
  • 生成多基学习器,各自独立地学习和预测
  • 通过平权或者加权的方式,整合多个基学习器的预测输出


基学习器使用的方法:


  1. 可使用不同的学习模型,比如:支持向量机、神经网络、决策树整合到一起作为一个集成学习系统
  2. 也可使用相同的学习模型,比如,多个基学习器都使用决策树,倾向于使用相同的学习模型


集成分类策略


  • Bagging(集成、打包、袋装)
  • 代表算法:随机森林
  • Boosting提升树
  • 代表算法:Adaboost、GBDT、XGBoost、LightGBM


Bagging思想




  • 有放回的抽样(booststrap抽样)产生不同的训练集,从而训练不同的学习器
  • 通过平权投票、多数表决的方式决定预测结果,基学习器可以并行训练



Boosting思想



  • 每一个训练器重点关注前一个训练器不足的地方进行训练
  • 通过加权投票的方式,得出预测结果,串行的训练方式


栗子:



随着学习的积累从弱到强 ,每新加入一个弱学习器,整体能力就会得到提升。


随机森林算法

 

随机森林是一个包含多个决策树的分类器,并且其输出的类别是由多个树输出的类别的众数而定。



训练了5个树, 其中4个树的结果是True, 1个树的结果是False, 最终投票结果True ,弱学习器的训练样本既有交集也有差异数据,更容易发挥投票表决效果


随机森林算法 – API



import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV
def fuc():
 
    titan = pd.read_csv(“train.csv”)
 
    x = titan[[“Pclass”, “Age”, “Sex”]].copy()
    y = titan[“Survived”]
 
    x[‘Age’].fillna(value=titan[“Age”].mean(), inplace=True)
 
 
    x = pd.get_dummies(x)
 
    x_train, x_test, y_train, y_test = \
    train_test_split(x, y, random_state=22, test_size=0.2)
 
dtc = DecisionTreeClassifier()
dtc.fit(x_train, y_train)
dtc_y_pred = dtc.predict(x_test)
accuracy = dtc.score(x_test, y_test)
 
rfc = RandomForestClassifier(max_depth=6, random_state=9)
rfc.fit(x_train, y_train)
rfc_y_pred = rfc.predict(x_test)
accuracy = rfc.score(x_test, y_test)


Adaboost算法


Adaptive Boosting(自适应提升)基于 Boosting思想实现的一种集成学习算法,常用于二分类。

核心思想是通过逐步提高那些被前一步分类错误的样本的权重来训练一个强分类器。



初始化训练数据(样本)权重相等,训练第 1 个学习器,根据预测结果更新样本权重、模型权重 。


迭代训练在前一个学习器的基础上,根据新的样本权重训练当前学习器。


假设已训练了3个基学习器,第1个/2个/3个基学器模型权重分别为:0.4236,0.64963,0.7514。当输入x=3,计算最后的输出类别:


根据投票公式:H(x) = sign(0.4236 * ℎ 1 (𝑥) + 0.64963 * ℎ 2 (𝑥) + 0.7515 * ℎ 3(𝑥) )


= 0.4236*(-1) + 0.64963*(1) + 0.7514*(-1) = -0.52537 < 0


预测结果小于零,所以x=3的样本(4号样本)归为负类。


  • Bagging分类中比如随机森林因采用随机抽样、随机抽特征,即使把模型训练的有一些过拟合,但是因为采用平权投票的方式,可以减少过拟合的发生。
  • 随机森林中决策树可以不剪枝,因过拟合模型输出会更多元化,增加了数据的波动程度。通过集成学习平权投票可以有效降低方差。


从偏差-方差的角度看,Boosting主要用于提高训练精度,Bagging中每一个基学习器都对上一个基学习器分类不正确的样本,进行重点关注,相当不断的提高模型的准确度,让模型预测的更准,打的更准。


GBDT


残差提升树


提升树概念: 通过拟合残差的思想来进行提升。


预测某人的年龄为100岁:


  1. 第1次预测:对100岁预测,因单模型在预测精度上有上限,只能预测成80岁;100 – 80 = 20(残差)
  2. 第2次预测:上一轮残差20岁作为目标值,只能预测成16岁;20 – 16 = 4 (残差)
  3. 第3次预测:上一轮的残差4岁作为目标值,只能预测成3.2岁;4 – 3.2 = 0.8(残差)
  4. 80 + 16 + 3.2 = 99.2
  5. 通过拟合残差可将多颗弱学习器组成一个强学习器。


GBDT 使用 CART 回归树,GBDT每次迭代要拟合的是梯度值是连续值,所以要用回归树,CART 回归树使用平方误差。


梯度提升树计算过程


  • 第1轮:拟合上一轮的负梯度(第1轮就是最原始的y目标值),然后计算负梯度(目标值 – 预测值=负梯度)
  • 第2轮:拟合上一轮的负梯度 ,然后计算负梯度,目标值(上一轮的负梯度) - 预测值(利用平方损失最小化,找到最优分裂点而产生的预测值) = 负梯度
  • 直到达到指定的学习器个数。


当输入未知样本时,将所有弱学习器的输出结果加起来作为强学习器的输出,最终的结

果 :7.31 + (-1.07) + 0.22 + 0.15 = 6.61  (为三个梯度)  


相关文章
|
4月前
|
定位技术
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例-3
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例
|
4月前
|
机器学习/深度学习 缓存 算法
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例-2
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例
|
1月前
|
机器学习/深度学习 运维 算法
【阿里天池-医学影像报告异常检测】3 机器学习模型训练及集成学习Baseline开源
本文介绍了一个基于XGBoost、LightGBM和逻辑回归的集成学习模型,用于医学影像报告异常检测任务,并公开了达到0.83+准确率的基线代码。
40 9
|
1月前
|
人工智能
LLama+Mistral+…+Yi=? 免训练异构大模型集成学习框架DeePEn来了
【8月更文挑战第6天】DeePEn是一种免训练异构大模型集成学习框架,旨在通过融合多个不同架构和参数的大模型输出概率分布,提升整体性能。它首先将各模型输出映射至统一概率空间,然后进行聚合,并最终反转回单一模型空间以生成输出。实验证明,在知识问答和推理任务上,DeePEn相比单一大模型如LLaMA和Mistral有显著提升,但其效果受模型质量和数量影响,并且计算成本较高。[论文: https://arxiv.org/abs/2404.12715]
35 1
|
1月前
|
机器学习/深度学习
【机器学习】模型融合Ensemble和集成学习Stacking的实现
文章介绍了使用mlxtend和lightgbm库中的分类器,如EnsembleVoteClassifier和StackingClassifier,以及sklearn库中的SVC、KNeighborsClassifier等进行模型集成的方法。
42 1
|
2月前
|
机器学习/深度学习 算法 前端开发
集成学习的力量:Sklearn中的随机森林与梯度提升详解
【7月更文第23天】集成学习,作为机器学习中一种强大而灵活的技术,通过结合多个基础模型的预测来提高整体预测性能。在`scikit-learn`(简称sklearn)这一Python机器学习库中,随机森林(Random Forest)和梯度提升(Gradient Boosting)是两种非常流行的集成学习方法。本文将深入解析这两种方法的工作原理,并通过代码示例展示它们在sklearn中的应用。
87 10
|
2月前
|
机器学习/深度学习 算法 前端开发
集成学习(Ensemble Learning)是一种机器学习技术,它通过将多个学习器(或称为“基学习器”、“弱学习器”)的预测结果结合起来,以提高整体预测性能。
集成学习(Ensemble Learning)是一种机器学习技术,它通过将多个学习器(或称为“基学习器”、“弱学习器”)的预测结果结合起来,以提高整体预测性能。
|
3月前
|
机器学习/深度学习 算法 前端开发
机器学习中的集成学习(二)
**集成学习概述** 集成学习通过结合多个弱学习器创建强学习器,如Bagging(Bootstrap Aggregating)和Boosting。Bagging通过随机采样产生训练集,训练多个弱模型,然后平均(回归)或投票(分类)得出结果,减少方差和过拟合。Boosting则是迭代过程,每个弱学习器专注于难分类样本,逐步调整样本权重,形成加权平均的强学习器。典型算法有AdaBoost、GBDT、XGBoost等。两者区别在于,Bagging模型并行训练且独立,而Boosting模型间有依赖,重视错误分类。
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习中的集成学习(一)
集成学习是一种将多个弱学习器组合成强学习器的方法,通过投票法、平均法或加权平均等策略减少错误率。它分为弱分类器集成、模型融合和混合专家模型三个研究领域。简单集成技术包括投票法(用于分类,少数服从多数)、平均法(回归问题,预测值取平均)和加权平均法(调整模型权重以优化结果)。在实际应用中,集成学习如Bagging和Boosting是与深度学习并驾齐驱的重要算法,常用于数据竞赛和工业标准。
|
3月前
|
机器学习/深度学习 人工智能 算法
AI - 集成学习
集成学习是一种机器学习策略,它通过组合多个模型(称为基学习器)来创建一个更强大、更稳健的预测模型。基学习器可以是不同类型或同类型的模型,如决策树、SVM、神经网络等。