首页 > 其他分享 >Bagging集成学习

Bagging集成学习

时间:2022-12-18 21:24:11浏览次数:28  
标签:Bagging 集成 抽取 max 样本 学习 train samples test

一、概述

1.1 基本原理

 

 

 

通过上图我们知道,bagging是每个弱学习器之间的并行计算最后综合预测,各个弱学习器之间没有依赖关系,

在训练集到子训练器的过程叫做“子抽样”

 

子抽样:比如有750个样本,每次抽取500个,抽取四次。第一次随机抽取500个,第二次也抽取500个,第一次与第二次抽取的数据有部分重合。

    可以看成第一次抽取完成后,将样本放回,第二次在随机抽取。每次抽取的每个样本概率相同。

  

注意:有1000个样本,训练集有750个。那么子训练器中的样本不可以死超过750个,否则会报错。也不要等于750个,否则每次抽取的样本都一样。

 

 

1.2 参数

 

 

max_samples : int或float,可选(默认值= 1.0)从X抽取以训练每个基本估计量的样本数。

  • 如果为int,则抽取样本 max_samples

  • 如果float,则抽取本 max_samples * X.shape[0]

max_features : int或float,可选(默认值= 1.0)从X绘制以训练每个基本估计量的要素数量。

  • 如果为int,则绘制特征 max_features

  • 如果是浮动的,则绘制特征 max_features * X.shape[1]

 

 

1.3 步骤

  1. 从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)
  2. 每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)
  3. 对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)

 

 

 

二、代码演示

import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifier

'''
制作样本数据,产生的结果为一个简单的样本数据集,用于可视化聚类算法和分类算法
1. n_samples : 整数型, 可选,默认为100 总的产生的样本点的数量
2. shuffle : 布尔型,可选填 (默认为True) 是否对样本进行重新洗牌
3. noise : 浮点型 or None型 (默认为None) 加到数据里面的高斯噪声的标准差
'''

X, y = datasets.make_moons(n_samples=1000, shuffle=True, noise=0.3, random_state=2)

plt.scatter(X[y == 0, 0], X[y == 0, 1])
plt.scatter(X[y == 1, 0], X[y == 1, 1])
# plt.show()
# 划分数据
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=2)


dt_clf = DecisionTreeClassifier(max_depth=3, min_samples_leaf=2, random_state=2)
bag_clf = BaggingClassifier(base_estimator=dt_clf, n_estimators=400, max_samples=500, random_state=2)
bag_clf.fit(X_train, y_train)
print('bagging的训练集分数:{a:.2%}, 测试集分数:{b:.2%}'.
      format(a=bag_clf.score(X_train, y_train), b=bag_clf.score(X_test, y_test)))

 

标签:Bagging,集成,抽取,max,样本,学习,train,samples,test
From: https://www.cnblogs.com/qianslup/p/16974220.html

相关文章

  • 集成学习之VotingClassifier
    一、概述同一个问题可能通过不同的机器学习模型来解决,那么哪个解决方案会更客观呢? 这种集成算法一般应用与分类问题。思路很简单。假如有5种机器学习模型来进行分类预测......
  • 【博学谷学习记录】超强总结,用心分享|接口加解密介绍
    一、介绍在做接口测试的时候,如果是外部用户直接能看到我们的参数,可能会造成接口不安全,比如直接用明文的参数请求接口,把参数自己定义,脏数据就会存到我们的数据库中,严重......
  • 【博学谷学习记录】超强总结,用心分享。数据库的重要知识点。
    一.数据库事务 1.事务特性 原子性:即不可分割性,事务要么全部被执行,要么就全部不被执行。一致性:事务的执行使得数据库从一种正确状态转换成另一种正确状态隔离性:在......
  • pycaret学习之受监督学习的机器学习-回归
    回归回归分析是一组统计过程,用于估计因变量(通常称为“结果变量”或“目标”)与一个或多个自变量(通常称为“特征”、“预测变量”或“协变量”)之间的关系。机器学习回归的目......
  • (转)expect学习笔记及实例详解
    expect学习笔记及实例详解1.expect是基于tcl演变而来的,所以很多语法和tcl类似,基本的语法如下所示:1.1首行加上/usr/bin/expect1.2spawn:后......
  • 深度学习入门笔记
    深度学习入门笔记编程语言和库Python3.xNumPyMatplotlib常用运算Numpyimportnumpyasnpx=np.array([1.0,2.0])y=np.arange(0,6,0.1)#以0.1为单......
  • 45册 + 325集 + 31套,Python学习资源【2021精华版本】
    给大家准备了如下资料黄同学经过千挑万选,为大家准备好的资源。45本Python电子书325集Python全栈视频【最新版】Python项目开发实战Python数据分析与机器学习实战【最新视频......
  • 20篇MySQL文章,成体系跟新完毕,尽情学习吧!
    MySQL是对于数据分析师来说。很重要的一项技能。你可以不会python,但是你就是不能不会SQL,基本只要是招数据分析的岗位,就必须要你会使用SQL。基于此,我将自己的学习心得,整理成......
  • ERP 学习笔记 - 生产模块
    生产模块蓝图简介      R/3PP生产计划系统是一个综合性的企业资源计划系统,包括制造执行系统的全部功能。它完整的集成各种应用领域所有业务功能,支持客户订单快速处......
  • 前端学习-CSS-08-盒子模型
    学习时间:2022.11.13目录盒子模型盒子模型的介绍内容的宽高边框(border)连写形式单方向设置单个属性简单案例内边距(padding)内减模式外边距(margin)外边距折叠现象1-合并......