11. 随机森林

随机森林
随机森林(Random Forest)算法是基于单棵决策树的改进,将多个弱分类器组合成一个强分类器,其用到了集成学习bagging的思想。
基本思想
随机森林顾名思义,是用随机的方式建立一个森林,森林里面有很多棵决策树组成。其随机体现在针对每棵树,按比例随机抽选样本,随机抽选特征,然后进行训练,这也是bagging思想的体现。

做一个形象的比喻:你想要购买几只基金,但是你自己不知道怎么去挑选,于是你就去找了专家咨询了。做两个假设:
1.假定每个专家对不同领域的基金有独特的见解,有人擅长期货,有人擅长货币,有人擅长QDII,还有人会玩比特币,因此每个专家所对应的基金池也有所不同。
2.再假设每个专家判断基金的信息来源也不同,影响一支基金走势的好坏有很多,例如国家政策,经济形势,或一些不对称内部信息来源。

每个专家都根据自己所获取到的信息进行分析,生成一套自己的分析理论,这就是生成了单棵决策树。你带着几支基金去找他们,把你所知道的各种关于这些基金的信息告诉他们,这就是测试集和特征。他们根据自己的分析理论来帮你判断这几支基金是买还是不买,这就是二分类预测问题。最后你再根据他们每个任何给你的推荐意见多数投票,确定这几支基金哪些该买哪些不买,到此你的咨询就结束啦。

在这个例子中,每个专家擅长的基金类型对应的基金池就是单棵决策树随机抽选的样本,用于判断基金好坏的信息就是树随机抽选的特征。多个不同领域的专家最后联合推荐,最后总能挑选到一支比较好的基金,前提是样本空间和特征空间都足够充分,专家数量也一定多。
基础知识
随机森林是基于单棵决策树所做改进的,决策树有C4.5,ID3和CART三种类型。接下来要补充的两点是假设大家都已经弄明白单棵决策树是怎么回事的情况下进行的,如果不懂得话可以上网翻翻其他博客,有很多有很细致的讲解。

(1)为什么要随机抽选训练集?
不随机抽样,每棵树的训练集一样没有意义,但是随机抽取不排除有训练集相同或重叠量极高的情况,但是这种情况在大样本情况下是极低概率事件。就像我们要找的是懂不同领域基金的专家做咨询,没必要找几个涉及领域完全一样的专家,这样工作就重复了。

(2)为什么要又放回抽样?
这个问题可以这样理解,随机森林的最后一步是多数投票。如果每棵树的样本都不一样,那么每棵树都是有偏的,还会导致以下问题:
1.多数投票时,每棵树的投票结果没有重合,无法做到“求同”;
2.一个专家对一个样本的理解可能不够充分,因为他只选择了部分特征,多个专家都根据不同特征分析一下可能效果会比较好;

(3)关于随机特征数的选择?
在挑选特征的时候,原样本空间特征维度为M,指定一个常数m << M,每棵树选择特征树为m,这样可以让每棵树尽最大程度的生长,不用剪枝。

(4)为什么随机森林能生成泛化误差无偏估计?
为了选择最优的m,这里需要利用到的是袋外错误率oob(out-of-bag error)。在构建每棵决策树的时候,采用的是随机放回抽取,这在上面也提到了,所以对每棵树来说,都有一些样本实例没有参与树的生成,这些样本称为袋外样本,即oob。所以我们需要做一下oob估计,仍然以基金举例:
1.对每支基金,让不擅长这支基金的专家也来分析一下它到底该不该买;
2.不擅长的专家多数投票作为该基金分类结果;
3.用错误估计基金数目占基金总数比例作为oob误分率;
oob误分率即是随机森林泛化误差的一个无偏估计,它的结果近似于需要大量k折交叉验证。它可以再内部进行评估,也就是在生成过程中建立一个对误差的无偏估计。
当知道oob计算方法之后,我们可以选择不同的m计算oob error,找出oob error最小时对应m的值。

(5)最后解释一下多数投票?
假设你有一只基金,十个人中6个告诉你这支基金有毒,3个人怂恿你买,1个人弃权,你当然是选择不买啦。
关键与特点
随机森林在近年来的数据挖掘竞赛类似Kaggle,阿里天池都运用得很广泛,是一种很实用的方法,它有以下特点:
1.在当前所有算法中,具有极好的准确率;
2.能够有效运行在大数据集上,易于并行化;
3.能够处理高维特征输入样本,不需要降维;
4.能够评估特征在分类问题上的重要性;
5.在生成过程中,能获取到内部生成误差的无偏估计;
6.对于大量missing data出现的情况下也可以得到较好的结果;
实例讲解
下面讲解一个实例,具体操作一下。
假设现在你带着三支基金A,B,C 去找老王,老张,老李,老郭,这几个你认识的人咨询一下是否A,B,C基金值得你花老本去投资,毕竟程序员赚钱都没日没夜辛辛苦苦的血汗钱。

下面介绍一下几个人物:
老王:量化分析师,在某XX私募,有丰富的信息来源和擅长借助代码工具分析各种以往走势来得出结论。
老张:业余爱好者1,股龄10年,赚了一些小钱,很有经验,有自己的一些经验,对时政敏感。
老李:大学生,主修金融,兼修计算机,大一开始用奖学金投资,在Uqer实盘操作大赛曾获奖,擅长看K线图等乱七八糟的图。
老郭:打酱油的...

注:王,张,李,郭四个人都有一些比较丰富的实盘经历(训练集),已有自己的分析体系(决策树)。

在你咨询过他们之后,他们根据自己的判断体系得出了以下结论,分析过程省略一千字,然后你把他们的结论列成了一张表格,0代表不买,1代表买,x代表不擅长该类:
A B C
老王 1 0 x
老张 1 1 0
老李 1 0 x
老郭 0 x 0

最终你得出了结论:A要买,BC不买。

以上故事纯属虚构,如有雷同必定巧合。到此,随机森林就愉快的结束了。

参考文献
1.Random Forest -- Leo Breiman and Adele Culter
2.https://www.cnblogs.com/maybe2030/p/4585705.html#top
3.http://blog.csdn.net/wishchin/article/details/52515516

posted @ 2018-03-06 20:47  inpluslab-dataplayer  阅读(981)  评论(0编辑  收藏  举报