当前位置: 首页 > news >正文

站长交流平台简单的网页设计代码记事本

站长交流平台,简单的网页设计代码记事本,淘宝做短视频网站,网站建设php心得体会目录 集成学习介绍 1. 核心思想 2. 为什么有效? 3. 主要流派与方法 A. 并行方法:Bagging (Bootstrap Aggregating) B. 串行方法:Boosting C. 堆叠法:Stacking 代码示例 Bagging 的代表 —— 随机森林 (Random Forest) 集成…

目录

集成学习介绍

1. 核心思想

2. 为什么有效?

3. 主要流派与方法

A. 并行方法:Bagging (Bootstrap Aggregating)

B. 串行方法:Boosting

C. 堆叠法:Stacking

代码示例

Bagging 的代表 —— 随机森林 (Random Forest)


集成学习介绍

1. 核心思想

集成学习是一种机器学习范式,其核心思想非常直观:“三个臭皮匠,顶个诸葛亮”。它通过构建并结合多个基学习器(Base Learners) 来完成学习任务,而不是只使用一个单一的模型。

通过将多个性能可能仅优于随机猜测的弱学习器(Weak Learners) 组合起来,集成方法往往能够形成一个强学习器(Strong Learner),获得比任何单一模型都更加显著优越的泛化性能。

2. 为什么有效?

集成学习有效的根本原因在于它降低了模型的方差(Variance)偏差(Bias),或同时降低两者,从而避免了过拟合或欠拟合。

  1. 统计角度: 假设一个分类任务,25个基分类器每个的错误率为 ε = 0.35。如果使用简单投票法集成,并且假设分类器之间相互独立,那么集成分类器出错的概率(即超过一半的分类器都出错)会远低于 0.35。这大大提高了准确性。
  2. 计算角度: 很多学习算法(如决策树)对数据微小变动非常敏感,容易陷入局部最优。通过多次运行并平均结果,集成方法可以平滑掉这种不稳定性,找到一个更稳定、更鲁棒的解决方案。
  3. 表示角度: 真实世界的假设空间可能非常庞大,单个模型可能无法找到最优解。集成多个模型相当于扩展了假设空间,从而有可能逼近那个真正的、更优的解。

3. 主要流派与方法

集成学习方法主要分为两大类:

A. 并行方法:Bagging (Bootstrap Aggregating)
  • 核心思想:通过自助采样法(Bootstrap Sampling) 从原始数据集中随机有放回地抽取多个子集,并行地训练多个基学习器,然后通过投票(分类) 或平均(回归) 的方式结合预测结果。
  • 目标:主要旨在降低方差,特别适用于那些容易过拟合的复杂模型(如深度决策树)。
  • 典型算法
    • 随机森林(Random Forest): Bagging 的升级版和代表作。它在构建每棵决策树时,不仅对样本进行随机采样,还对特征进行随机采样。这种“双重随机性”进一步增强了模型的多样性和泛化能力,有效防止过拟合。
B. 串行方法:Boosting
  • 核心思想:基学习器是串行训练的。后续的模型会更加关注先前模型预测错误的样本,通过不断调整样本的权重或拟合残差,逐步提升整体性能。
  • 目标:主要旨在降低偏差,将多个弱学习器提升为一个强学习器。
  • 典型算法
    • AdaBoost (Adaptive Boosting): 通过逐步提高被错误分类样本的权重,迫使后续的弱分类器重点关注这些难分的样本。
    • 梯度提升(Gradient Boosting): 不再是调整样本权重,而是通过拟合损失函数的负梯度(即残差) 来迭代地构建模型。每一个新模型都是在学习之前所有模型加总的残差。
    • XGBoost, LightGBM, CatBoost: 这些都是 Gradient Boosting 的高效、高性能实现,在各类数据科学竞赛中占据统治地位。它们通过优化计算速度、处理缺失值、防止过拟合等方面进行了大量改进。
C. 堆叠法:Stacking
  • 核心思想:训练多个异质的基学习器(第一层模型),然后不是简单投票,而是训练一个元学习器(Meta-Learner,第二层模型) 来整合基学习器的预测结果,以得到最终的输出。
  • 目标:结合不同模型的优势,形成更强大的预测能力。

代码示例

