最近在看一些集成学习方面的知识,其中南京大学的周志华教授写的几篇关于集成学习综述性的文章还不错。看了下对集成学习有了一个初步的了解,如下:
集成学习是机器学习中一个非常重要且热门的分支,是用多个弱分类器构成一个强分类器,其哲学思想是“三个臭皮匠赛过诸葛亮”。一般的弱分类器可以由决策树,神经网络,贝叶斯分类器,K-近邻等构成。已经有学者理论上证明了集成学习的思想是可以提高分类器的性能的,比如说统计上的原因,计算上的原因以及表示上的原因。
一、集成学习中主要的3个算法为:boosting,bagging,stacking.
其中boosting的弱分类器形成是同一种机器学习算法,只是其数据抽取时的权值在不断更新,每次都是提高前一次分错了的数据集的权值,最后得到T个弱分类器,且分类器的权值也跟其中间结果的数据有关。
Bagging算法也是用的同一种弱分类器,其数据的来源是用bootstrap算法得到的。
Stacking算法分为2层,第一层是用不同的算法形成T个弱分类器,同时产生一个与原数据集大小相同的新数据集,利用这个新数据集和一个新算法构成第二层的分类器。
二、 集成学习有效的前提:1.每个弱分类器的错误率不能高于0.5。2.弱分类器之间的性能要有较大的差别,否则集成效果不是很好。
三、 集成学习按照基本分类器之间的关系可以分为异态集成学习和同态集成学习。异态集成学习是指弱分类器之间本身不同,而同态集成学习是指弱分类器之间本身相同只是
参数不同。
四、 怎样形成不同的基本分类器呢?主要从以下5个方面得到。
- 基本分类器本身的种类,即其构成算法不同。
- 对数据进行处理不同,比如说boosting,bagging,stacking, cross-validation,hold-out test.等。
- 对输入特征进行处理和选择
- 对输出结果进行处理,比如说有的学者提出的纠错码
- 引入随机扰动
五、 基本分类器之间的整合方式,一般有简单投票,贝叶斯投票,基于D-S证据理论的整合,基于不同的特征子集的整合。
六、 基础学习性能的分析方法主要有bias-variance分析法
七、 目前有的一般性实验结论:
Boosting方法的集成分类器效果明显优于bagging,但是在某些数据集boosting算法的效果还不如单个分类器的。
使用随机化的人工神经网络初始权值来进行集成的方法往往能够取得和bagging同样好的效果。
Boosting算法一定程度上依赖而数据集,而bagging对数据集的依赖没有那么明显。
Boosting算法不仅能够减少偏差还能减少方差,但bagging算法智能减少方差,对偏差的减少作用不大。
八、未来集成学习算法的研究方向:
- 集成学习算法的可理解性要提高。
- 怎样构造有差异的基础分类器。
- 与SVM的结合。
- 提高boosting的鲁棒性,即降低其对噪声的敏感。
- 完善出集成学习的一般理论框架。
九、参考文献:
Zhou, Z.-H. (2009). "Ensemble." Encyclopedia of Database Systems,(Berlin: Springer): 988-991.
Zhou, Z.-H. (2009). "Boosting." Encyclopedia of Database Systems,(Berlin: Springer): 260-263.
Zhou., Z.-H. (2009). "Ensemble learning." Encyclopedia of Biometrics(Berlin: Springer): 270-273.
廖英毅 "集成学习综述." soft.cs.tsinghua.edu.cn/~keltin/docs/ensemble.pdf.