机器学习之集成学习算法

集成学习算法

    • 一 概述
    • 二 Bagging方法
      • 2.1思想
      • 2.2代表算法
      • 2.3API
    • 三 Boosting 方法
      • 3.1 AdaBoost
        • 3.1.1思想
        • 3.1.2API
      • 3.2 GBDT
        • 3.2.1思想
        • 3.2.2API
      • 3.3 XGBoost
        • 3.3.1思想
        • 3.3.2API

机器学习算法很多,今天和大家聊一个很强悍的算法- 集成学习算法,基本上是处理复杂问题的首选.话不多说,直奔主题.

一 概述

集成学习(Ensemble Learning): 是一种通过 组合多个模型的预测结果 来提升整体性能 的机器学习技术。常用于分类、回归等任务.
集成学习的基本思想: 是将多个弱模型(weak learners)组合成一个强模型(strong learner),从而获得更好的预测效果.
中心思想:简单说就是弱弱变强或者强强联合.

二 Bagging方法

2.1思想

Bagging(Bootstrap Aggregating)又称装袋法 是一种 并行训练 多个模型的方法, 使用 Bootstrap方法,即:通过有放回 的对训练数据集进行 随机采样 得到多个数据子集,每个子集的大小与原始数据集相同。并 在每个子集上 训练一个独立的模型,结合这些模型的预测结果 来减少方差(即:模型的波动性),最后通过 投票或平均 的方法 作为最终结果.

可以处理回归问题也可处理分类问题,才用不同的评估方式:

对于 回归问题,通常使用 平均值 作为 最终预测结果
对于 分类问题,通常使用 多数投票法 来决定最终 分类结果

2.2代表算法

随机森林:一种通过 样本和特征随机化 构建 多棵决策树 并集成它们结果的集成学习方法。在训练过程中,随机森林对训练数据进行 有放回的随机抽样(Bootstrap 采样),为每棵决策树生成不同的训练子集。同时,在每个决策树的节点分裂时,随机选择特征子集以进行最佳分裂,增加了模型的多样性并降低了过拟合风险。最终,分类任务通过多数投票法整合各棵树的预测结果,回归任务则通过对预测值取平均值生成最终预测。由于两种随机化的引入,随机森林在面对高维数据或噪声数据时表现稳定且具有较强的泛化能力。

2.3API

scikit-learn 中, 通过 ensemble 中的 RandomForestClassifierRandomForestRegressor 实现:

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

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

# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 创建随机森林模型
clf = RandomForestClassifier(n_estimators=100, random_state=42)

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

# 预测
y_pred = clf.predict(X_test)

# 输出准确率
print(f"Accuracy: {
     clf.score(X_test, y_test)}")

常用 API 参数(以

你可能感兴趣的:(机器学习,集成学习,算法)