十七、【机器学习】【非监督学习】- K-均值 (K-Means)

news2024/9/17 8:36:37

系列文章目录

第一章 【机器学习】初识机器学习

第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression)

第三章 【机器学习】【监督学习】- 支持向量机 (SVM)

第四章【机器学习】【监督学习】- K-近邻算法 (K-NN)

第五章【机器学习】【监督学习】- 决策树 (Decision Trees)

第六章【机器学习】【监督学习】- 梯度提升机 (Gradient Boosting Machine, GBM)

第七章 【机器学习】【监督学习】-神经网络 (Neural Networks)

第八章【机器学习】【监督学习】-卷积神经网络 (CNN)

第九章【机器学习】【监督学习】-循环神经网络 (RNN)

第十章【机器学习】【监督学习】-线性回归

第十一章【机器学习】【监督学习】-局部加权线性回归 (Locally Weighted Linear Regression, LWLR)

第十二章【机器学习】【监督学习】- 岭回归 (Ridge Regression)

十三、【机器学习】【监督学习】- Lasso回归 (Least Absolute Shrinkage and Selection Operator)

十四、【机器学习】【监督学习】- 弹性网回归 (Elastic Net Regression)

十五、【机器学习】【监督学习】- 神经网络回归 

十六、【机器学习】【监督学习】- 支持向量回归 (SVR)


目录

系列文章目录

一、非监督学习

(一)、定义

(二)、训练流程

(三)、基本算法分类

 二、K-均值 (K-Means)

(一)、定义

(二)、基本概念

(三)、训练过程

(四)、特点

(五)、适用场景

(六)、扩展

三、总结


一、非监督学习

(一)、定义

        非监督学习是一种机器学习方法,它处理的是没有标签的数据集。与监督学习不同,非监督学习算法不需要知道数据的正确分类或目标值。它的目标是通过数据内部的结构和模式来推断出有意义的信息,如数据的分布、聚类、降维或异常检测等。

(二)、训练流程

        非监督学习的训练流程通常包含以下几个步骤:

  1. 数据准备:收集和预处理数据,可能包括数据清洗、缺失值处理、数据标准化或归一化等。

  2. 模型选择:根据问题的性质选择合适的非监督学习算法。

  3. 参数初始化:初始化模型的参数,这一步对于某些算法至关重要,如K-means聚类。

  4. 模型训练:使用无标签数据训练模型,寻找数据中的结构或模式。这一过程可能涉及到迭代优化,直到满足某个停止准则,如收敛或达到预定的迭代次数。

  5. 结果评估:评估模型的结果,这通常比监督学习更具有挑战性,因为没有明确的“正确答案”。评估可能基于内在指标(如聚类的紧凑度和分离度)或外在指标(如与已知分类的比较)。

  6. 应用模型:使用训练好的模型对新数据进行分析或预测,如对新数据进行聚类或降维。

(三)、基本算法分类

        非监督学习算法可以大致分为以下几类:

  1. 聚类算法:用于将数据点分组到不同的簇中,常见的算法有K-means、层次聚类、DBSCAN、Gaussian Mixture Models等。

  2. 降维算法:用于减少数据的维度,同时尽可能保留数据的结构信息,常见的算法有PCA(主成分分析)、t-SNE(t-分布随机邻域嵌入)、自编码器等。

  3. 关联规则学习:用于发现数据集中项之间的关系,如Apriori算法和Eclat算法。

  4. 异常检测算法:用于识别数据集中的异常点或离群点,如Isolation Forest、Local Outlier Factor等。

  5. 自组织映射(SOM):一种神经网络模型,用于数据可视化和聚类,可以将高维数据映射到低维空间中。

  6. 生成模型:如变分自编码器(VAE)和生成对抗网络(GAN),它们可以生成类似训练数据的新样本。

        非监督学习在很多场景中都有广泛应用,如客户细分、图像识别、自然语言处理、生物信息学和推荐系统等。由于其灵活性和在处理大量未标注数据时的优势,非监督学习是数据科学和人工智能领域的重要组成部分。


 二、K-均值 (K-Means)

