随机森林介绍

前面的一篇博客:分类算法之决策树 介绍了决策树算法,从介绍中可以发现,决策树有些与生俱来的缺点:

1:分类规则复杂

决策树算法在产生规则的时候采用局部贪婪法。每次都只选择一个属性进行分析构造决策树,所以再产生的分类规则往往相当复杂。

2:收敛到非全局的局部最优解

ID3算法每次在树的某个层次进行属性选择时,它不再回溯重新考虑这个选择,所以它容易产生盲人登山中常见的风险,仅仅收敛到非全局的局部最优解。

3:过度拟合

在决策树学习中,由于分类器过于复杂,它可能会过于适应噪声,从而导致过度拟合问题。

 

为了克服以上的缺点,引入了另外一个预测模型-----随机森林

 

一:森林思想

单个的决策树可以按照一定的精度分类,为了提高精度,一种比较容易想到的方法就是种植一片森林,并让所有的树都参加投票,选出投票最多的分类标签。

下面举例说明:

我们根据历史数据建立起了一片由决策树组成的森林,下面我们要根据某个用户的特征来分析他是否会购买某件商品,分类标签只有两类:yes no。

假设100棵决策树中有90棵树给它贴的标签为yes,10棵给它贴的标签为no,那我们最后就选择标签yes.这样就避免了一棵树说了算的局面。

 

二:随机思想

随机森林的随机体现在它的每棵决策树的构造过程

随机森林的构造方法有很多,下面以bagging方法举例:

1:假设原始样本数为N,用bootstrap方法从N样本中获取构造每棵决策树的训练集。

bootstrap方法的实质就是一种自助法,一种非参数统计的方法:对观察的信息(这里指原始的样本)进行N次随机的可重复的采样,以此来获取构造每棵决策树的训练集。Bootstrap充分利用了给定的观测信息,不需要模型、其他假设和增加新的观测,并有稳定性和效率高的特点。

2:如果样本信息有M个属性,每次随机的从M个属性中选择m个属性来进行建树(建树过程跟普通决策树过程一样),其中m<<M.

3:这样每棵树的叶子节点,要么是无法继续分裂,要么里面的所有样本都指向同一个分类标签。

有了上面的随机性,这样建立起来的每一棵决策树都不会出现过度拟合的现象,也不需要裁枝处理。

小结:这样每一棵决策树就是一位精通某一领域(m个features)的专家,在随机森林中就有了很多精通不同领域的专家,对一个新问题,可以从不同的角度来观察,最终由各个专家,投票得到结果。

 

三:随机森林的特征

1:在现有算法中,随机森林算法的精度是无可比拟的。

2:随机森林能够高效处理大数据集。

3:随机森林可以处理成千上万的输入属性。

4:随机森林在分类的应用中可以计算出不同变量属性的重要性。

5:在构建随机森林的过程中可以产生一个关于泛化误差的内部无偏估计。

6:当大量数据缺失的时候,随机森林有高效的方法来估计缺失的数据并保持着准确率。

7:在不平衡的数据集中,它含有平衡误差的方法。

8:已经生成的随机森林可以保存下来方便解决以后的问题。

9:Prototypes的计算可以给出属性变量本身和分类的相关性。

10:计算样本实例之间的Proximities,可以用来聚类分析、异常分析、或者数据的其他有趣的视图。

上述能力可以拓展为无标签类数据,导出无监督聚类方法及数据视图和异常点检测。

 

随机森林在机器学习领域中的应用还是很多的,所以接下来得弄清楚,它背后的数学基础和各个特征的具体实现并用一些数据来感觉下它的强大。

继续记录自己的学习过程,方便以后的复习~come on~

posted @ 2013-11-12 21:15  人若无名  阅读(4342)  评论(0编辑  收藏  举报