算法之路--随机森林

一:什么是随机森林

  随机森林顾名思义,是用随机的方式建立一个森林,森林里面由很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类

二:随机森林的优缺点

优点

  1. 它可以出来很高维度(特征很多)的数据,并且不用降维,无需做特征选择
  2. 它可以判断特征的重要程度
  3. 可以判断出不同特征之间的相互影响
  4. 不容易过拟合
  5. 训练速度比较快,容易做成并行方法
  6. 实现起来比较简单
  7. 对于不平衡的数据集来说,它可以平衡误差。
  8. 如果有很大一部分的特征遗失,仍可以维持准确度。

缺点

  1. 随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟合。
  2. 对于有不同取值的属性的数据,取值划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的
  3. 模型训练和预测都比较慢

三:原理

随机森林,指的是利用多棵树对样本进行训练并预测的一种分类器。简单来说,随机森林就是由多棵CART(Classification And Regression Tree)构成的。对于每棵树,它们使用的训练集是从总的训练集中有放回采样出来的,这意味着,总的训练集中的有些样本可能多次出现在一棵树的训练集中,也可能从未出现在一棵树的训练集中。在训练每棵树的节点时,使用的特征是从所有特征中按照一定比例随机地无放回的抽取的,假设总的特征数量为M,这个比例可以是sqrt(M),1/2sqrt(M),2sqrt(M)。
 

四:如何构建随机森立

随机森林大致过程如下:
1)从样本集中有放回随机采样选出n个样本;
2)从所有特征中随机选择k个特征,对选出的样本利用这些特征建立决策树(一般是CART,也可是别的或混合);
3)重复以上两步m次,即生成m棵决策树,形成随机森林;
4)对于新数据,经过每棵树决策,最后投票确认分到哪一类。

五:训练、预测

输入:训练集S,测试集T,特征维数F

参数:生成的CART树的数量t,每棵树的深度d,每个结点用到的特征数量f

终止条件:结点上的样本数小于s,结点上的信息增益(比)小于m。(详情:https://www.jianshu.com/p/d153130b813f

输出:由CART组成的随机森林

训练:

(1). 从训练集S中有放回的抽取大小和S一样的训练集S(i),作为根结点的样本,从根结点开始训练。

(2).

  1.  若当前结点达到终止条件,则设置当前结点为叶子结点。

            分类问题:叶子结点输出为当前结点样本集合中数量最多的那一类C(j),概率P 为C(j)占当前样本集的比例。

            回归问题:叶子结点输出为当前结点样本集各个样本值的均值。

  2. 若当前结点没有到达终止条件,则从F维特征中无放回的随机选取f维特征(满足f<<F).利用这f维特征,寻找分类效果最好(信息增益(比)最大)的一维特征K及其阈值th,当前结点上的样本的第K维特征小于th的进左子树,大于th的进右子树。继续训练其他结点。

  3.  重复1,2直到所有结点都训练过了或被标记为叶子结点。(一个CART训练完成)

  4.  重复1,2,3直到所有CART都被训练过。
预测:

(1) 从当前树的根结点开始,根据当前结点的第K维特征的阈值,判断是进入左子树还是进入右子树,直到到达某个叶子结点,并输出预测值。

(2) 重复(1)直到所有t颗树都输出了预测值。

     分类问题:最终输出为所有树中预测概率总和最大的那个类C(j) (概率相加对比)

     回归问题:最终输出为所有树输出的平均值。
 

六:参考

https://blog.csdn.net/wfei101/article/details/74840091

https://blog.csdn.net/y0367/article/details/51501780

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值