本文主要是介绍机器学习理论 | 周志华西瓜书 第八章:集成学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第八章 集成学习
此系列文章旨在提炼周志华《机器学习》的核心要点,不断完善中…
8.1 个体与集成
- 集成学习的一般结构
- 示意图
- 个体学习器(individual learner)
- 基学习器(base learner)
同质(homogenous)集成:集成中只包含同种类型的个体学习器
基学习器——同质集成中的个体学习器
基学习算法(base learning algorithm)——相应的学习算法 - 组建学习器(component learner)
异质(heterogenous)集成:集成中包含不同类型的个体学习器
同质集成中的个体学习器亦称“组建学习器”或直接称为个体学习器
- 基学习器(base learner)
- 示意图
- 弱学习器(weak learner)(泛化性能略优于随机预测的学习器)
- 集成学习的很多理论研究都是针对弱学习器进行的,而基学习器有时也被直接称为弱学习器
- 如何选择集成学习的个体——集成个体“好而不同”
- 假设基分类器的错误率为(对每个基分类器hi): P ( h i ( x ) = f̸ ( x ) ) = ε P(h_i(\bm x) =\not f(\bm x))=\varepsilon P(hi(x)=f(x))=ε
二分类的判定准则: H ( x ) = s i g n ( ∑ i = 1 [ T / 2 ] h i ( x ) ) H(\bm x)=sign(\sum_{i=1}^{[T/2]}h_i(\bm x)) H(x)=sign(∑i=1[T/2]hi(x))
假设基分类器的错误率相互独立,则由Hoeddcling不等式可知,集成的错误率为: P ( H ( x ) = f̸ ( x ) ) = ∑ k = 0 [ T / 2 ] C T k ( 1 − ε ) k ε T − k ≤ e x p ( − 1 2 T ( 1 − 2 ε ) 2 ) P(H(\bm x)=\not f(\bm x))=\sum_{k=0}^{[T/2]}C_T^k(1-\varepsilon)^k\varepsilon^{T-k}≤exp(-\frac 1 2 T(1-2\varepsilon)^2) P(H(x)=f(x))=k=0∑[T/2]CTk(1−ε)kεT−k≤exp(−21T(1−2ε)2)
- 集成学习大类(根据个体学习器的生成方式)
- 1)Boosting为代表
个体学习器间存在强依赖关系
必须串行生成的序列化方法 - 2)Bagging和随机森立为代表
个体学习器间不存在强依赖关系
可同时生成的并行化方法
- 1)Boosting为代表
8.2 Boosting
- 特点与工作机制
定义:Boosting是一族可将弱学习器提升为强学习器的算法
关注:Boosting主要关注降低偏差
工作机制- 1.初始训练集训练->基学习器
- 2.根据基学习器的表现->调整样本分布->使得先前基学习出错的训练样本在后续受到更多关注
- 3.基于调整后的样本分布来训练下一个基学习器
- 4.重复进行,直至基学习器数目达到事先指定的值T
- 5.将这T个基学习器进行加权结合
- 代表算法—AdaBoost
1)主要推导:基于加性模型(additive model)(基学习器的线性组合): H ( x ) = ∑ t = 1 T a t h t ( x ) , H(\bm x)=\sum_{t=1}^Ta_th_t(\bm x), H(x)=∑t=1Tatht(x),来最小化指数损失函数: l e x p ( H ∣ D ) = E x ∼ D [ e − f ( x ) H ( x ) ] l_{exp}(H|D)=\mathbb{E}_{\bm x\sim \mathcal{D}}[e^{-f(\bm x)H(\bm x)}] lexp(H∣D)=Ex∼D[e−f(x)H(x)]
2)算法
3)两种方法
重赋权法(re-weighting):训练过程的每一轮中,根据样本分布为每个训练样本重新赋予一个权重
重采样法(re-sampling):每一轮学习中,根据样本分布对训练集重新采样,再用重采样而得的样本集对基学习器进行训练
8.3 Bagging与随机森林
8.3.1 Bagging(Bootstrap AGGregatING)
- 介绍
并行式集成学习方法代表,基于自助采样法(bootstrap sampling)
基本流程:采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合
对预测输出进行结合
主要关注:降低方差- 分类任务:简单投票法(相同:随机或考察置信度)
- 回归任务:简单平均法
- 算法描述
具体算法
高效的集成学习算法,标准AdaBoost只适用于二分类任务,Bagging能不经修改地用于对分类、回归等任务 - 包外估计(out-of-bag estimate)
自助采样原理:36.8%包外估计
未使用x训练的基学习器在x上的预测:
H o o b ( x ) = a r g m a x y ∈ Y ∑ t = 1 T I ( h t ( x ) = y ) ∗ I ( x ∉ D t ) H^{oob}(\bm x)=arg\ max_{y\in \mathcal{Y}}\sum_{t=1}^T\mathbb{I}(h_t(\bm x)=y)*\mathbb{I}(\bm x\notin D_t) Hoob(x)=arg maxy∈Yt=1∑TI(ht(x)=y)∗I(x∈/Dt)
Bagging泛化误差的包外估计:
ε o o b = 1 ∣ D ∣ ∑ ( x , y ) ∈ D I ( H o o b ( x ) = y̸ ) \varepsilon^{oob}=\frac 1 {|D|}\sum_{(\bm x,y)\in D}\mathbb{I}(H^{oob}(\bm x)=\not y) εoob=∣D∣1(x,y)∈D∑I(Hoob(x)=y)
包外估计其他用途- 基学习器为决策树:使用包外样本辅助剪枝
- 用于估计决策树中各结点的后验概率以辅助对零样本结点的处理
- 基学习器为神经网络:使用包外样本辅助early stop减小过拟合风险
8.3.2 随机森林(RF, Random Forest)
- 1)介绍:Bagging的一个扩展变体——进一步在决策树的训练过程中引入了随机属性选择
- 对基决策树每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分
- 参数k控制随机性的引入程度
k=d,基决策树的构建与传统决策树相同
k=1,随机选择一个属性用于划分
一般情况:推荐值:k=log2d
- 2)RF与Bagging对比
RF收敛性与Bagging相似
RF起始性能往往较差(尤其当集成中只包含一个基学习器时)
随着个体学习器数目的增加,随机森林通常会收敛到更低的泛化误差
RF训练效率优于Bagging(只需考察一个属性子集)
8.4 结合策略
8.4.1 学习器结合的好处
统计方面:减少泛化性能不佳的风险
计算方面:降低陷入糟糕局部极小点的风险
表示的方面:学得更好的近似
8.4.2 基学习器结合的常见策略
- 平均法(averaging):对数值型输出hi(x)最常见的结合策略
- 简单平均法(个体学习器性能相近)
H ( x ) = 1 T ∑ i = 1 T h i ( x ) H(\bm x)=\frac 1 T\sum_{i=1}^Th_i(\bm x) H(x)=T1i=1∑Thi(x) - 加权平均法(集成学习研究基本出发点,个体学习器性能相差较大时采用)
H ( x ) = ∑ i = 1 T w i h i ( x ) , 权 重 : w i ≥ 0 , ∑ i = 1 T w i = 1 H(\bm x)=\sum_{i=1}^Tw_ih_i(\bm x),权重:w_i≥0,\sum_{i=1}^Tw_i=1 H(x)=i=1∑Twihi(x),权重:wi≥0,i=1∑Twi=1
- 简单平均法(个体学习器性能相近)
- 投票法(voting):对分类任务来说最常见的结合策略
- 绝对多数投票法:标记过半数即为该标记,否则拒绝
- 相对多数投票法:多个最高票随机选
- 加权投票法
- 现实任务:不同类型个体学习器可能产生不同类型的h(x),不可混用
- 学习法:训练数据很多时更强大的结合策略,通过另一个学习器来进行结合
- 典型代表:Stacking
个体学习器——初级学习器
用于结合的学习器——次级学习器/元学习器(meta-learner) - Stacking算法描述
- 次级学习器的输入属性表示和次级学习算法对Stacking集成的泛化性能有很大影响
将初级学习器的输出类概率作为次级学习器的输入属性
多响应线性回归(Multi-response Linear Regression MLR)作为次级学习算法效果较好
在MLR中使用不同的属性集更佳 - 贝叶斯模型平均(Bayes Model Averaging BMA)与stacking对比
理论:数据生成模型恰在当前考虑的模型中,且噪声小,则BMA不差于Stacking
现实中:无法确保数据生成模型一定在当前考虑的模型中甚至难以近似,Robust:Stacking>BMA(对误差敏感)
- 典型代表:Stacking
8.5 多样性
- 误差-分歧分解(error-ambiguity decomposition)
- 基本算式(全样本上):
∑ i = 1 T w i ∫ A ( h i ∣ x ) p ( x ) d x = ∑ i = 1 T w i ∫ E ( h i ∣ x ) p ( x ) d x − ∫ E ( H ∣ x ) p ( x ) d x \sum_{i=1}^Tw_i\int A(h_i|\bm x)p(\bm x)d\bm x=\sum_{i=1}^Tw_i\int E(h_i|\bm x)p(\bm x)d\bm x-\int E(H|\bm x)p(\bm x)d\bm x i=1∑Twi∫A(hi∣x)p(x)dx=i=1∑Twi∫E(hi∣x)p(x)dx−∫E(H∣x)p(x)dx
E = E ˉ − A ˉ E=\bar{E}-\bar{A} E=Eˉ−Aˉ
集成泛化误差: E = ∫ E ( H ∣ x ) p ( x ) d x E=\int E(H|\bm x)p(\bm x)d\bm x E=∫E(H∣x)p(x)dx
个体学习器hi在全样本上的泛化误差: E i = ∫ E ( h i ∣ x ) p ( x ) d x E_i=\int E(h_i|\bm x)p(\bm x)d\bm x Ei=∫E(hi∣x)p(x)dx
个体学习器hi在全样本上的分歧项: A i = ∫ A ( h i ∣ x ) p ( x ) d x A_i=\int A(h_i|\bm x)p(\bm x)d\bm x Ai=∫A(hi∣x)p(x)dx
个体学习器泛化误差的加权均值: E ˉ = ∑ i = 1 T w i E i \bar{E}=\sum_{i=1}^Tw_iE_i Eˉ=∑i=1TwiEi
个体学习器的加权分歧值: A ˉ = ∑ i = 1 T w i A i \bar{A}=\sum_{i=1}^Tw_iA_i Aˉ=∑i=1TwiAi - 现实任务很难直接对E右边式子简化
定义在整个样本空间
个体学习器的加权分歧值不是一个可直接操作的多样性度量 - 推导只适合回归学习,难以推广与分类
- 基本算式(全样本上):
- 多样性度量(diversity measure)
- 基本:预测结果列联表
- 不合度量(disagreement measure)
值域[0,1],值大多样性大: d i s i j = b + c a + b + c + d dis_{ij}=\frac{b+c}{a+b+c+d} disij=a+b+c+db+c - 相关系数(correlation coefficient)
值域[-1,1],衡量 h i h_i hi与 h j h_j hj相关性: ρ i j = a d − b c ( a + b ) ( a + c ) ( c + d ) ( b + d ) \rho_{ij}=\frac{ad-bc}{\sqrt{(a+b)(a+c)(c+d)(b+d)}} ρij=(a+b)(a+c)(c+d)(b+d)ad−bc - Q-统计量(Q-statistic)
与相关系数符号相同,绝对值≤相关系数绝对值: Q i j = a d − b c a d + b c Q_{ij}=\frac {ad-bc}{ad+bc} Qij=ad+bcad−bc - k统计量(k-statistic)
分类器hi、hj在D完全一致;若偶然,k=0,k通常非负,只在达成一致概率低于偶然取负值: K = P 1 − P 2 1 − P 2 ; P 1 = a + d a + b + c + d ; P 2 = ( a + b ) ( a + c ) + ( c + d ) ( b + d ) ( a + b + c + d ) 2 \mathcal{K}=\frac{P_1-P_2}{1-P_2};P_1=\frac{a+d}{a+b+c+d};P_2=\frac{(a+b)(a+c)+(c+d)(b+d)}{(a+b+c+d)^2} K=1−P2P1−P2;P1=a+b+c+da+d;P2=(a+b+c+d)2(a+b)(a+c)+(c+d)(b+d)
- 多样性增强
- 数据样本扰动
对不稳定基学习器很有用:决策树、神经网络
对稳定学习器作用不大:线性学习器、支持向量机、朴素贝叶斯、k近邻学习器等 - 输入属性扰动
随机子空间(random subspace)算法
- 输出表示扰动
翻转法(Flipping Output):随机改变一些训练样本的标记
输出调制法(Output Smearing):将分裂输出转化为回归输出后构建个体学习器
ECOC法:利用纠错输出码将多分类任务拆解为一系列二分类任务来训练基学习器 - 算法参数扰动
负相关法(Negative Correlation):显式地通过正则化项来强制个体神经网络使用不同的参数
对参数较少的算法,可通过将其学习过程中某些环节用其他类似方式代替,从而扰动
- 数据样本扰动
这篇关于机器学习理论 | 周志华西瓜书 第八章:集成学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!