Python——随机森林原理

随机森林(Random Forest)算法原理

1.随机森林原理、决策树、集成学习

决策树

决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。用树的结构构件分类模型,每个非叶子结点表示一个特征属性上的测试,每个叶子结点表征着一个类别。
使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择直到到达叶子节点,将叶子节点存放的类别作为决策结果。

划分属性选择:
希望决策树的分支节点包含的样本尽可能属于同一类别,即节点的“纯度”(purity)越来越高

  • 1、信息增益,一般信息增益越大,意味着划分获得的纯度提升越大
  • 2、增益率,选择增益率大的属性作为最优划分属性,C4.5决策树算法选信息增益高于平均水平的属性,然后再从中选择增益率最高的
  • 3、基尼指数,CART决策树使用基尼指数来选择划分属性,选择指数最小的属性作为最优划分属性

过拟合处理:

  • 剪枝处理,剪枝是决策树算法对付“过拟合”的主要方法
    在决策树学习中,为了尽可能正确分类训练样本,节点划分过程将不断重复,有时会造成决策树分支过多,这时就可能因训练样本学习得“太好”,以至于把训练集自身的一些特点当作所有数据都具有的一一般性质而导致过度拟合,因此可通过主动去掉一些分支来降低过度拟合的风险。
随机森林

随机森林,是集成学习下的产物,是将多个决策树整合成森林(每棵决策树之间没有关联),并合起来用于预测最终结果。
随机森林是bagging的一个扩展变体。RF在以决策树为基学习器构建bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。
通过自助法(bootstrap)重采样技术,生成k个训练集,然后对每个训练集构造一个决策树,特征选择采用随机的方法去分裂每一个节点,然后比较每棵决策树不同情况下产生的误差,在其中找到最优解,应用于节点进行分裂。

集成学习

集成学习(ensemble),为了解决单个模型或某一组参数的模型所固有的缺陷,将多个单一学习模型所获得的多个预测结果进行有机地组合,从而获得更加准确、稳定和强壮的最终结果。
大部分的集成学习模型都可以归为三大类:分类集成学习模型、半监督集成学习模型和非监督集成学习模型。

  • 监督集成学习模型,又称为分类集成学习模型(classifier ensemble),包括一系列常见的分类技术,如:bagging、boosting、随机森林、随机子空间、旋转森林、基于随机线性预测器的集成技术、神经网络集成技术等等。
  • 半监督集成学习模型包括:多视图学习模型、共性最大化学习模型等。非监督集成学习模型,又称为聚类集成(cluster ensemble)或一致性聚类(consensus clustering),最早由Strehl所提出。经过多年的研究,大量的聚类集成学习模型被提出来,如:基于图论的聚类集成算法、基于多次谱聚类的聚类集成算法、混合模糊聚类集成算法等。
自助法

自助法(bootstrap),不借助其他样本数据,从自身样本中产生和自己相似的数据样本。不会降低训练样本的规模,又能留出验证集。

方法:希望从一个大小为N的样本中,得到m个大小为N的样本
在N个样本中抽出一个样本x1,记下来再放回去,再抽x2样本,… ,这样重复N次,即可得到N个新样本(这个新样本中可能有重复,但这种重复是随机的),重复上述操作m次,就得到了m个大小为N的样本。(实际上是一个有放回的随机抽样)

Bagging

Bagging,自助抽样集成,并行式集成学习方法最著名的代表。基于bootstrap 将训练集分成m个新训练集,然后再每个新训练集上构建模型,各自不相干,预测时将m个模型结果整合,得到最终结果

整合方式:

  • 分类问题用,majority voting简单投票法
    若分类预测时出现两个类收到相同票数的情形,则最简单的做法是随机选择一个,也可以进一步考察学习器投票的置信度来确定最终胜者。
  • 回归问题,简单均值法
2.随机森林应用场景

随机森林主要应用于回归和分类。
分类问题用,majority voting
(新数据的分类结果按分类树投票多少形成的分数而定,其实质是对决策树算法的一种改进)
回归问题用,简单均值法

参考书籍《机器学习》周志华

你可能感兴趣的:(每天一点Python)