机器学习算法系列
第一章 Python/Spark 分类模型-逻辑回归知识点详细总结
第三章 分类模型-随机森林知识点详细总结
第四章 分类模型-支持向量机SVM知识点详细总结
第五章 关联分析-apriori算法知识点详细总结
目录
前言
本章节内容主要介绍随机森林,集成学习、随机森林工作原理、特征重要性、随机森林参数说明并附上部分代码、随机森林优缺点。
一、随机森林简介
它是多重决策树的组合,而不只是一棵决策树。随机森林算法下决策树的数量越多,泛化的结果更好。随机森林可作分类也可作回归。它属于机器学习中的集成学习一类。
“随机”二字理解:
1)样本随机采样;
2)属性随机选择;
随机森林是建立在决策树的基础上,关于决策树的基础知识有兴趣的可先看上一篇:第二章 分类模型-决策树知识点详细总结_助教评分问题,构造决策树分类模型_柯努力的博客-优快云博客
二、了解什么是集成学习
集成学习是将多个模型进行组合来解决单一的预测问题。原理是生成多个分类器模型,独立地学习并作出预测。这些预测最后结合起来得到预测结果,因此和单独分类器的结果相比,结果一样或更好。
随机森林是集成学习的一个分支,因为它依靠于决策树的集成。
三、随机森林工作原理(构建过程)
1. 从原始训练集中使用Bootstraping方法随机有放回采样取出m个样本,共进行n次采样。生成n个训练集。
2. 对n个训练集,我们分别训练n个决策树模型。
3. 对于单个决策树模型,假设训练样本特征的个数为n,那么每次分裂时根据信息增益/信息增益比/基尼指数,选择最好的特征进行分裂。
4. 每棵树都已知这样分裂下去,知道该节点的所有训练样例都属于同一类。在决策树的分裂过程中不需要剪枝。
5. 将生成的多颗决策树组成随机森林。对于分类问题,按照多棵树分类器投票决定最终分类结果;对于回归问题,由多颗树预测值的均值决定最终预测结果。
假设随机森林中有100棵决策树,那么,我们需要将新样本数据输入到100棵树中,然后,看每棵树返回的分类结果是什么,如果是分类问题,则根据投票原则,少数服从多数来确定新样本最终的类别。如果是回归问题,则取100棵树预测值的均值作为最终的预测值。
如:假设新样本可能有两种类别取值:0和1,使用规模为100的随机森林模型发现,有90棵树预测的类别是1,10棵树预测的结果是0,那么,少数服从多数,新样本的类别会判断为1。
参考:https://zhuanlan.zhihu.com/p/180067849
四、特征重要性
随机森林中的特征重要性表示在该特征上拆分的所有节点的基尼不纯度减少的总和。我们可以使用它来尝试找出随机森林认为最重要的预测变量,特征重要性可以让我们更好地洞察问题。
五、随机森林分类模型参数说明
Python sklearn参数说明, 随机森林中的超参数既可以用来提高模型的预测能力,也可以加快建模的速度。
n_estimators |
树的数目 |
Int, 默认10 |
criterion |
特征选择标准 |
默认"gini",即CART算法; gini or entopy |
splitter |
特征划分标准 |