(一)、定义

     K-Means是一种无监督学习的聚类算法,主要用于将数据集分割成K个互不相交的子集(或簇),每个子集中的数据点彼此相似,而不同子集间的数据点差异较大。K-Means算法通过最小化簇内数据点到簇中心(均值)的平方距离之和来达到聚类的目的。

(二)、基本概念

  1. 簇 (Cluster):数据集中形成的每个分组称为一个簇,算法的目标是创建K个这样的簇。
  2. 质心 (Centroid):每个簇的中心点,通常定义为该簇中所有数据点的平均位置。
  3. 距离度量:K-Means通常使用欧几里得距离来衡量数据点之间的相似性或差异性。
  4. 初始化:K-Means开始时需要随机选择K个数据点作为初始质心。
  5. 收敛条件:算法在质心不再发生显著变化或达到预定的迭代次数时停止。

(三)、训练过程

     K-Means算法是一种迭代型的聚类算法,其训练过程主要包括以下几个关键步骤:

1. 初始化
  • 选择K个初始质心:随机选取数据集中的K个点作为初始质心。这些点可以是随机选择的数据点,也可以是数据集中的随机位置。选择的方式会影响到后续迭代的速度和最终聚类的结果。
2. 分配数据点
  • 计算距离:对于数据集中的每一个点,计算其到所有K个质心的距离。通常采用欧几里得距离,但也可以使用其他距离度量,如曼哈顿距离。
  • 分配簇:将每个数据点分配给距离最近的质心所代表的簇。这意味着数据点将加入到与其最近的质心相同的簇中。
3. 更新质心
  • 计算新质心:对于每个簇,计算其所有数据点的平均值,这个平均值将成为新的质心。如果簇为空,则可能需要采取某种策略来处理,比如将其保持不变或重新初始化。
4. 判断收敛
  • 检查质心变化:比较新旧质心的位置,如果质心的位置变化小于某个阈值或者达到预设的最大迭代次数,则认为算法已经收敛,可以停止迭代。
  • 迭代:如果质心仍在显著变化,回到步骤2,重复分配数据点和更新质心的过程。
5. 结果输出
  • 输出聚类结果:一旦算法收敛,输出最终的K个质心以及每个数据点所属的簇。这构成了K-Means算法的最终输出。
扩展:处理特定情况
  • 空簇处理:在某些迭代中,可能会出现某个簇没有数据点的情况,这时需要决定如何处理,常见的做法是将最近的未分配数据点分配给该簇,或者重新随机选择一个新的质心。
  • 随机初始化的影响:由于K-Means对初始质心的选择很敏感,可以使用多次随机初始化和运行算法,然后选择最佳的聚类结果。例如,使用K-Means++初始化方法可以改善算法的性能。
性能考虑
  • 优化算法:在大数据集上,可以使用近似算法或优化技巧来加速K-Means,如Mini-Batch K-Means,它每次只使用数据集的一小部分来更新质心,从而减少计算成本。

     K-Means算法的训练过程是迭代和渐进的,直到满足收敛条件为止。在整个过程中,算法试图最小化每个数据点到其所属簇质心的距离平方和,以此来优化聚类结果。

(四)、特点

  • 简单快速:算法实现简单,计算效率高。
  • 局部最优:容易陷入局部最优解,结果受初始质心选择影响。
  • K值选择:需要事先确定K的值,这可能需要领域知识或试错。
  • 球形簇假设:假设簇是球形的,且大小相似,对于其他形状的簇效果不佳。
  • 敏感性:对异常值敏感,异常值可能显著影响质心的位置。

(五)、适用场景

  • 市场细分:在市场营销中对客户进行分类。
  • 图像压缩:用于颜色量化,减少图像中颜色的数量。
  • 文档分类:基于词频将文档分成不同主题的类别。
  • 推荐系统:通过对用户行为进行聚类,为用户推荐相似兴趣的内容。
  • 基因表达分析:在生物信息学中,对基因表达数据进行聚类分析。

