模式识别与机器学习(十一):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表示基学习器的数量,这些参数都可以根据需要进行调整。

相关推荐
MIXLLRED10 小时前
自动驾驶技术全景解析:从感知、决策到控制的演进与挑战
人工智能·机器学习·自动驾驶
应用市场10 小时前
基于多摄像头融合的智能小车自动驾驶系统完整实现
人工智能·机器学习·自动驾驶
嵌入式老牛11 小时前
1.0 机器学习实际上是什么
人工智能·机器学习
rengang6612 小时前
30-机器学习应用案例:展示机器学习在各行业中的典型应用实例
人工智能·机器学习
云烟成雨TD12 小时前
NumPy 2.x 完全指南【四十二】线性代数之向量运算
python·机器学习·numpy
GIS数据转换器14 小时前
科技赋能农业现代化的破局之道
大数据·科技·安全·机器学习·智慧城市·制造
junziruruo15 小时前
半监督学习,少样本学习和零样本学习
python·学习·机器学习
YF云飞17 小时前
拟人AI GoCap:用机器学习打造真实玩家体验
人工智能·机器学习
做科研的周师兄19 小时前
【机器学习入门】9.2:感知机的工作原理 —— 从模型结构到实战分类
人工智能·算法·机器学习·分类·数据挖掘
做科研的周师兄20 小时前
【机器学习入门】9.2:感知机 Python 实践代码模板(苹果香蕉分类任务适配)
人工智能·python·学习·机器学习·分类·数据挖掘·numpy