1. 集成学习三大领域
集成学习(Ensemble learning)方法会训练多个弱评估器(base estimators),并将他们的输出结果以某种方式结合起来解决一个问题。
-
模型融合
投票法Voting、堆叠法Stacking、混合法Bleding,被融合的模型需要是强分类器
-
弱分类器集成
装袋法Bagging、提升法Boosting
-
混合专家模型(micture of experts)
常出现在深度学习领域。将一个相对复杂的任务拆解成几个相对简单且更小的子任务,然后针对不同的子任务训练个体学习器(专家),然后再结合这些 个体学习器的结果得出最终输出。
2. Bagging方法的基本思想(Bagging是并行式集成学习最典型的框架,其核心在于自助采样。)
原理:
-
在Bagging集成当中,我们并行建立多个弱评估器(通常是决策树,也可以是其他非线性算法),并综合多个弱评估器的结果进行输出。
-
当集成算法目标是回归任务时,集成算法的输出结果是弱评估器输出的结果平均值。
-
当集成算法的目标是分类任务时,集成算法的输出结果是弱评估器输出的结果少数服从多数。
-
少数、多数:每个类别所对应弱评估器的数量,一个类别对应弱评估器的数量越多就是多数,反之是少数
-
思想:
给定m个样本的数据集,有放回的随机抽取一个样本放入采样集中,经过m次采样,可以得到和原始数据集一样大小的采样集;
最终可以采样T个包含m个样本的采样集,然后基于每个采样集训练出一个基分类器,最后将这些基分类器进行组合。
例子:假设现在一个Bagging集成算法中有7个弱评估器,对任意一个样本而言,输出的结果如下:
-
bincount会将array由大到小排序,然后对每个数值进行计数,并返回计数结果。bincount函数不能接受负数输入。 -- 经常用于多分类
-
argmax是找到array中的最大值,并安返回最大值索引的函数 -- 少数服从多数原则
通过bincount计数后的类别对应着索引,所以使用argmax即可返回次数最大的索引,即类别:
编码数字更小:类别0和1对应的弱分类器数量相同,则输出类别0
两个集成算法:
-
随机森林(RandomForest)
-
极端随机树(ExtraTrees)
二者都是以决策树为弱评估器的有监督算法。
3. 随机森林RandomForest -- 适用于中小型数据集
算法构筑过程:从提供的数据中随机抽样出不同的子集,用于建立多棵不同的决策树,并按照Bagging的规则对单棵决策树的结果进行集成(回归则平均,分类则少数服从多数)。
随机森林是由许多决策树组成的模型。这个模型不是简单地平均所有树(我们可以称之为“森林”)的预测,而是使用了两个关键概念,名字中的随机二字也是由此而来:
-
在构建树时对训练数据点进行随机抽样
-
分割节点时考虑特征的随机子集
具体流程:
-
假设有M个样本,有放回的随机选择M个样本(每次随机选择一个放回后继续选)
-
假设样本有N个特征,在决策时的每个节点需要进行分裂时,随机从这N个特征中选取n个特征,满足n<<N,从这n个特征中选择特征进行结点分裂
-
基于抽样的M个样本n个特征按照结点分裂的方式构建决策树
-
按照1~3步构建大量决策树组成随机森林,然后将每棵树的结果进行综合(分类可使用投票法,回归可使用均值法)
【弱分类器】首先,RF使用了CART决策树作为弱学习器。换句话说,其实我们只是将使用CART决策树作为弱学习器的Bagging方法称为随机森林。
【随机性】同时,在生成每棵树的时候,每个树选取的特征都仅仅是随机选出的少数特征,一般默认取特征总数n的开方。而一般的CART树则是会选取全部的特征进行建模。因此,不但特征是随机的,也保证了特征随机性。
【样本量】相对于一般的Bagging算法,RF会选择采集和训练集样本数M一样个数的样本。
【特点】由于随机性,对于降低模型的方差很有作用,故随机森林一般不需要额外做剪枝,即可以取得较好的泛化能力和抗过拟合能力(Low Variance)。当然对于训练集的拟合程度就会差一些,也就是模型的偏倚会大一些(High Bias),仅仅是相对的。
在sklearn中实现方法:
回归森林默认评估指标为$R^2,分类森林的默认评估指标为准确率。
4. 随机森林在巨量数据上的增量学习
增量学习允许算法不断接入新数据来拓展当前模型,即允许巨量数据被分成若干个子集,分别输入模型进行训练。
在增量学习中,原始数据训练的树不会被替代掉,模型会一直记得之前训练过的数据。
warm_start :当设置为True,重新使用之前的结构去拟合样例并且加入更多的估计器(estimators,在这里就是随机树)到组合器中; [True/False]
在增量式学习中,已经训练过的结果会被保留。
对于随机森林这样的Bagging模型:之前的数据训练出来的树会被保留,新数据会训练出新的树,新旧树互不影响。
对于逻辑回归、神经网络这样不断迭代以求解权重w的算法来说:新数据训练时w的起点是之前的数据训练完毕之后的w
对于随机森林使用增量式学习来说,我们需要手动增加新的树:
如何查看无法打开的CSV文件数据量:
-
如果是比赛数据,一般可以在比赛页面中找到说明
-
如果是数据库数据集,则可以在数据库中进行统计
-
如果无法找到说明,可以使用deque库导入csv文件的最后几行,查看索引
-
如果没有数据索引只能靠pandas尝试查找出大致的数据范围
5. Bagging与随机森林区别:
Bagging:训练数据是有放回随机采样M个训练数据,结果基于投票机制;弱学习器没有限制,最常用的一般也是决策树和神经网络。
随机森林:训练数据是有放回抽样M个训练数据,特征也是随机抽取n个(共N个),结果基于投票机制。
注意:随机森林的树没有剪枝过程。
由于是随机抽样,所以大约会有1/3的数据未被抽到,称作袋外数据(Out Of Bag, 简称OOB)。
这些数据没有参与训练集模型的拟合,因此可以用来检测模型的泛化能力。
标签:Bagging,训练,随机,森林,数据,决策树 From: https://www.cnblogs.com/5466a/p/16849893.html