机器学习笔记十四:随机森林

来源:互联网 发布:数据侠客行txt精校版 编辑:程序博客网 时间:2024/06/06 01:33

在上一篇机器学习笔记十三:Ensemble思想(上)中,简要的提了一下集成学习的原理和两种主要的集成学习形式.
而在这部分要讲的随机森林,就算是其中属于bagging思路的一种学习方法.为了篇幅,baggin这里就不再讲一遍了,详情见机器学习笔记十三:Ensemble思想(上)

然后你还需要有决策树和CART分类与回归树的基本知识.因为随机森林的基本分类/回归器是CART,(这个后面会提到.)所以只有先理解了CART才能够算能够真正理解了随机森林.
要是对于决策树和CART不熟,转到:
机器学习笔记十一:决策树
机器学习笔记十二:分类与回归树CART

随机森林相对于Adaboost或者是GBDT等集成学习算法来说,是比较简单易懂的,思想也很自然.要是上面列出的基础知识心里有数之后,就非常容易的理解随机森林了.

一.随机森林算法

先用比较简单的语言描述一下随机森林算法,注意和bagging思路的对比哦.
随机森林在bagging的基础上做了一些修改,大致的算法是:

1.从样本集中随机采样选择n个样本;
2.从所有属性中随机选择k个特征,选择最佳分割特征作为节点建立CART决策树;
3.重复上面两步m次,那么就建立了m棵决策树;
4.这m个CART形成随机森林,通过投票表决,决定数据属于哪一类.

非常非常简单的思路,看完之后应该对于随机森林有了一个感性的认识.这里再详细补充一些:
首先,你会看到,随机森林使用的基本分类器(弱分类器)是CART(要是熟悉CART的话,基本上随机森林是秒懂的).
同时,可以发现,相对于传统的CART,这里并没有选择全部的特征,而是通过随机选择特征的方式建立CART.
当一次性选择全部特征的时候,这时的CART和传统的CART并没有什么区别.
但是要是随机选择特征的数量小于所有特征的数量的时候,随机森林模型的泛化能力会提高.随机选择的特征数量越小,模型越健壮.模型的方差会减小.但是偏差会变大 所以在实践中常常通过交叉验证,选择一个合适的随机特征选择数量.

再次详细的总结一下随机森林算法:
输入样本这里写图片描述:,弱分类器迭代次数T
输出:为最终强分类器这里写图片描述

对于这里写图片描述:
(1)对训练集进行第t次随机采样,共采集n次,得到包含n个样本的采样集这里写图片描述
(2)用采样集这里写图片描述训练第t个弱学习器这里写图片描述
如果是分类算法预测,则T个弱学习器投出最多票数的类别或者类别之一为最终类别。
如果是回归算法,T个弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出。

二.优缺点分析

优点:

1.由于采用了随机采样,训练出的模型的方差小,泛化能力强。同时特征也是随机选择,所以对于高维度数据依然能够处理.

2.思路和实现都比较简单.

3.并行化方便.

缺点:

1.在某些噪音比较大的样本集上,RF模型容易陷入过拟合。

2.取值划分比较多的特征容易对RF的决策产生更大的影响,从而影响拟合的模型的效果。

0 0