AI面试题11--随机森林算法的原理、随机性、优缺点

1. 随机森林算法原理

       随机森林算法是Bagging集成框架下的一种算法,它同时对训练数据和特征采用随机抽样的方法来构建更加多样化的模型。随机森林具体的算法步骤如下:

1, 假设有N个样本,则有放回的随机选择N个样本(每次随机选择一个样本,然后将该样本放回并继续选择)。采用选择好的N个样本用来训练一个决策树,作为决策树根节点处的样本。
2. 假设每个样本有M个属性,在决策树做节点分裂时,随机从这M个属性中选取m个属性,满足条件 m << M 。然后采用某种策略(比如信息增益最大化)从m个属性中选择一个最优属性作为该节点的分类属性。
3. 决策树形成过程中重复步骤2来计算和分裂节点。一直到节点不能够再分裂,或者达到设置好的阈值(比如树的深度,叶子节点的数量等)为止。注意整个决策树形成过程中没有进行剪枝。
4. 重复步骤1~3建立大量的决策树,这样就构成了随机森林。

在这里插入图片描述

2. 随机森林的随机性体现在哪里

       随机森林的随机性体现在每棵树的训练样本是随机的,树中每个节点的分裂属性集合也是随机选择确定的,如下:
(1)随机采样:随机森林在计算每棵树时,从全部训练样本(样本数为N)中选取一个可能有重复的、大小同样为N的数据集进行训练(即Booststrap采样)。
(2)特征选取的随机性:在节点分裂计算时,随机地选取所有特征的一个子集,用来计算最佳的分割方式。

3. 随机森林算法的优缺点

3,1. 优点

  1. 特征和数据的随机抽样
    (1) 它可以处理很多高维度(特征很多)的数据,并且不用降维,无需做特征选择;
    (2)如果有很大一部分的特征遗失,仍可以潍柴准确度;
    (3)不容易过拟合;
  2. 树模型的特性
    (4)较好的解释性和鲁棒性;
    (5)能够自动发现特征间的高阶关系;
    (6)不需要对数据进行特殊的预处理如归一化;
  3. 算法结构
    (7)训练速度比较快,容易做成并行方法;
    (8)实现起来比较简单。

3.2. 缺点

  1. 随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟合。(决策树的学习本质上进行的是决策节点的分裂,依赖于训练数据的空间分布)
  2. 对于有不同取值的属性的数据,取值划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的。

猜你喜欢

转载自blog.csdn.net/Roaddd/article/details/114093838