BaggingClassifier

用于不平衡分类的 Bagging 和随机森林 不平衡分类的 Bagging标准装袋随机欠采样的 Bagging不平衡分类的随机森林标准随机森林带类别权重的随机森林带引导类权重的随机森林随机欠采样的随机森林不平衡分类的简单集成简易合奏。 阅读详情
写在前面

Ensemble methods 组合模型的方式大致为四个:/bagging / boosting / voting / stacking ,此文主要简单叙述 bagging算法。


算法主要特点

Bagging:

  • 平行合奏:每个模型独立构建
  • 旨在减少方差,而不是偏差
  • 适用于高方差低偏差模型(复杂模型)
  • 基于树的方法的示例是随机森林,其开发完全生长的树(注意,RF修改生长的过程以减少树之间的相关性)

接下来进入主题

Bagging 算法:

WIKI百科:
Bagging算法 (英语:Bootstrap aggregating,引导聚集算法),又称装袋算法,是机器学习领域的一种团体学习算法。最初由Leo Breiman于1994年提出。Bagging算法可与其他分类、回归算法结合,提高其准确率、稳定性的同时,通过降低结果的方差,避免过拟合的发生。


实现原理:

  1. 数学基础
    这里写图片描述

  2. 图例描述
    这里写图片描述

  3. 实现描述

    在scikit-learn中,
    参数 max_samples 和 max_features 控制子集的大小(在样本和特征方面)
    参数 bootstrap 和 bootstrap_features 控制是否在有或没有替换的情况下绘制样本和特征。

    • Bagging又叫自助聚集,是一种根据均匀概率分布从数据中重复抽样(有放回)的技术。
    • 每个抽样生成的自助样本集上,训练一个基分类器;对训练过的分类器进行投票,将测试样本指派到得票最高的类中。
    • 每个自助样本集都和原数据一样大
    • 有放回抽样,一些样本可能在同一训练集中出现多次,一些可能被忽略。

实例分析:

  1. 实例环境

    sklearn + anconda + jupyter

  2. 实例步骤

    • 数据:可以采用 datasets 的数据,在此作者使用的是自己整理的股票行情
    • 训练、测试数据归一化
    • 参数寻优可以使用GridSearch,在此不作赘述

    参数描述:
    这里写图片描述

  3. 代码实现
import time
import pandas as pd
from pandas import Series,DataFrame
from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import AdaBoostClassifier
from sklearn.model_selection import cross_val_score
from sklearn import preprocessing
from sklearn import datasets
iris = datasets.load_iris()
X,y = iris.data[:,1:3],iris.target
start = time.clock()  # 计时
min_max_scaler = preprocessing.MinMaxScaler()

# 读取训练数据 并数据规整化
raw_data  = pd.read_csv('train_data.csv') 
raw_datax = raw_data[:20000]
X1_scaled = min_max_scaler.fit_transform(raw_datax.ix[:,3:7])
y1 = raw_datax['Y1']
y1 = list(y1)

# 读取测试数据 并数据规整化
raw_datat  = pd.read_csv('test_data.csv')
raw_datatx = raw_datat[:10000]
X1t_scaled = min_max_scaler.fit_transform(raw_datatx.ix[:,3:7])
y1t = raw_datatx['Y1']
y1t = list(y1t)

print len(X1_scaled)
print len(X1t_scaled)
end = time.clock()
print '运行时间:',end - start
clf = DecisionTreeClassifier().fit(X1_scaled,y1)
clfb = BaggingClassifier(base_estimator= DecisionTreeClassifier()
                         ,max_samples=0.5,max_features=0.5).fit(X1_scaled,y1)

predict = clf.predict(X1t_scaled)
predictb = clfb.predict(X1t_scaled)

print clf.score(X1t_scaled,y1t)
print clfb.score(X1t_scaled,y1t)

# print Series(predict).value_counts()
# print Series(predictb).value_counts()

这里写图片描述

方法总结

  • Bagging通过降低基分类器的方差,改善了泛化误差
  • 其性能依赖于基分类器的稳定性;如果基分类器不稳定,bagging有助于降低训练数据的随机波动导致的误差;如果稳定,则集成分类器的误差主要由基分类器的偏倚引起
  • 由于每个样本被选中的概率相同,因此bagging并不侧重于训练数据集中的任何特定实例

