(本科)第12章-随机森林.pdf
《(本科)第12章-随机森林.pdf》由会员分享,可在线阅读,更多相关《(本科)第12章-随机森林.pdf(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、(c) 2020,陈强,机器学习及 R 应用,高等教育出版社 1 第第 12 章章 随机森林随机森林 第 12-13 章介绍集成学习(ensemble learning ),也为“组合学习” 。 12.1 集成学习集成学习 集成学习的基本问题:如果有一些预测效果一般的“弱学习器”(weak learner),能否以某种方式将它们组合起来,构成一个预测效果优良的“强学习器”(strong learner)? 集成学习的思路类似于 “三个臭皮匠, 顶个诸葛亮”(wisdom of crowds) 。 用于集成学习的弱学习器,也称为“基学习器”(base learner)。 (c) 2020,陈强,
2、机器学习及 R 应用,高等教育出版社 2 决策树是最常见的基学习器。 给定数据与算法,则监督学习的估计结果是基本确定的(可能由于随机分组的不同而略有差异),这可表示为 数据算法结果 (12.1) 怎么才能得到不同结果呢? 一种方法是,给定数据,但使用不同的算法,然后将所得的不同结果组合在一起;比如加权平均,而权重以交叉验证来确定。 (c) 2020,陈强,机器学习及 R 应用,高等教育出版社 3 以回归问题为例,假设共有三种不同的算法(比如线性回归、KNN 与决策树),其预测结果分别为1( )f x,2( )fx与3( )f x;则集成算法的最终预测结果为 1 122123( )( )( )(
3、1)( )ffffxxxx (12.2) 其中,10,20,且121。最优调节参数1与2可通过交叉验证来确定。 由于算法1( )f x,2( )fx与3( )f x皆为集成算法( )f x的特例, 故( )f x的预测效果肯定优于(至少不差于)这三种单独的算法。 (c) 2020,陈强,机器学习及 R 应用,高等教育出版社 4 类似地,对于分类问题,则可将不同算法的预测结果,进行加权求和,按多数票规则投票;而投票权重可通过交叉验证确定。 集成学习的另一方式为,给定算法(比如以决策树的 CART 算法为基学习器),然后“搅动数据” ,得到不同的决策树模型,再组合在一起,即所谓“Perturb +
4、 Combine”的模式。 本章介绍的装袋法与随机森林属于这种方式。 (c) 2020,陈强,机器学习及 R 应用,高等教育出版社 5 12.2 装袋法装袋法 Breiman(1996)提出“装袋法”(bootstrap aggregating,简记 bagging)。 装袋法使用“自助法”(bootstrap)来搅动数据。所谓自助法,是一种有放回的再抽样方法(resampling with replacement)。装袋法的具体步骤如下。 首先,对训练数据进行有放回的再抽样,得到B个自助样本(bootstrap samples),比如500B 。其中,第b个自助样本可写为 *1,1,nbbi
5、iiybBx (12.3) 其中,上标星号“*”表示自助样本。每个自助样本的样本容量均为n(样本容量不变)。 (c) 2020,陈强,机器学习及 R 应用,高等教育出版社 6 其次, 根据自助样本*1,Bbbiibyx估计B棵不同的决策树, 不进行修枝。记其预测结果为 *( ) ,1,bfbBx (12.4) 最后,对于回归树,将B棵决策树的预测结果进行平均: *11( )( )BbbagbffBxx (12.5) (c) 2020,陈强,机器学习及 R 应用,高等教育出版社 7 对于分类树,则将B棵决策树的预测结果进行多数投票(majority vote),得票最多的类别胜出: *1,1(
6、)argmax( )BbbagyKbfI yfxx (12.6) 其中,假设1,yK,共分为K类。( )I 为示性函数(indicator function),判断是否“*( )byfx” ;如果是,则记为 1,否则记为 0。 通过多数票, 将许多弱分类器进行组合, 即所谓 “combining many weaker classifiers to produce a powerful committee” 。 (c) 2020,陈强,机器学习及 R 应用,高等教育出版社 8 由于装袋法把很多自助样本(bootstrap samples)的估计结果汇总(aggregating),故名“boot
7、strap aggregating” 。 12.3 装袋法的原理装袋法的原理 由于 bagging 将很多决策树进行平均, 故可降低估计量的方差(variance),从而提高模型的预测准确率。 例如,假设随机变量1,nzz为独立同分布(iid),而方差为2,则样本均值11niizzn的方差可缩小n倍: (c) 2020,陈强,机器学习及 R 应用,高等教育出版社 9 221111Var( )VarVar( )nniiiizzznnn (12.7) 其中,由于1,nzz相互独立,故上式中的协方差均为 0,而所有2Var( )iz(同分布)。 另一方面,由于装袋法并不修枝,而让决策树尽情生长,故可
8、降低每棵决策树的偏差(bias);然后,通过 bagging 来控制方差(variance)。 在一定条件下,装袋法可以同时降低偏差与方差,故可减小均方误差(MSE)或总误差。 (c) 2020,陈强,机器学习及 R 应用,高等教育出版社 10 Breiman(1996)使用若干标准的机器学习数据集, 发现与单棵决策树相比,bagging 可显著降低测试误差。 应该在什么情况下使用装袋法? Bagging 特别适用于方差较大的不稳定估计量(unstable estimators), 比如决策树、线性回归的变量子集选择(subset selection)等。 对于不稳定估计量,当样本数据轻微扰动
9、时(比如换一个样本,或使用子样本),则可能引起估计结果较大的变化。 比如,当数据轻微变化时,所得决策树结构可能发生较大改变。 (c) 2020,陈强,机器学习及 R 应用,高等教育出版社 11 又比如,当用线性回归进行变量子集选择时,所选变量也对样本数据比较敏感,并不稳健。 另一方面,bagging 对于方差较小的稳定估计量(stable estimators),比如KNN,则作用不大。对于 KNN 而言,即使搅动数据,一般也不会对附近K近邻的平均结果产生明显影响。 由于单棵决策树为分段常值函数(piecewise constant function),故并不连续。 将许多决策树进行平均,则可
10、得到更为连续的回归函数或决策边界,从而提高预测性能。 (c) 2020,陈强,机器学习及 R 应用,高等教育出版社 12 以第 10 章的摩托车撞击实验数据集 mcycle 为例。 首先,估计单棵回归树,并画所估函数,结果参见图 12.1: library(rpart) fit pred plot(mcycle$times,mcycle$accel,xlab=Time, ylab=Acceleration, main=Single Tree Estimation) lines(mcycle$times,pred,col=blue) (c) 2020,陈强,机器学习及 R 应用,高等教育出版社
11、13 图 12.1 单棵决策树所估计的回归函数 (c) 2020,陈强,机器学习及 R 应用,高等教育出版社 14 从图 12.1 可见,单棵决策树所估计的回归函数为“阶梯函数”(step function),并不连续。 虽然回归树抓住了数据变化的主要特征, 但在细节上比较粗糙, 存在 “欠拟合”(underfit)。 下面使用 R 包 randomForest 的 randomForest()函数进行装袋法估计,结果参见图 12.2: (c) 2020,陈强,机器学习及 R 应用,高等教育出版社 15 install.packages(randomForest) library(random
12、Forest) set.seed(1) fit pred plot(mcycle$times,mcycle$accel,xlab=Time, ylab=Acceleration,main=Bagging Estimation) lines(mcycle$times,pred,col=blue) 以上 R 代码的解释,参见第 12.8 节的 R 案例。 (c) 2020,陈强,机器学习及 R 应用,高等教育出版社 16 图 12.2 装袋法所估计的回归函数 (c) 2020,陈强,机器学习及 R 应用,高等教育出版社 17 图 12.2 显示,虽然 bagging 所估计的回归函数依然不太光滑,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科 12 随机 森林
限制150内