【AI深究】集成方法(Ensemble)全网最详细全流程详解与案例(附Python代码演示)|详解:Bagging与Boosting|随机森林|AdaBoost|XGBoost|优、缺点|选择应用建议

大家好,我是爱酱。前几篇我们讲了聚类、回归等基础任务,这一期我们来聊聊机器学习中提升模型效果的“法宝”——集成方法(Ensemble Methods)。本篇将用Iris鸢尾花分类为例,详细讲解Bagging和Boosting的原理、流程和代码,让你像看层次聚类那篇一样,能一步步跟着学会。

注:本文章含大量数学算式、详细例子说明及代码演示,大量干货,建议先收藏再慢慢观看理解。新频道发展不易,你们的每个赞、收藏跟转发都是我继续分享的动力!

注:本文章颇长近7000字,非常耗时制作,建议先收藏再慢慢观看。新频道发展不易,你们的每个赞、收藏跟转发都是我继续分享的动力!


一、Bagging(以随机森林为例)

1. 原理简介

Bagging(Bootstrap Aggregating)通过对原始数据集有放回地抽样,生成多个训练子集,每个子集训练一个基学习器(通常是决策树),最后对所有模型的预测结果进行投票(分类)或平均(回归),从而提升整体模型的稳定性和准确率。

数学表达:

  • 分类:

\hat{y} = \mathrm{mode}\{h_1(x), h_2(x), ..., h_M(x)\}

  • 回归:

\hat{y} = \frac{1}{M} \sum_{m=1}^M h_m(x)

其中 $h_m(x)$ 为第 $m$ 个基学习器,$M$ 为模型数。


2. 详细案例流程(以Iris数据集为例)

数据集

我们用经典的鸢尾花(Iris)数据集,共150条数据4个特征3个类别

Step 1:数据准备
  • 加载Iris数据集

  • 划分训练集和测试集(如70%训练,30%测试)

Step 2:Bootstrap采样
  • 从训练集有放回地随机抽样,生成10个与原训练集等大的子集(假设n_estimators=10)

  • 每个子集可能有重复数据,也可能遗漏部分原始样本

Step 3:训练基学习器
  • 对每个子集,训练一棵决策树(弱学习器)

Step 4:集成预测
  • 对每个测试样本,让10棵树分别预测类别

  • 统计10个预测结果,采用多数投票,得出最终预测类别

Step 5:评估结果
  • 计算整体准确率,对比单棵树的效果


3. Python代码实现

注:记得要先 pip install scikit-learn Library喔~

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.inspection import DecisionBoundaryDisplay

# 加载数据,只用前两个特征
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X[:, :2], y, test_size=0.3, random_state=42)

# Bagging集成决策树
bagging_model = BaggingClassifier(
    estimator=DecisionTreeClassifier(max_depth=2),
    n_estimators=10,
    random_state=42
)
bagging_model.fit(X_train, y_train)

# 绘制决策
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值