本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com
随机森林是集成决策的一个经典代表,它通过训练多棵决策树,进行集体决策,
本文是作者根据sklearn包里的随机森林源码总结的算法与流程
本节简单介绍什么是随机森林,
通过本节可以对随机森林有个初步了解
什么是随机森林
随机森林是将决策树进行简单bagging的一种集成算法。
它经过多次随机抽取样本训练多棵决策树,用多棵决策树集成决策.
由于它拥有多棵树,且每棵树是随机的,所以称为随机森林。
随机森林是怎么决策的
随机森林在决策阶段判别样本所属类别的方法如下:
将X输入到每棵树中各自获得预测结果,
然后将所有树的预测结果进行综合评估,作为整个森林最终的决策结果
本节展示随机森林的模型表达式
通过模型表达式,可以更具体地了解随机森林模型
随机森林的模型表达式
随机森林的模型表达式为:
其中:
:随机森林给出的各类别的预测概率
: 决策树
: 第i棵树对x的预测,输出为各个类别的预测概率(行向量)
k : 森林规模数
可以看到,随机森林模型就是由多棵决策树组成的一个模型
随机森林最终给出的预测概率就是各棵树的预测概率的均值
预测概率得分最大的一类,就作为随机森林最终的预测类别
随机森林的模型参数
由于随机森林就是单纯的多棵决策树的组成,
所以易知,随机森模型需要求得的参数就是森林里所包含的所有决策树模型的参数,
每棵决策树需要包括:
👉1.该树的结构
👉2.该树分裂时所用到的变量
👉3.变量的切割点
本节讲解随机森林是怎么训练的
随机森林的训练思想
模型训练焦点在于如何训练出多棵不同的弱树
可以通过如下方式实现:
👉样本的弱化
1.每棵树只随机选择一部分样本进行训练
2.每棵树只选择一部分变量训练
👉树结构的弱化
1.每棵树的深度尽量设置得较浅
总之,让树模型保证一定的准确度的同时,又需要让决策树尽量的简单
随机森林的具体训练流程
随机森林的训练流程
随机森林的具体训练流程如下
1.样本抽取 : 放回式抽取n(样本个数)次样本
2.训练弱树 : 用抽取的样本训练决策树,最多使用m个特征就退出树的训练
一直训练K棵树为止
✍️老饼解说:
"最多使用m个特征就退出树的训练"可以在限制树的深度的同时
又能使每棵树使用的变量不一样
简单地说,就是生成k棵树,每棵树用的样本随机抽取,最后k棵树组合在一起就是森林
随机森林训练时重要的超参数
👉1. 特征最大个数m
特征最大个数m一般远小于总特征个数M,例如
👉2. 森林规模数k
森林规模数k就是树的棵数
太小会导致模型准确度不够,太大又会导致模型过于复杂
相关参考
随机森林算法及其实现(Random Forest): https://blog.csdn.net/yangyin007/article/details/82385967
End