集成学习之Bagging与随机森林(ensemble learning)

目录

1 集成学习的三大关键领域

2 Bagging方法的基本思想

3 随机森林RandomForest

3.1 RandomForestRegressor的实现

3.1.1 导入模块

3.1.2 导入数据

3.1.3 交叉验证及建模

4 随机森林在巨量数据上的增量学习

4.1 普通学习vs增量学习

4.1.1 对sklearn自带数据集进行训练

4.1.2 同样模型训练kaggle数据集

4.1.3 对sklearn自带数据集进行训练

4.1.4 同样模型训练kaggle数据集


1 集成学习的三大关键领域

集成学习(ensembe learning )是机器学习中最先进、最有效、最具有研究价值的领域之一,这类方法会训练多个弱评估器(base estimators)、并将它们输出的结果以某种方式结合起来的问题。

集成学习的一般结构为:先产生一组“个体学习器”,再用某种策略将它们结合起来。集成中只包含同种类型的个体学习器,称为同质,当中的个体学习器亦称为“基学习器”,相应的算法称为“基学习算法”。集成中包含不同类型的个体学习器,称为“异质”,当中的个体学习器称为“组建学习器”。

要获得好的集成,个体学习器应“好而不同”,即个体学习器要有一定的“准确性”,即学习器不能太坏,并且要有多样性,即个体学习器间具有差异。

从今天的眼光来看,集成学习的三个研究领域:

  • 模型融合

关注强评估器,试图设计出强大的规则来融合强分类器的结果、以获取更好的融合结果。这个领域的手段主要包括了投票法voting,堆叠法stacking,混合法blending等,且被融合的模型需要是强分类器。

  • 弱分类器集成

主要专注于对传统的机器学习算法的集成,这个领域覆盖大部分我们熟悉的集成算法和集成手段,如装袋法bagging,提升法boosting。这个领域试图设计强大的集成算法、来将多个弱学习器提升称为强学习手段。

  • 混合专家模型

常常出现在深度学习领域。将一个复杂的任务拆解成为几个相对简单且更小的子任务,然后针对不同的子任务训练出个体学习器(专家),再结合这些学习器的结果得出的结果得出最终的输出。

2 Bagging方法的基本思想

“Bagging”又称“装袋法”,并行建立多个弱评估器(通常是决策树,也可以是其他非线性算法),并结合多个弱评估器的结果进行输出。

  • 当集成学习目标是回归任务时,集成算法的输出结果是弱评估器输出结果的平均值
  • 当集成算法的目标是分类任务时,集成算法的输出结果是弱评估器输出结果的少数服从多数
import numpy as np
import pandas as pd
import sklearn 
import matplotlib as mlp
import seaborn as sns 
import re,pip,conda
  • bincount就是会将array由小到大进行排序,然后对每个数值进行计数,并返回计数结果的函数。不能对负数进行计数。
  • argmax是找到array中最大值,并返回最大值索引的函数。和“少数服从多数”思想相关
  • “少数服从多数”就是这么做的,knn也是这个思想
  1. 如果全是正数
#建立7个弱评估器
r_clf=np.array([0,2,1,1,2,1,0]) 
b_result_clf=np.argmax(np.bincount(r_clf))
b_result_clf

  2.如果是二分类,涉及到有一些负数类别

  • b_result=1 if (r_clf==1).sum()>(r_clf!=1).sum()else -1相当于

if (r_clf==1).sum()>(r_clf!=1).sum():

    1

else:

   -1

  •  (r_clf==1).sum()   返回布尔值,True是1,False是0
r_clf=np.array([1,1,1,-1,-1,-1,-1])
(r_clf==1).sum()#True是1,False是0
(r_clf==-1).sum()
b_result=1 if (r_clf==1).sum()>(r_clf!=1).sum()else -1
b_result

3.如果评估器的数量是偶数,而少数与多数刚好一致怎么办?

r_clf=np.array([1,1,1,0,0,0,2,2])
  •  从数量一致的类别中随机返回一个类别(需要进行随机设置)
  • 从数量一致的类别中,返回编码数字更小的类别(argmax函数)

4.回归的情况,就是求均值

r_reg=np.array([-2.082,-0.601,-1.686,-1.001,-2.037,0.1284,0.8500])
b_result_reg=r_reg.mean()
b_result_reg
-0.9183714285714285

在sklearn中,我们可以接触到两个Bagging集成算法,一个是随机森林,一个是极端随机数,它们都是以决策树为弱评估器的有监督算法,可以被用于分类、回归、排序等各种任务。

3 随机森林RandomForest

构建过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值