Bagging 的代表 —— 随机森林 (Random Forest)

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, confusion_matrix, ConfusionMatrixDisplay
from sklearn.tree import DecisionTreeClassifier# 1. 加载数据(威斯康星州乳腺癌数据集)
data = load_breast_cancer()
X, y = data.data, data.target
feature_names = data.feature_names# 2. 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)print("数据集形状:", X.shape)  # (569, 30)
print("特征示例:\n", feature_names[:5])  # ['mean radius' 'mean texture' 'mean perimeter' 'mean area' 'mean smoothness']
print("目标标签: 0-恶性(Malignant), 1-良性(Benign)")  # 0-恶性(Malignant), 1-良性(Benign)# 3. 训练一个单一的决策树(作为对比基准)
single_tree = DecisionTreeClassifier(random_state=42)
single_tree.fit(X_train, y_train)
y_pred_tree = single_tree.predict(X_test)
acc_tree = accuracy_score(y_test, y_pred_tree)
print(f"\n单一决策树准确率: {acc_tree:.4f}")  # 0.9474# 4. 训练随机森林集成模型
# n_estimators: 森林中树的数量
# max_features: 寻找最佳分割时考虑的最大特征数,'sqrt'是常用值,即总特征数的平方根
# random_state: 确保结果可重现
rf_clf = RandomForestClassifier(n_estimators=100, max_features='sqrt', random_state=42)
rf_clf.fit(X_train, y_train)# 5. 在测试集上进行预测并评估
y_pred_rf = rf_clf.predict(X_test)
acc_rf = accuracy_score(y_test, y_pred_rf)
print(f"随机森林准确率: {acc_rf:.4f}")  # 0.9649# 6. 可视化特征重要性(集成模型的强大附加功能)
importances = rf_clf.feature_importances_
indices = np.argsort(importances)[::-1] # 按重要性降序排列索引plt.figure(figsize=(10, 6))
plt.title("Random Forest - Feature Importances")
plt.bar(range(X_train.shape[1]), importances[indices], align='center')
plt.xticks(range(X_train.shape[1]), [feature_names[i] for i in indices], rotation=90)
plt.tight_layout()
plt.show()# 7. 绘制混淆矩阵
cm = confusion_matrix(y_test, y_pred_rf, labels=rf_clf.classes_)
disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=['Malignant', 'Benign'])
disp.plot(cmap='Blues')
plt.title("Random Forest Confusion Matrix")
plt.show()

http://www.dtcms.com/a/563652.html

相关文章:

  • 学做网站论坛教程下载为网站设计手机版
  • 网站建设方案服务公司pc网站建设怎么做
  • 东莞高端网站建设收费标准做兼职的网站策划书
  • 网站开发课程有哪些图书馆网站建设策划书
  • 急求一张 网站正在建设中的图片茶叶网站flash模板
  • 营销型网站建设的指导原则不包括谷歌外贸网站seo怎么做
  • 公司网站与营销网站区别河北省建筑培训网
  • 企业制作网站珠海网站建设托管
  • 吉林省城乡住房建设厅网站北京移动端网站设计
  • 微信端怎么建设网站黑客以网站做跳板入侵方法
  • 网站建设公司外包中企业网站建设
  • 网站主播天津通用网站建设方案
  • 怎么看网站什么时候做的龙口建网站公司价格
  • wordpress网站性能国家高新技术企业
  • 网站开发助手做网站学哪方面知识
  • 站长之家特效网站重庆网站模板制作
  • 做佛像在什么网站发贴效果好点家教网站开发
  • 怎么用源码建站大连网站建设方案维护
  • 教师做爰网站延边企业网站建设
  • 设计师投稿网站香山网站建设
  • 做网站的是些什么公司深圳app开发公司排名前十
  • 为代理网站做网站怎么看实时街景地图
  • 外贸网站建设推广优化织梦电影网站模板
  • 网站建设 的类型有哪些百度公司网站排名怎么做
  • 手机app设计网站建设纪念平台网站建设
  • 百度怎么免费做网站网站建设推广总结
  • 合肥企业网站模板建站知乎问答网站开发教程
  • 南联网站建设哪家好3d建模要学多久
  • 中文博客网站模板网站建设学什么语言
  • 广西建设厅微信网站深圳优秀网站建设公司