(六)、扩展

     K-Means存在一些限制,因此有许多变种和扩展,例如:

  • K-Medoids:使用簇中实际的数据点作为质心,而不是平均值,更健壮于异常值。
  • Gaussian Mixture Models (GMM):使用概率模型,可以处理不同大小和形状的簇。
  • Fuzzy C-Means (FCM):允许数据点属于多个簇,具有隶属度的概念。
  • Mini-Batch K-Means:在大数据集上使用随机样本批次来更新质心,提高效率。
  • Bisecting K-Means:通过递归地将簇一分为二来寻找最优聚类。

三、总结

        K-Means及其变种在数据科学和机器学习中占据重要地位,广泛应用于各种数据聚类问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1936272.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端Vue组件化实践:自定义发送短信验证码弹框组件

在前端开发中,随着业务逻辑的日益复杂和交互需求的不断增长,传统的整体式开发方式逐渐暴露出效率低下、维护困难等问题。为了解决这些问题,组件化开发成为了一种流行的解决方案。通过组件化,我们可以将复杂的系统拆分成多个独立的…

使用 OpenCV 和 YOLO 模型进行实时目标检测并在视频流中显示检测结果

文章目录 Github官网简介视频帧推理视频设备ID安装依赖 检测示例分类示例姿势估计 Github https://github.com/ultralytics/ultralytics 官网 https://docs.ultralytics.com/zhhttps://docs.ultralytics.com/zh/quickstart/ 简介 Ultralytics 是一个软件公司,专…

深入浅出WebRTC—NACK

WebRTC 中的 NACK(Negative Acknowledgment)机制是实时通信中处理网络丢包的关键组件。网络丢包是常见的现象,尤其是在无线网络或不稳定连接中。NACK 机制旨在通过请求重传丢失的数据包来减少这种影响,从而保持通信的连续性和质量…

【VUE】v-if和v-for的优先级

v-if和v-for v-if 用来显示和隐藏元素 flag为true时&#xff0c;dom元素会被删除达到隐藏效果 <div class"boxIf" v-if"flag"></div>v-for用来进行遍历&#xff0c;可以遍历数字对象数组&#xff0c;会将整个元素遍历指定次数 <!-- 遍…

《数据结构:C语言实现双链表》

文章目录 一、链表的分类二、双向链表1、概念与结构 三、双向链表实现1、双向链表要实现的功能2、哨兵位初始化3、双链表头插数据4、判断链表是否为空5、打印链表数据6、尾插数据7、头删数据8、尾删数据9、寻找数据所在结点10、在任意结点之后插入数据11、删除任意结点12、销毁…

debian 更新源

前言 实现一键替换在线源 一键更新源 Debian 全球镜像站以下支持现有debian 11 12 echo "Delete the default source" rm -rf /etc/apt/sources.listecho "Build a new source" cat <<EOF>>/etc/apt/sources.list.d/debian.sources Types:…

Shell的正确使用

目录 shell 介绍 变量名的定义规则 变量名定义&#xff1a; 删除变量 特殊的变量名&#xff1a; 算术运算符 逻辑运算符&#xff1a; (1)整数之间比较 (2)按照文件权限进行判断 (3)按照文件类型判断 (4)多条件判断 常用的特殊字符&#xff1a; 条件选择、判断 if判…

PHP上门按摩专业版防东郊到家系统源码小程序

&#x1f486;‍♀️【尊享级体验】上门按摩专业版&#xff0c;告别东郊到家&#xff0c;解锁全新放松秘籍&#xff01;&#x1f3e0;✨ &#x1f525;【开篇安利&#xff0c;告别传统束缚】&#x1f525; 亲们&#xff0c;是不是厌倦了忙碌生活中的疲惫感&#xff1f;想要享…

NET 语言识别,语音控制操作、语音播报

System.Speech. 》》System.Speech.Synthesis; 语音播报 》》System.Speech.Recognition 语音识别 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Speech.Recog…

[Redis]典型应用——分布式锁

