随机森林


决策树

先来复习一下决策树,根据预测结果不同,决策树分为回归决策树和分类决策树。很多的决策树集成,就成为了森林。常见的算法有随机森林和GDBT。

决策树是一种树形结构每个内部分支都是基于一个属性,每个叶节点代表一种类型。其实决策树就是在将一个多维(特征个数)空间进行划分,切分,产生不同类别。

分类决策树

分类决策树本身就是通过计算信息增益,选择特征,根据特征的值的个数形成分支,剪支(还没学)。

\(x_i\)代表某个特征的取值,\(P(x_i)\)代表该类型的占比,信息熵衡量的是该特征的混乱程度,公式:

? $$H(X)=-\sum_{i=1}^{n}p(x_i)log p(x_i)$$

决策树要做的就是通过对比使用每个特征进行分支产生的信息增益--信息熵的减少程度来选择特征。

参考:(12条消息) 【机器学习】分类决策树与回归决策树案例_Daycym的博客-CSDN博客

回归决策树

(classification and regression tree, CART)

这里复习一下回归和拟合的区别

回归分析:是一种统计学上分析数据的方法,目的在于了解两个或多个变量间是否相关相关方向与强度,并建立数学模型以便观察特定变量来预测研究者感兴趣的变量。

拟合:是一种把现有数据透过数学方法来代入一条数式的表示方式。

回归决策树将一个内部节点中的所有数据的该特征的平均值作为预测值。

随机森林算法(random forest,RF)

简介

随机森林是一种基于集成学习的思想和决策树模型而产生的分类器。集成学习(Ensemble Learning)通过使用多个弱分类器,来组成一个强分类器,提高准确率。使用多个不同决策树独立的决策结果,少数服从多数的方法来分类。

少数优秀的树的预测结果将会超脱于芸芸“噪音”,做出一个好的预测。将若干个弱分类器的分类结果进行投票选择,从而组成一个强分类器,这就是随机森林bagging的思想。bagging的代价是不用单棵决策树来做预测,具体哪个变量起到重要作用变得未知,所以bagging改进了预测准确率但损失了解释性

决策树生成规则

  1. 如果训练集大小为N,对于每棵树而言,随机且有放回地从训练集中的抽取N个训练样本(这种采样方式称为bootstrap sample方法),作为该树的训练集;(bootstrap sample取样方法,随机有放回)
  2. 如果每个样本的特征维度为M,指定一个常数m<
  3. 每棵树都尽最大程度的生长,并且没有剪枝过程。

解释:随机抽样可以让每个决策树使用的数据集不同,给出不同的预测结果。有放回不至于让每个决策树得到数据集中的一部分,这样的结果是片面的

两个随机:随机取样和随机取m个特征。

分类效果

  • 森林中任意两棵树的相关性:相关性越大,错误率越大;
  • 森林中每棵树的分类能力:每棵树的分类能力越强,整个森林的错误率越低。

  减小特征选择个数m,树的相关性和分类能力也会相应的降低;增大m,两者也会随之增大。所以关键问题是如何选择最优的m(或者是范围),这也是随机森林唯一的一个参数。

袋外错误率(out of bag error)

袋外错误率主要用于选取最佳的m值。

对每个样本,使用没有选择这个样本的决策树进行预测,使用少数服从多数的方法,得到预测结果。

最终得到每个样本是否被正确预测,计算袋外错误率。

代码使用

from sklearn.ensemble import RandomForestClassifier
rfc = RandomForestClassifier(n_estimators=100)#树的数量

参考

决策树之分类树与回归树 - 知乎 (zhihu.com)

[机器学习基础复习] 随机森林(Random Forest) - 知乎 (zhihu.com)

(12条消息) 【机器学习】分类决策树与回归决策树案例_Daycym的博客-CSDN博客

(12条消息) 随机森林算法详解_阿斯达克-CSDN博客_随机森林详解

https://www.zhihu.com/question/24904495/answer/371618173