上篇内容整理了决策树的相关知识,此篇在决策树的基础上进行拓展,引入随机森林的概念
随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基 本单元是决策树,而它的本质属于机器学习的一大分支——集成学习 (Ensemble Learning)方法。
其实从直观角度来解释,每棵决策树都是一个分类器(假设现在针对 的是分类问题),那么对于一个输入样本,N棵树会有N个分类结果。 而随机森林集成了所有的分类投票结果,将投票次数最多的类别指定 为最终的输出,这就是一种最简单的 Bagging 思想。
Bagging也叫自举汇聚法(bootstrap aggregating),是一种在原始 数据集上通过有放回抽样重新选出k个新数据集来训练分类器的集成 技术。它使用训练出来的分类器的集合来对新样本进行分类,然后用 多数投票或者对输出求均值的方法统计所有分类器的分类结果,结果 最高的类别即为最终标签。
【自助法】它通过自助法(bootstrap)重采样技术,从训练集里面采集固定个 数的样本,但是每采集一个样本后,都将样本放回。也就是说,之前采集到的 样本在放回后有可能继续被采集到。
【OOB】在Bagging的每轮随机采样中,训练集中大约有36.8%的数据没有被 采样集采集中。对于这部分没采集到的数据,我们常常称之为袋外数据(Out Of Bag,简称OOB)。这些数据没有参与训练集模型的拟合,因此可以用来检 测模型的泛化能力。
【随机性】对于我们的Bagging算法,一般会对样本使用boostrap进行随机采集, 每棵树采集相同的样本数量,一般小于原始样本量。这样得到的采样集每次的 内容都不同,通过这样的自助法生成k个分类树组成随机森林,做到样本随机 性。
【输出】Bagging的集合策略也比较简单,对于分类问题,通常使用简单投票 法,得到最多票数的类别或者类别之一为最终的模型输出。对于回归问题,通 常使用简单平均法,对T个弱学习器得到的回归结果进行算术平均得到最终的 模型输出。
简单来说,随机森林中【随机】就是随机从数据集中有放回地抽取样本,森林是决策树的集合,每个决策树进行分析之后的结果汇总,森林返回的结果由投票决定,也就是返回最多的就是森林的结果
类比于考试,每个人做一套试卷都有不同的正确率,随机森林就是把整个班的试卷汇总起来,每套题选的人最多就作为这道题的答案,从而正确率总会高于个人
随机森林构建步骤:
应用方向:
应用举例:特征值筛选
思路:如果某个特征对决策树的分类产生了较大影响,就说明这个特征比较重要
例题:红酒的分类问题 Wine数据集(在代码中会自动获取)
例子2:红酒的分类问题 特征值重要程度分析:越是改变影响分类的,越是重要的属性。 例如:酒精含量对于酒来说不可或缺,但是对于所有的酒来说,都具 备酒精,因此,虽然酒精本身对于酒至关重要,但是对于“酒属于哪 种酒”来说就不是很重要。 特征值筛选主要筛选的就是变量的差异值,也就是——酒属于哪种酒。
python代码:
结果:
(图和表不太一致,代码略有缺陷,以表为准待修改)