p171 - p196
今天是开销很大的一天= =
第八章 集成学习
8.1 个体与集成
集成学习通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统,基于委员会的学习等。
如果集成的学习器种类相同,则称这样的集成是“同质”的。
同质集成中的个体学习器亦成为“基学习器”,相应的学习算法称为“基学习算法”。
集成也可以是“异质”的。
集成学习通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化性能。这对“弱学习器”尤为明显。
因此集成学习的很多理论都是针对弱学习器进行的。
要获得好的集成,个体学习器应“好而不同”。(举例p172)
假设基分类器的错误率相互独立,集成的错误率随着分类器的数目增大而指数级下降。
但实际上假设是不现实的,且准确性和多样性往往就存在着冲突。
事实上,如何产生并结合“好而不同”的个体学习器,恰是集成学习研究的核心。
根据个体学习器生成方式,目前的集成学习大致分为两大类:
1)个体学习器间存在强依赖关系,必须串行生成的序列化方法。
如Boosting
2)不存在强依赖关系,可同时生成的并行化方法。
如Bagging,随机森林。
8.2 Boosting
Boosting将弱学习器提升为强学习器。
工作机制:
先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续获得更多关注,然后基于调整后的样本分布来训练下一个基学习器,如此重复进行,直到学习器数量达到T,之后加权组合这T个学习器。
AdaBoost:
算法伪码 p174 图8.3
使用基学习器的线性组合来最小化指数损失函数。
经p174数学验证,指数损失函数最小化就意味着分类错误率的最小化。
且指数函数具有很好的数学性质,所以用他代替0/1损失函数作为优化目标。
Boosting要求基学习器能对特定的数据分布进行学习
这可通过“重赋权法”实施,即在训练过程的每一轮中,根据样本分布为每个训练样本重新赋予一个权重。
而对无法接受带权样本的基学习算法,可采用“重采样法”来进行处理:
即在每一轮学习中,根据样本分布对训练集重新采样,再用重采样而得的样本集对基学习器进行训练。
同时,Boosting算法在训练每一轮都要检查生成的基学习器是否满足基本条件(如是否比随机猜要好?)。
这时,若无法达到T个,则采用重采样法进行处理。
标准AdaBoost只适用于二分类。
8.3 Bagging与随机森林
“基学习器”独立难达到,但我们可以尽量让他们有差异。
可以将数据集划分,一部分训练一个。
但这样又有可能不准。
解决方案:考虑使用相互有交叠的采样子集。
8.3.1 Bagging
并行式集成学习算法中最著名的代表。
直接基于2.2.3中的自助采样法。
自助采样生成T个含m个训练样本的采样集,然后训练出T个学习器,对T个组合之。
对一切投票/平均相等,采用最简单方法,或参考置信度。。
训练一个Bagging是很高效的,与直接使用基学习算法训练一个学习器的复杂度同阶。
8.3.2 随机森林(RF)
是Bagging的一个扩展变体。
以决策树为基学习器构建Bagging集成。
并在决策树的训练过程中引入了随机属性选择。
在RF中,对基决策树的每个节点,先从该结点的属性集合中随机选择一个包含k个属性的子集,再从自己中选一个用于划分。
k控制了随机性。
RF在很多任务中,性能强大。
RF的训练效率常优于Bagging。
8.4 结合策略
现在有T个学习器,咋结合?
8.4.1 平均法
分简单平均与加权平均
一般而言,在个体学习器性能相差较大时宜采用加权平均,相近时采用简单平均。
8.4.2 投票法
分类任务常用的结合策略。
分为绝对多数投票法(过半才行,否则放弃),相对多数投票法(最多的),加权投票。
8.4.3 学习法
训练数据较多时,更强大的结合策略:
“学习法”,即通过另一个学习器来进行结合。
个体学习器,称为初级学习器
用于结合的学习器,称为次级学习器或元学习器。
学习法的典型代表:Stacking
8.5 多样性
8.5.1 误差-分歧分解
用数学推理论证了“准且多样”的正确性。
p185 - 186
8.5.2 多样性测量
用于度量集成中个体分类器的多样性。
典型做法是考虑个体分类器的两两不相似性。
给出列联表(见p187 )
给出了一些常见的多样性度量及公式。(p187)
不合度量、相关系数、Q-统计量、k-统计量。
8.5.3 多样性增强
如何增强多样性呢?
一般思路是在学习过程中引入随机性。
数据样本扰动
对于“不稳定基学习器”有效:如决策树、神经网络
“稳定基学习器”就效果不大:线性、SVM、朴素贝叶斯、knn。
输入属性扰动
从不同的属性子空间来训练。
网友评论