详解随机森林-概述菜菜的sklearn课堂笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详解随机森林-概述菜菜的sklearn课堂笔记相关的知识,希望对你有一定的参考价值。
集成算法概述
继承学习不是一个单独的机器学习算法,而是通过在数据上构建多个模型,继承所有模型的建模结果。
集成算法的目标是:集成算法会考虑多个评估器的建模结果,汇总之后得到一个综合的结果,以此来获取比单个模型更好的回归或分类表现
多个模型集成成为的模型叫做集成评估器,组成集成评估器的每个模型都叫做基评估器。通常来说,有三类集成算法:袋装法(Bagging)、提升法(Boosting)和stacking
袋装法的核心思想是构建多个互相独立的评估器,然后对其预测进行平均或多数表决原则来决定继承评估器的结果。袋装法的代表模型就是随机森林 提升法中,基评估器是相关的,是按顺序一一构建的。其核心思想是结合若评估器的力量一次次对难以评估的样本进行预测,从而构成一个强评估器。提升法的代表模型有Adaboost和梯度提升树
随机森林概述
这其中提到的有放回的随机选择N个样本
就是袋装法。
我们称抽样得到的n个样本的集合为自助集。由于我们每次是随机采样,因此每次的自助集和原式数据集不同,和其他的采样集也是不同的。这样我们就可以获得互不相同的自助集,用这些自助集来训练我们的基分类器,得到的基分类器也就是各不相同的
有放回的抽样也会有自己的问题,由于是有放回,一些样本可能在同一个自助集中出现多次,有一些可能被忽略,一般来说,自助集大约平均会包含63%的原始数据。这是因为每个样本被抽到某个自助集中的概率为 $$ 1-\\left(1- \\frac1n\\right)^n $$ 当$n$足够大时,这个概率收敛于$\\beginaligned 1- \\frac1e\\endaligned$,约等于0.632,。因此,会有约37%的训练数据被浪费掉,没有参数建模,这些数据被称为袋外数据(out of bag data,简写为oob)。 袋外数据可以被用来作为集成算法的测试集,这样就不需要划分测试集与训练集了。当n和n_estimators不够大时,很可能就没有数据落在袋外,也就无法使用oob数据来测试模型了
关于我们为什么选择随机森林 上面说到随机森林的本质是一种装袋集成算法(bagging),装袋集成算法是对基评估器的预测结果进行平均或用多数表决原则来决定集成评估器的结果。 在之后的红酒例子中,我们建立了25棵树,对任何一个样本而言,平均或多数表决原则下,当且仅当有13棵及以上的树判断错误的时候,随机森林才会判断错误。单独一棵决策树对红酒数据集的分类准确率在0.85上下浮动,假设一棵树判断错误的可能性为0.2$\\epsilon$,那20棵树以上都判断错误的可能性是: $$ e=\\sum\\limits_i=13^25C_25^i\\epsilon ^i(1-\\epsilon )^25-i=0.000369 $$ 其中$i$是判断错误的决策树数量,$\\epsilon$是判断错误的概率
可见错误的几率非常小,也就让随机森林在红酒数据集上的表现远远好于单棵决策树
以上是关于详解随机森林-概述菜菜的sklearn课堂笔记的主要内容,如果未能解决你的问题,请参考以下文章
详解随机森林-机器学习中调参的基本思想菜菜的sklearn课堂笔记
详解支持向量机-SVC真实数据案例:预测明天是否会下雨-探索标签和处理异常值菜菜的sklearn课堂笔记