机器学习——集成学习

一、个体与集成

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

  集成学习的一般结构:

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

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

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

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

  在一个二分类任务中,假定三个分类器在三个测试样本上的表现如上图所示,其中√表示分类正确,×表示分类错误,集成学习的结果通过投票法产生,即"少数服从多数"。图(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%的样本出现在采样集中。

相关推荐
武子康2 小时前
调查研究-186 LangChain 和 LangGraph 的区别:从快速构建 Agent 到生产级工作流编排
人工智能·langchain·llm
武子康2 小时前
调查研究-185 CodeGraph 调研:给 AI 编程 Agent 一张代码库地图,少一点反复 grep(2026)
人工智能·openai·claude
aqi003 小时前
15天学会AI应用开发(八)使用向量数据库实现RAG功能
人工智能·python·大模型·ai编程·ai应用
混沌福王5 小时前
Electron三端统一架构:运行时Adapter、IPC能力边界与分层设计
人工智能·agent·ai编程
说了很好5 小时前
马尔可夫扩散链+损失函数推导,手把手实现原生Diffusion
人工智能
聂二AI落地内参5 小时前
合同抽取别停在 JSON:标准规则和交易日历才是硬仗
人工智能
冬哥聊AI5 小时前
滴滴Agent岗二面:RAG 系统的 LLM 幻觉怎么治?从两类根源讲到四道防线
人工智能
lyshlc5 小时前
# AI Agent的推迟判定协议:不确定性下的最优策略
人工智能
用户329901675055 小时前
用zod在运行时兜住AI返回的JSON
人工智能