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

机器学习核心算法笔记:集成学习与聚类算法

一、集成学习(Ensemble Learning)

1. 集成学习概述

集成学习的核心思想源于 “集体智慧”:对于复杂任务,多个学习器的综合判断通常优于单个学习器。其本质是通过构建并结合多个个体学习器,提升模型的泛化能力和稳定性。

结合策略主要包括:

  1. 简单平均法:对多个学习器的输出取算术平均(适用于回归任务)。
  2. 加权平均法:根据学习器的性能分配权重,权重非负且总和为 1,公式为 \(H(x) = \sum_{i=1}^{T} w_i h_i(x)\)(\(w_i\)为权重,\(h_i(x)\)为个体学习器输出)。
  3. 投票法:分类任务中采用 “少数服从多数” 原则,多数学习器预测的类别作为最终结果。

2. 集成学习分类

根据个体学习器的生成方式,集成学习可分为三类:

分类核心特点代表算法生成方式
Bagging个体学习器无强依赖,可并行生成随机森林通过 bootstrap 抽样(有放回采样)生成不同训练集,并行训练多个学习器
Boosting个体学习器强依赖,需串行生成AdaBoost根据前一轮学习器的误差调整样本权重,串行训练学习器,最终加权组合
Stacking分阶段聚合多模型无固定代表第一阶段用多个基础模型生成预测结果,第二阶段用新模型学习这些结果与真实标签的关系

3. 核心算法详解

(1)Bagging 与随机森林

Bagging 原理:全称 “Bootstrap Aggregation”,通过对原始数据集进行有放回抽样(bootstrap),生成多个不同的训练集,并行训练多个同质学习器,最终通过投票(分类)或平均(分类)输出结果,公式为 \(f(x) = \frac{1}{M} \sum_{m=1}^{M} f_m(x)\)(M为学习器数量)。

  • 随机森林(Random Forest):

    1. “随机” 体现:数据采样随机(bootstrap 抽样)、特征选择随机(每个节点分裂时随机选择部分特征)。
    2. “森林” 体现:由多个决策树并行组成,通过多数投票确定最终分类结果。
    • 优势:
      1. 可处理高维数据,无需预处理特征选择;
      2. 能评估特征重要性;
      3. 支持并行计算,训练速度快;
      4. 结果可可视化,便于分析。
    • 关键参数:
      1. n_estimators:树的数量(默认 100);
      2. oob_score:是否用袋外数据评估(默认 False,True 时等效交叉验证);
      3. bootstrap:是否有放回抽样(默认 True)。
(2)Boosting 与 AdaBoost
  • Boosting 原理:从弱学习器(性能略优于随机猜测)开始,通过迭代调整样本权重和学习器权重,逐步强化模型性能。

  • AdaBoost 步骤:

    1. 初始化所有样本权重相等;
    2. 训练弱学习器,对分类错误的样本提高权重,正确样本降低权重;
    3. 基于更新后的样本集训练下一个弱学习器;
    4. 最终组合所有弱学习器,误差率低的学习器赋予更高权重。

二、k 均值聚类(k-means Clustering)

1. 聚类概述

聚类是无监督学习的核心任务,目标是将相似样本自动归为一类,核心挑战是距离度量和聚类评估。

2. 距离度量方法

  1. 欧式距离:衡量多维空间中两点的绝对距离,n 维空间公式为 \(d = \sqrt{\sum_{i=1}^{n} (x_i - y_i)^2}\)(二维空间为 \(d = \sqrt{(x_1-x_2)^2 + (y_1-y_2)^2}\))。
  2. 曼哈顿距离:衡量两点在标准坐标系中的轴距总和,平面公式为 \(d(i,j) = |x_1 - x_2| + |y_1 - y_2|\)。

3. k 均值算法流程

k 均值是最经典的聚类算法,核心是通过迭代优化聚类中心实现样本分组:

  1. 初始化:随机选择 k 个样本作为初始聚类中心;
  2. 聚类分配:计算每个样本到各中心的距离,将样本指派到最近的中心所在簇;
  3. 更新中心:计算每个簇的样本均值,作为新的聚类中心;
  4. 迭代收敛:重复步骤 2-3,直至中心不再变化或达到最大迭代次数,输出最终聚类结果。

4. 聚类评估与算法特性

  • CH 指标:评估聚类质量的核心指标,通过类内紧密度(样本与簇中心距离平方和)和类间分离度(簇中心与总中心距离平方和)计算,值越大表示聚类效果越好(类内越密、类间越散)。

  • 优点:

    1. 简单高效,时间复杂度与样本量呈线性关系,适合大规模数据集;
    2. 易于实现和理解。
  • 缺点:

    1. 需手动指定 k 值,且对初始中心敏感;
    2. 难以处理非凸形状或密度差异大的簇;
    3. 对噪声和异常值较敏感。

5. 关键函数与参数

  1. 数据生成:make_blobs()用于生成聚类数据集,关键参数包括n_samples(样本数)、n_features(特征数)、centers(类别数)、cluster_std(类别方差)。
  2. 聚类实现:KMeans()用于执行 k 均值聚类,关键参数包括n_clusters(簇数量)、max_iter(最大迭代次数)、n_init(算法运行次数)、random_state(随机种子)。

三、总结

  1. 集成学习通过组合多个学习器提升监督学习性能,Bagging(随机森林)适合并行高效场景,Boosting(AdaBoost)适合逐步优化误差,Stacking 适合复杂场景的多模型融合。
  2. k 均值聚类是无监督学习的基础算法,通过距离度量和中心迭代实现样本分组,适合简单分布数据集,但需注意 k 值选择和聚类形状限制。
http://www.xdnf.cn/news/18557.html

相关文章:

  • springboot人事管理系统源码和论文
  • c#语言的学习【02,函数重载】
  • GPT5 / 深度研究功能 无法触发
  • 网络流量分析——基础知识(二)(Tcpdump 基础知识)
  • HTTP/2 性能提升的核心原因
  • 笔记本电脑Windows+Ubuntu 双系统,Ubuntu无法挂载Windows的硬盘 报错问题解决
  • nginx-重定向-正则表达式-路由匹配优先级
  • 最新react,vue 解决无法使用js触发点击,解决方案
  • SamOutVXP: 轻量级高效语言模型
  • 通信工程学习:什么是Camera Calibration相机标定
  • WaitForSingleObject函数详解
  • python测试开发django-1.开始hello world!
  • 机器学习--聚类算法、集成算法
  • 集中式负载均衡 vs. 分布式负载均衡
  • 银河麒麟V10防火墙下访问NFS共享:端口开放全攻略
  • WindowsAPI|每天了解几个winAPI接口之网络配置相关文档Iphlpapi.h详细分析七
  • uniapp实现分页,效果如图
  • C++——C++重点知识点复习2(详细复习模板,继承)
  • 大模型部署
  • 基于随机森林的红酒分类与特征重要性分析
  • DeepSeek辅助编写的将xlsx格式文件中sheet1.xml按需分别保留或去掉标签的程序
  • 服务器间大文件迁移
  • 领域专用AI模型训练指南:医疗、法律、金融三大垂直领域微调效果对比
  • 电商项目_微服务_架构
  • 2025年国内AI大模型现状浅析
  • Shell 脚本条件测试
  • 一款更适合 SpringBoot 的API文档新选择(Spring Boot 应用 API 文档)
  • Rancher 管理的 K8S 集群中部署常见应用(MySQL、Redis、RabbitMQ)并支持扩缩容的操作
  • SpringBoot4发布!新特性解析
  • 2025.8.21总结