集成学习实战:Bagging/Boosting/Stacking

集成学习实战:Bagging/Boosting/Stacking

1. 集成学习原理

复制代码
集成学习(Ensemble Learning):
├── 核心思想:多个弱学习器组合成强学习器
├── 三大方法:
│   ├── Bagging:并行训练,投票/平均(随机森林)
│   ├── Boosting:串行训练,逐步纠错(XGBoost)
│   └── Stacking:多层模型,元学习器组合
└── 优势:降低方差、降低偏差、提高泛化能力

2. Bagging

python 复制代码
from sklearn.ensemble import BaggingClassifier, BaggingRegressor
from sklearn.tree import DecisionTreeClassifier

# Bagging 分类
bagging = BaggingClassifier(
    estimator=DecisionTreeClassifier(),
    n_estimators=100,
    max_samples=0.8,
    max_features=0.8,
    bootstrap=True,
    random_state=42,
    n_jobs=-1
)
bagging.fit(X_train, y_train)

3. Boosting

python 复制代码
# AdaBoost
from sklearn.ensemble import AdaBoostClassifier
ada = AdaBoostClassifier(
    n_estimators=100,
    learning_rate=0.1,
    random_state=42
)
ada.fit(X_train, y_train)

# Gradient Boosting
from sklearn.ensemble import GradientBoostingClassifier
gb = GradientBoostingClassifier(
    n_estimators=100,
    max_depth=3,
    learning_rate=0.1,
    subsample=0.8,
    random_state=42
)
gb.fit(X_train, y_train)

# XGBoost
import xgboost as xgb
xgb_clf = xgb.XGBClassifier(
    n_estimators=100,
    max_depth=6,
    learning_rate=0.1,
    random_state=42
)
xgb_clf.fit(X_train, y_train)

# LightGBM
import lightgbm as lgb
lgb_clf = lgb.LGBMClassifier(
    n_estimators=100,
    max_depth=6,
    learning_rate=0.1,
    random_state=42
)
lgb_clf.fit(X_train, y_train)

4. Stacking

python 复制代码
from sklearn.ensemble import StackingClassifier
from sklearn.linear_model import LogisticRegression

# 定义基学习器
estimators = [
    ('rf', RandomForestClassifier(n_estimators=100)),
    ('svm', SVC(probability=True)),
    ('xgb', xgb.XGBClassifier(n_estimators=100))
]

# Stacking
stacking = StackingClassifier(
    estimators=estimators,
    final_estimator=LogisticRegression(),
    cv=5,
    n_jobs=-1
)
stacking.fit(X_train, y_train)

5. 投票集成

python 复制代码
from sklearn.ensemble import VotingClassifier

# 硬投票
voting_hard = VotingClassifier(
    estimators=estimators,
    voting='hard'
)

# 软投票(概率平均)
voting_soft = VotingClassifier(
    estimators=estimators,
    voting='soft'
)

总结

方法 代表算法 优势 适用场景
Bagging 随机森林 降低方差 高方差模型
Boosting XGBoost 降低偏差 高偏差模型
Stacking 多模型组合 综合优势 竞赛/复杂场景
相关推荐
奥惟斯1 小时前
GEO 上线前,先把这 3 类实体信号地基补上
人工智能·深度学习·机器学习·自然语言处理·数据挖掘·数据分析·知识图谱
民乐团扒谱机2 小时前
【一文吃透】机器学习 Embedding 降维打击:从底层空间几何原理到 RAG 向量检索工程实战避坑
人工智能·机器学习·embedding
我要见SA姐13 小时前
Chrome 扩展安全攻防实录:从权限滥用到供应链投毒
运维·人工智能·python·机器学习·自动化
ZZHow10248 小时前
神经网络与深度学习笔记_Day1
人工智能·pytorch·笔记·python·深度学习·神经网络·机器学习
在所不辞兄9 小时前
【人工智能驱动的电催化研究-01】人工智能是什么?AI、机器学习、深度学习和神经网络之间有什么区别?
人工智能·深度学习·神经网络·机器学习·有限元仿真·电化学·电催化
罗西的思考20 小时前
【轻量化复刻大模型 / KIMI K3】KDA(Kimi Delta Attention):并行
人工智能·算法·机器学习
方方洛1 天前
ray教程-23-附录C-术语表
人工智能·分布式·机器学习
程序猿编码1 天前
解决 LLM 算力浪费,一套统一 KV 管理层实现缓存复用
人工智能·神经网络·机器学习·缓存·llm·大模型推理
Blockbuater_drug1 天前
《经典机器学习实战》第 1 课:导论——是什么、简史、负责任 AI 与标准流程
机器学习·scikit-learn·监督学习·数据清洗·过拟合·训练集测试集·公平性
武天旭1 天前
AI安全--AI大模型的关键技术组成
人工智能·深度学习·安全·机器学习