什么是分布式锁&#xff1f; 在一个分布式系统中&#xff0c;也会涉及到多个节点访问同一个公共资源的情况。此时就需要通过锁来做互斥控制&#xff0c;避免出现类似于"线程安全"的问题 举个例子&#xff0c;在平时抢票时&#xff0c;多个用户可能会同时买票&#…

Linux——多路复用之poll

目录 前言 一、poll的认识 二、poll的接口 三、poll的使用 前言 前面我们学习了多路复用的select&#xff0c;知道多路复用的原理与select的使用方法&#xff0c;但是select也有许多缺点&#xff0c;导致他的效率不算高。今天我们来学习poll的使用&#xff0c;看看poll较于…

利用AI与数据分析优化招聘决策

一、引言 在竞争激烈的职场环境中&#xff0c;招聘是组织获取人才、实现战略目标的关键环节。然而&#xff0c;传统的招聘方式往往依赖人力资源部门的主观经验和直觉&#xff0c;难以准确预测招聘效果&#xff0c;评估招聘渠道的效率。随着人工智能&#xff08;AI&#xff09;…

Windows右键新建Markdown文件类型配置 | Typora | VSCode

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 今天毛毛张分享的是如何在右键的新建菜单中添加新建MarkdownFile文件&#xff0c;这是毛毛张分享的关于Typora软件的相关知识的第三期 文章目录 1.前言&#x1f3dd;…

Android车载MCU控制音量和ARM控制音量的区别和优缺点—TEF6686 FM/AM芯片

不要嫌前进的慢&#xff0c;只要一直在前进就好 文章目录 前言一、系统架构图1.MCU控制音量的架构图&#xff08;老方法&#xff09;2.ARM控制音量的架构图&#xff08;新方法&#xff09; 二、为啥控制音量不是用AudioManager而是执着去直接控制TDA7729&#xff1f;三、MCU控制…

[数据集][目标检测]婴儿车检测数据集VOC+YOLO格式1073张5类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;1073 标注数量(xml文件个数)&#xff1a;1073 标注数量(txt文件个数)&#xff1a;1073 标注…

Matlab基础语法篇(下)

Matlab基础语法&#xff08;下&#xff09; 一、逻辑基础&#xff08;一&#xff09;逻辑运算符&#xff08;二&#xff09;all、any、find函数&#xff08;三&#xff09;练习 二、结构基础&#xff08;一&#xff09;条件结构&#xff08;1&#xff09;if-elseif-else-end&am…

通过albumentation对目标检测进行数据增强(简单直接)

albumentation官方文档看不懂&#xff1f;xml文件不知道如何操作&#xff1f;下面只需要修改部分代码即可上手使用 要使用这个方法之前需要按照albumentation这个库还有一些辅助库,自己看着来安装就行 pip install albumentation pip install opencv-python pip install json…

<数据集>蛋壳裂缝检测数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;2520张 标注数量(xml文件个数)&#xff1a;2520 标注数量(txt文件个数)&#xff1a;2520 标注类别数&#xff1a;2 标注类别名称&#xff1a;[crack, egg] 序号类别名称图片数框数1crack245128352egg25142514 使…

揭秘饲料制粒机:生产颗粒料加工的利器

随着现代畜牧业的发展&#xff0c;饲料的质量和加工效率成为了养殖业者关注的焦点。在这个背景下&#xff0c;饲料制粒机——这一饲料加工设备的核心&#xff0c;凭借其稳定、环保的特点&#xff0c;逐渐加入养殖行业中。 一、饲料制粒机的工作原理 饲料制粒机主要通过挤压、切…

msyql (8.4,9.0) caching_sha2_password 转换 mysql_native_password用户认证

mysql 前言 caching_sha2_password 主要特性 用于增强用户账户密码的存储和验证安全性。这种插件利用 SHA-256 散列算法的变体来存储和验证密码 安全的密码散列&#xff1a; caching_sha2_password 使用基于 SHA-256 的算法来生成密码的散列值。这意味着即使数据库被未授权访…