1.运用注意点
2.优化方向点

资料参考:http://blog.youkuaiyun.com/qq_30189255/article/details/51532442

(八)集成学习中——bagging 集成学习第二法宝:bagging! 阅读详情

相关推荐

【Python机器学习】零基础掌握BaggingClassifier集成学习

本次介绍了BaggingClassifier算法并通过一个电信行业客户流失的案例进行了详细演示。该算法是一种集成学习方法,能有效提升模型的泛化能力。通过模拟数据和实际应用,证明了其在解决客户流失问题方面的有效性。优点总结,BaggingClassifier算法具有多个优点,包括模型稳健性强和准确性高,尤其适用于解决高维数据和非线性问题。优点名称描述说明模型稳健性强通过集成多个模型,减少过拟合和噪声影响高准确性集成方法通常比单一模型更准确处理高维数据能有效处理高维数据和复杂的数据集并行计算。

Mr数据杨 1191

BaggingClassifier分类器的使用方法

from sklearn.ensemble import RandomForestClassifier,VotingClassifier,BaggingClassifier from sklearn.tree import DicisionTreeClassifier bag_clf=BaggingClassifier(DecisionTreeClassifier(), n_estimators=500, max_samples=100, bootstrap=True, n_jobs=-1,

lisenpy的博客 9602

FlowDroid高级技巧:从基础配置到精准Android静态污点分析实战

静态污点分析是软件安全领域的核心技术,通过追踪数据在程序中的流动路径,识别潜在的隐私泄露与安全漏洞。其原理基于控制流与数据流分析,构建程序执行模型,模拟敏感信息从源头到汇聚点的传播过程。这项技术的核心价值在于能在不运行代码的情况下,系统性地发现隐蔽的数据流问题,为应用安全提供前置保障。在Android应用安全审计、合规检测等场景中,静态污点分析工具如FlowDroid已成为发现数据泄露、硬编码密钥等问题的标准手段。本文聚焦于FlowDroid的高级实战应用,深入探讨如何通过优化配置、调参策略及结果分析,将这

weixin_29324401的博客 371

集成方法 - BaggingClassifier

文章目录一,Bagging 算法介绍二,BaggingClassifier使用1,参数及属性2,方法3,例子 参考:BaggingClassifier 一,Bagging 算法介绍 算法主要特点 Bagging: 平行合奏:每个模型独立构建 旨在减少方差,而不是偏差 适用于高方差低偏差模型(复杂模型) 基于树的方法的示例是随机森林,其开发完全生长的树(注意,RF修改生长的过程以减少树之间的相关性) 在集成算法中,bagging方法形成了一类算法,它在原始训练集的随机子集上建立一个黑箱估计的多个实例,然后

壮壮不太胖的学习笔记 9639

Type-c超声波切割刀

接下来,我将提供Type-C超声波切割刀项目的C代码实现示例,代码将按照上述分层架构和模块化设计进行组织。为了达到3000行以上的代码量,我将尽可能详细地实现各个模块的功能,并添加必要的注释和错误处理。通过采用分层架构和模块化设计,我们可以建立一个可靠、高效、可扩展的系统平台,为产品的成功奠定坚实的基础。实际项目中,需要更详细的硬件驱动、更完善的功能模块、更严格的测试验证和更周全的维护升级计划。针对Type-C超声波切割刀这个项目,我将从以下几个方面详细阐述最适合的代码设计架构,并提供具体的C代码实现。

lianmengde的博客 1194

scikit-learn中BaggingClassifier参数

Bagging 元估计器 我们先来看一下官方文档中,对Bagging的解释: 在集成算法中,bagging 方法会在原始训练集的随机子集上构建一类黑盒估计器的多个实例,然后把这些估计器的预测结果结合起来形成最终的预测结果。 该方法通过在构建模型的过程中引入随机性,来减少基估计器的方差(例如,决策树)。 在多数情况下,bagging 方法提供了一种非常简单的方式来对单一模型进行改进,而无需修改背后的...

Asdas_的博客 8771

用Python玩转共现分析:从NLTK到热力图可视化(附完整代码)

本文详细介绍了如何使用Python进行文本共现分析,从NLTK基础文本处理到构建共现矩阵,并实现热力图可视化。通过完整的代码示例,帮助数据分析师和开发者掌握这一揭示词语间关联网络的实用NLP技术,快速从文本中提取语义关系和主题结构。

weixin_29313817的博客 350

sklearn.ensemble.BaggingClassifier 详细讲解

摘要:scikit-learn中的BaggingClassifier是一种集成学习分类器,通过Bootstrap Aggregating(Bagging)方法提高模型性能。它通过有放回抽样生成多个子数据集,在每个子集上训练基分类器,最后聚合预测结果。主要参数包括基分类器类型(base_estimator)、分类器数量(n_estimators)、样本/特征抽样比例(max_samples/max_features)等。BaggingClassifier能降低方差、减少过拟合,适合与高方差模型(如决策树)结合

qq_37179440的博客 877

从Axure转Figma?这篇编组、缩放、圆角、评论的对比指南帮你无缝切换

本文为资深Axure设计师提供了向Figma无缝迁移的实战指南。文章深度对比了编组、缩放、圆角、评论等核心操作,重点解析了Figma独特的自动布局、组件系统和实时协作功能,旨在帮助用户快速适应新工具,实现设计思维与工作效率的跃迁。

tomato的博客 851

硬件电路设计采集电路

摘要:采集电路是硬件设计中连接物理世界与数字系统的关键环节,主要用于将温度、压力等物理量转换为电信号。常见的采集电路包括模拟量采集(如温度、电压)、数字量采集(如开关状态)和特殊信号采集(如光、声音)。设计时需重点关注传感器选型、信号调理、电源接地、抗干扰和ADC配置等核心要素,确保信号链路的完整性和稳定性。合理的电路设计需结合具体应用场景,通过仿真和测试验证性能,最终实现精确可靠的数据采集。

qq_37999850的博客 1799

BaggingClassifier 的使用与实现

BaggingClassifier 是一种集成学习方法,通过构建多个基分类器(如决策树)并聚合其预测结果来提高模型的稳定性和准确性。:Bagging 对低偏差高方差的模型效果显著,但对低方差模型(如线性回归)提升有限。,有效降低方差,尤其适用于高方差模型(如决策树)。

Yn312的博客 473

解决Office 365 SMTP问题:C#邮件发送详解

本文介绍了如何在C#中使用Office 365 SMTP服务发送邮件。重点讲解了正确配置SMTP客户端的关键参数:必须使用587端口并启用TLS加密(EnableSsl=true),同时通过NetworkCredential进行身份验证。虽然SmtpClient已不推荐用于新项目,但本文提供的代码示例仍适用于临时项目或系统维护,并建议未来可考虑使用MailKit等现代邮件库。文章还包含了错误处理机制,确保程序健壮性。

2501_90323865的博客 141

随机森林与BaggingClassifier图

【代码】随机森林与BaggingClassifier图。

weixin_61313715的博客 154

音乐生成 - 使用LSTM或Transformer模型进行音乐生成,如MIDI音乐生成。

在本篇博客中,我们将介绍如何使用LSTM和Transformer模型生成MIDI音乐。我们将首先概述音乐生成的一般流程,然后深入了解LSTM和Transformer模型的特点和实现。最后,我们将通过Python代码演示如何使用这两种模型生成MIDI音乐。

斌擎科技 1722

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

别再只用随机森林了!用sklearn的BaggingClassifier给你的模型上个‘保险’(附鸢尾花数据集实战)

本文介绍了如何使用sklearn的BaggingClassifier为机器学习模型提供稳定性保障,通过集成算法降低模型方差。文章以鸢尾花数据集为例,详细展示了Bagging技术的实战应用,包括参数调优、决策边界可视化及高级技巧,帮助开发者提升模型在真实场景中的表现。

weixin_38169927的博客 427

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

别再只调参了!用sklearn的BaggingClassifier提升模型稳定性的保姆级实战(附OOB评估技巧)

本文详细介绍了如何使用sklearn的BaggingClassifier提升机器学习模型的稳定性,包括OOB评估技巧和工业级实现方法。通过集成算法如Bagging,有效降低模型方差,解决单模型不稳定的问题,适用于决策树等高方差模型。文章还提供了实战中的避坑指南和优化策略,帮助开发者快速应用。

weixin_30367873的博客 596

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

BaggingClassifier(集成学习)-对威斯康星州乳腺癌(诊断)数据集分析

【代码】BaggingClassifier(集成学习)-对威斯康星州乳腺癌(诊断)数据集分析。

weixin_61313715的博客 613

别再只调sklearn参数了!用BaggingClassifier实战鸢尾花分类,我踩过的坑都在这

本文通过鸢尾花分类实战,详细解析了BaggingClassifier的常见误区与优化技巧。从参数配置到可视化诊断,分享如何避免n_estimators设置不当、max_samples选择错误等问题,并给出黄金参数组合与OOB分数评估方法,帮助提升集成算法效果。

weixin_42524499的博客 309

【scikit-learn】sklearn.ensemble.BaggingClassifier 类:装袋分类器

BaggingClassifier是sklearn.ensemble提供的装袋(Bagging)分类模型,它通过训练多个相同的弱分类器(如决策树),并进行投票来提高分类性能,适用于二分类和多分类任务。BaggingClassifier适用于分类任务,结合多个相同的弱分类器,提高分类稳定性,支持样本随机采样(Bagging),适用于减少过拟合,提高模型泛化能力。

彬彬侠的博客 787

从Scikit-learn的BaggingClassifier到自定义实现:我的模型效果反而更好了?一份避坑与调优指南

本文探讨了从Scikit-learn的BaggingClassifier到自定义实现的性能提升路径,揭示了影响模型效果的关键因素。通过对比标准实现与自定义版本在随机性控制、采样策略和并行化处理等方面的差异,提供了实用的调优指南和避坑建议,帮助机器学习实践者提升Bagging方法的实际应用效果。

weixin_29052717的博客 197

【机器学习】集成学习:使用scikitLearn中的BaggingClassifier实现bagging和pasting策略

上述代码集成了500棵决策树的预测结果,每次训练模型随机采样100个实例进行训练,当预测模型自身带有可供概率预测的方法时,如含predict_proba()方法时,BaggingClassifier分类器将做软投票,否则使用硬投票的方法完成分类。特别注意,当使用bagging时,由于抽样后被放回(bootstrap=True),有些实例被放回,而有些实例从未被使用,这部分实例比例固定约占30%,这部分未被使用实例被称为“包外实例”,可使用这部分实例进行包外评估,代替测试集对模型进行评估。

种一棵树最好的时间是十年前,其次是现在 1348

bagging算法_取长补短、互通有无 ——集成学习介绍之Bagging &随机森林

本文作者:王 歌文字编辑:孙晓玲技术总编:张 邯Stata暑期线上课程火热招生中~爬虫俱乐部将于2020年7月11日至14日在线上举行为期四天的Stata编程技术定制培训。课程通过案例教学模式,旨在帮助大家在短期内掌握Stata的基本命令、编程、数据处理以及结果输出等技术,并针对最新版Stata中的实用新功能做出详细介绍,包括框架功能(frame:读入多个数据集)等等。同时,此次...

weixin_39611070的博客 289

Day08-集成学习-机器学习-Bagging(DataWhale)

二、Bagging Bagging不仅集成模型最后的预测结果,同时采用一定策略来影响基模型训练,保证基模型服从一定的假设。通过不同的采样增加模型的差异性 2.1 原理 核心:自助采样bootstrap,有放回的从数据集中进行采样。基于每个样本训练一个基学习器,再将所有的基学习器结合 回归问题预测:通过预测取平均值 分类问题预测:通过预测取多数票预测 Bagging是一种降低方差的技术,在不剪枝决策树、神经网络等易受样本扰动的学习器上效果更明显 实际应用中,加入列采样的Bagging技术对高维小样本更显著

liying_tt的博客 290
上一篇: StackingClassifier
下一篇: BoostingClassifier
奥特曼不秃头
博客等级 码龄10年 24粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奥特曼不秃头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值