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

机器学习中的集成算法与 k 均值聚类算法概述

在机器学习领域,集成算法与聚类算法是两类重要的技术方法。前者通过组合多个学习器提升模型性能,后者则专注于无监督场景下的数据分析与分组。以下结合相关 PPT 内容,对这两类算法进行详细梳理。

一、集成算法:组合多个学习器的协同学习

集成算法(集成学习)的核心思想源于 “集体智慧”—— 将多个个体学习器的判断进行综合,往往能得到比单一学习器更优的结果。其本质是通过构建并结合多个学习器完成学习任务,关键在于如何有效 “结合” 个体学习器的输出。

1. 集成学习的结合策略

集成结果的生成主要依赖三种策略:

简单平均法:直接对多个个体学习器的输出取平均值(适用于回归任务)。

加权平均法:为不同学习器分配权重(权重非负且总和为 1),通过加权求和得到最终结果,更重视表现优异的学习器。

投票法:针对分类任务,采用 “少数服从多数” 原则,即多个学习器对样本的预测中,占比最高的类别为最终结果。

2. 集成算法的分类

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

(1)Bagging:并行化的集成方法

Bagging(全称 bootstrap aggregation)通过并行训练多个分类器,最终取平均或投票结果。其核心是 “bootstrap 抽样”—— 有放回地从训练集中采样,为每个学习器构建不同的训练数据,降低个体学习器的相关性。 随机森林是 Bagging 的典型代表,其 “随机” 体现在两方面:数据采样随机、特征选择随机;“森林” 则指由多个决策树并行组成。 随机森林的优势包括:能处理高维数据且无需特征选择、可评估特征重要性、支持并行计算、结果易可视化。在 sklearn 中,通过RandomForestClassifier(分类)和RandomForestRegressor(回归)实现,关键参数有树的数量(n_estimators)、是否采用袋外评估(oob_score)等。

(2)Boosting:串行化的集成方法

Boosting 通过串行生成个体学习器,后一个学习器会基于前一个的表现调整训练数据权重(错分样本权重提高),最终按学习器的准确性分配权重并组合。 AdaBoost是 Boosting 的典型代表,步骤为:

  1. 初始化样本权重(所有样本权重相同);
  2. 训练弱分类器,根据分类结果调整权重(正确分类样本权重降低,错误分类样本权重提高);
  3. 重复训练新的弱分类器,直至满足停止条件;
  4. 组合所有弱分类器,准确性高的学习器权重更大。
(3)Stacking:分阶段的聚合方法

Stacking 是一种 “暴力聚合” 策略,可整合多种分类器(如 KNN、SVM、随机森林等)。其核心是分阶段训练:第一阶段用不同分类器对数据预测,得到中间结果;第二阶段以中间结果为输入,训练新的模型生成最终输出。

二、k 均值算法:无监督的聚类方法

k 均值算法是聚类算法的经典代表,属于无监督学习(无标签数据),核心是将相似数据分到同一组(簇),实现数据的自然分组。

1. 聚类的核心概念

无监督学习:无需人工标注标签,模型自动从数据中发现规律。

聚类目标:使同一簇内数据相似度高(类内紧密),不同簇数据相似度低(类间分散)。

难点:聚类结果的评估(无标签参考)、参数调优(如簇数量 k 的确定)。

2. 距离度量:判断数据相似度的标准

聚类中常用两种距离度量:

欧式距离:衡量多维空间中两点的绝对距离,如二维空间中为\(\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}\),n 维空间中为各维度差值平方和的平方根。

曼哈顿距离:衡量两点在标准坐标系上的绝对轴距总和,如二维空间中为\(|x_1-x_2|+|y_1-y_2|\)。

3. k 均值算法的步骤

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

4. 算法评估与优缺点

CH 指标:用于评估聚类效果,通过计算类内紧密度(样本与簇中心的距离平方和)和类间分离度(簇中心与全局中心的距离平方和),值越大说明聚类效果越好(类内越紧密、类间越分散)。

优点:原理简单、计算快速,适合常规数据集,复杂度与样本量呈线性关系。

缺点:k 值需人工预设(难确定最优值)、对初始簇中心敏感、难以处理非凸形状的簇。

5. 实现与参数

在 sklearn 中,可通过make_blobs生成聚类数据集,关键参数包括样本数(n_samples)、特征数(n_features)、类别数(centers)等;通过KMeans实现聚类,核心参数有簇数量(n_clusters)、最大迭代次数(max_iter)等。

总结

集成算法通过组合多个学习器提升性能,Bagging、Boosting、Stacking 分别以并行、串行、分阶段方式实现;k 均值算法则通过距离度量和迭代优化,实现无监督数据的聚类分组。两类算法在机器学习中应用广泛,前者适用于分类、回归等监督任务,后者适用于数据探索、分组等无监督场景,理解其原理与特性有助于更好地选择和应用算法。

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

相关文章:

  • 机器学习5
  • 解决办法:Chrome插件不能用,这些扩展程序不再受支持,因此已停用
  • 动态寻北仪如何在矿用掘进机中进行应用?
  • 用Vue2和Echarts画图的基本流程
  • AI升级社区便民服务:AI办事小程序高效办证+应急系统秒响应,告别跑腿愁住得更安心
  • K8s快速上手-微服务篇
  • AI资深 Java 研发专家系统解析Java 中常见的 Queue实现类
  • 【尝试】在macOS上安装cvat
  • unity实现点击rawimage,确定对应的世界坐标点
  • 记录前端菜鸟的日常——小程序内嵌H5页面自定义分享按钮
  • 环形子数组的最大和
  • Ubuntu24.04 交叉编译libuv库(已编译好的) 之undefined reference to `pthread_getname_np‘解决
  • VMware Workstation里的Ubuntu22.04找不到共享文件夹
  • Ubuntu Server 安装 gvm 管理 Go 语言开发环境
  • 代码随想录Day58:图论(拓扑排序精讲、最短路算法dijkstra朴素版精讲)
  • Android焦点窗口变化导致遥控键值监听失效问题分析
  • AI编程避坑指南:常见错误与解决策略
  • 年化42%,最大回撤18%,卡玛比率2.3的策略可查看参数 | 全A股市场构建技术方案
  • 数据库审计是什么?主要功能详解与厂商解析
  • 第7章 区分鸟和飞机:从图像学习
  • 【网络运维】初见Shell:Shell 变量基础知识
  • Vue图解!!!Vue的生命周期管理【7】
  • MFC中使用libtorch的实例
  • 【一分钟教程】用ZMC600E实现关节机器人±180度精准转动
  • Ubuntu网络图标消失/以太网卡显示“未托管“
  • 人工智能之数学基础:随机变量和普通变量的区别?
  • 什么是测度?
  • 实践题:智能客服机器人设计
  • 魔乐开发者教程 | 基于openMind实现大模型微调指南(二):大模型微调实操
  • 图像边缘检测