机器学习——集成学习

一、个体与集成

集成学习通过构建并结合多个学习器来完成学习任务。

集成学习的一般结构:

先产生一组"个体学习器",再用某种策略将它们结合起来,个体学习器通常由一个现有的学习算法从训练数据产生。若集成中只包含同种类型的个体学习器,例如:"决策树集成"中全是决策树,"神经网络集成"中全是神经网络,则称这样的集成是同质的。

同质集成中的个体学习器也称为"基学习器",相应的学习算法称为"基学习算法"。

同时包含不同类型的个体学习器的集成是"异质"的,异质集成中的个体学习器由不同的学习算法生成,这时就不再有基学习算法;相应的,个体学习器一般不称为基学习器,常称为"组件学习器"。

二、集成个体应该"好而不同"

在一个二分类任务中,假定三个分类器在三个测试样本上的表现如上图所示,其中√表示分类正确,×表示分类错误,集成学习的结果通过投票法产生,即"少数服从多数"。图(a)中,每个分类器都只有66.6%的精度,但集成学习却达到了100%的精度;图(b)中,三个分类器的性能没有差别,集成之后性能也没有提高;图©中,每个分类器的精度都只有33.3%,集成学习的结果变得更差。

要获得好的集成,个体学习器应"好而不同" ,即个体学习器要有一定的"准确性",即学习器不能太差,并且要有"多样性",即学习器 间具有差异
事实上,个体学习器的"准确性"和"多样性"本身就存在冲突,一般的,各个学习器准确性很高之后,学习器之间存在很大的相似性,要增加多样性就需要牺牲准确性。

根据个体学习器的生成方式,目前的集成学习方法大致可分为两个大类。
个体学习器间存在强依赖关系,必须串行生成的序列化方法 { A d a B o o s t G r a d i e n t B o o s t L P B o o s t ⋯ } B o o s t i n g 族 个体学习器间存在强依赖关系,必须串行生成的序列化方法 \left. \begin{cases} AdaBoost \\ GradientBoost\\ LPBoost\\ \cdots \end{cases} \right\} Boosting族 个体学习器间存在强依赖关系,必须串行生成的序列化方法⎩ ⎨ ⎧AdaBoostGradientBoostLPBoost⋯⎭ ⎬ ⎫Boosting族
个体学习器间不存在强依赖关系,可同时生成的并行化方法 { B a g g i n g 随机森林 R a n d o m F o r e s t R a n d o m s u b s p a c e ⋯ 个体学习器间不存在强依赖关系,可同时生成的并行化方法 \begin{cases} Bagging \\ 随机森林 Random&Forest\\ Random&subspace\\ \cdots \end{cases} 个体学习器间不存在强依赖关系,可同时生成的并行化方法⎩ ⎨ ⎧Bagging随机森林RandomRandom⋯Forestsubspace

三、Boosting

Boosting是一族可将弱学习器提升为强学习器的算法。

工作机制:

先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续收到更多的关注,然后基于调整后的训练样本分布来训练下一个基学习器,如此重复进行,直至基学习器数目达到事先指定的值T,最终将这T个基学习器进行 加权结合。

Boosting算法要求基学习器能对特定的数据分布进行学习,可通过"重赋权法"实施,即在训练过程的每一轮中,根据样本分布为每个训练样本重新赋予一个权重,对无法接受带权样本的基学习算法,则可通过"重采样法"来处理,即在每一轮学习中,根据样本分布对训练集重新进行采样,再用重采样得到的样本集对基学习器进行训练。

Boosting主要关注降低偏差。

四、Bagging

Bagging是并行式集成学习算法,主要是基于"自助采样法"。

给定包含m个样本的数据集,先随机取出一个放入采样集中,再把该样本放回初始数据集,使得下次采样时该样本仍有可能被选中,这样,经过m个随机操作,得到包含m个样本的采样集,初始训练集中约有63.2%的样本出现在采样集中。

相关推荐
海洲探索-Hydrovo1 小时前
TTP Aether X 天通透传模块丨国产自主可控大数据双向通讯定位模组
网络·人工智能·科技·算法·信息与通信
触想工业平板电脑一体机1 小时前
【触想智能】工业安卓一体机在人工智能领域上的市场应用分析
android·人工智能·智能电视
墨染天姬2 小时前
【AI】数学基础之矩阵
人工智能·线性代数·矩阵
2401_841495644 小时前
【计算机视觉】基于复杂环境下的车牌识别
人工智能·python·算法·计算机视觉·去噪·车牌识别·字符识别
倔强青铜三5 小时前
苦练Python第66天:文件操作终极武器!shutil模块完全指南
人工智能·python·面试
倔强青铜三5 小时前
苦练Python第65天:CPU密集型任务救星!多进程multiprocessing模块实战解析,攻破GIL限制!
人工智能·python·面试
强哥之神5 小时前
浅谈目前主流的LLM软件技术栈:Kubernetes + Ray + PyTorch + vLLM 的协同架构
人工智能·语言模型·自然语言处理·transformer·openai·ray
zskj_qcxjqr5 小时前
七彩喜艾灸机器人:当千年中医智慧遇上现代科技
大数据·人工智能·科技·机器人
Wnq100725 小时前
如何在移动 的巡检机器人上,实现管道跑冒滴漏的视觉识别
数码相机·opencv·机器学习·计算机视觉·目标跟踪·自动驾驶
Zack_Liu6 小时前
深度学习基础模块
人工智能·深度学习