模式识别与机器学习(十一):Bagging

1.原理

Bagging [Breiman, 1996a] 是井行式集成学习方法最著名的代表.从名字即可看出,它直接基于自助采样法(bootstrap sampling)。给定包含m 个样本的数据集,我们先随机取出一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样时该样本仍有可能被选中,这样,经过m次随机采样操作,我们得到含m 个样本的采样集,初始训练集中有的样本在采样集里多次出现,有的则从未出现,初始训练集中约有63.2%的样本出现在来样集中。

照这样,我们可采样出T 个含m 个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合.这就是Bagging 的基本流程.在对预测输出进行结合时, Bagging 通常对分类任务使用简单投票法,对回归任务使用简单平均法.若分类预测时出现两个类收到同样票数的情形,则最简单的做法是随机选择一个,也可进一步考察学习器投票的置信度来确定最终胜者。其步骤如下:

1.对于给定的训练样本S,每轮从训练样本S中采用有放回抽样(Booststraping)的方式抽取M个训练样本,共进行n轮,得到了n个样本集合,需要注意的是这里的n个训练集之间是相互独立的。

2.在获取了样本集合之后,每次使用一个样本集合得到一个预测模型,对于n个样本集合来说,我们总共可以得到n个预测模型。

3.如果我们需要解决的是分类问题,那么我们可以对前面得到的n个模型采用投票的方式得到分类的结果,对于回归问题来说,我们可以采用计算模型均值的方法来作为最终预测的结果。

2.代码

python 复制代码
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifier

# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建决策树分类器
base_estimator = DecisionTreeClassifier()

# 创建Bagging分类器
clf = BaggingClassifier(base_estimator=base_estimator, n_estimators=100, random_state=42)

# 训练模型
clf.fit(X_train, y_train)

# 预测测试集
y_pred = clf.predict(X_test)

# 打印预测结果
print(y_pred)

我们使用了鸢尾花数据集,这是一个常用的多类别分类数据集。我们首先加载数据,然后划分为训练集和测试集。然后,我们创建一个决策树分类器作为基学习器,并创建一个Bagging分类器,使用训练集对其进行训练。最后,我们使用训练好的模型对测试集进行预测,并打印出预测结果。

BaggingClassifier的参数base_estimator表示基学习器,n_estimators表示基学习器的数量,这些参数都可以根据需要进行调整。

相关推荐
数字化转型202520 分钟前
基于六大产品线+三项核心工作
程序人生·机器学习
汽车仪器仪表相关领域21 分钟前
经典指针+瞬态追踪:MTX-A模拟废气温度(EGT)计 改装/赛车/柴油车排气温度监测实战全解
大数据·功能测试·算法·机器学习·可用性测试
HyperAI超神经25 分钟前
软银/英伟达/红杉资本/贝佐斯等参投,机器人初创公司Skild AI融资14亿美元,打造通用基础模型
人工智能·深度学习·机器学习·机器人·ai编程
民乐团扒谱机32 分钟前
机器学习 第二弹 和AI斗智斗勇 机器学习核心知识点全解析(GBDT/XGBoost/LightGBM/随机森林+调参方法)
算法·决策树·机器学习
charlie1145141911 小时前
机器学习概论:一门教计算机如何“不确定地正确”的学问
人工智能·笔记·机器学习·工程实践
Echo_NGC22372 小时前
【联邦学习完全指南】Part 5:安全攻防与隐私保护
人工智能·深度学习·神经网络·安全·机器学习·联邦学习
清铎2 小时前
项目_华为杯’数模研赛复盘_第二问
深度学习·算法·机器学习
杨_晨3 小时前
大模型微调训练FAQ - Loss与准确率关系
人工智能·经验分享·笔记·深度学习·机器学习·ai
Dyanic3 小时前
通用图像融合方法利用梯度迁移学习与融合规则展开
人工智能·机器学习·迁移学习
Yeats_Liao3 小时前
负载均衡设计:多节点集群下的请求分发与资源调度
运维·人工智能·深度学习·机器学习·华为·负载均衡