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

系列文章目录

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

第二章 【机器学习】【监督学习】- 逻辑回归算法 (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.mzph.cn/news/873549.shtml

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

相关文章

静态代理与动态代理的区别与选择

在当今软件开发领域,代理模式作为一种重要的设计模式,广泛应用于增强现有对象功能、控制访问权限以及实现远程调用等场景。本文旨在深入探讨静态代理与动态代理之间的核心区别,帮助开发者理解两者在实现机制、灵活性、性能表现及适用场景上的…

Filebeat k8s 部署(Deployment)采集 PVC 日志发送至 Kafka——日志处理(二)

文章目录 前言Filebeat Configmap 配置Filebeat Deployment验证总结 前言 在上篇文章中总结了 Django 日志控制台输出、文件写入按天拆分文件,自定义 Filter 增加 trace_id 以及过滤——日志处理(一),将日志以 JSON 格式写入日志文件。我们的…

无人机侦察:二维机扫雷达探测设备技术详解

二维机扫雷达探测设备采用机械扫描方式,通过天线在水平方向和垂直方向上的转动,实现对目标空域的全方位扫描。雷达发射机发射电磁波信号,遇到目标后产生反射,反射信号被雷达接收机接收并处理,进而得到目标的位置、速度…

spring MVC 简单的案例(2)用户登录

一、用户登录 1&#xff09;前端代码 index.html <!doctype html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport"content"widthdevice-width, user-scalableno, initial-scale1.0, maxim…

git commit报错: pre-commit hook failed (add --no-verify to bypass)

原因&#xff1a; 在提交前做代码风格检查&#xff0c;若检查不通过&#xff0c;则提交失败 解决方案&#xff1a;进入项目的.git>hooks目录&#xff0c;找到pre-commit文件&#xff0c;删除即可

单周期CPU设计(二)取指模块(minisys)(verilog)(vivado)

timescale 1ns / 1ps // module Ifetc32 (input reset, // 复位信号(高电平有效)input clock, // 时钟(23MHz)output [31:0] Instruction, // 输出指令到其他模块output [31:0] PC_plus_4_out, // (pc4)送执行单元input [31:0] Add_result, // 来自执行单元,算出…

基于STC8H4K64TL单片机的触摸功能和数码管驱动功能实现一个触摸按键单击长按都增加数值另一个触摸按键单击长按都减少数值应用

基于STC8H4K64TL单片机的触摸功能和数码管驱动功能实现一个触摸按键单击长按都增加数值另一个触摸按键单击长按都减少数值应用 STC8H4K64TL单片机介绍STC8H4K64TL单片机管脚图(48个引脚)STC8H4K64TL单片机串口仿真与串口通信STC8H4K64TL单片机管脚图(32个引脚)STC8H4K64TL单…

【学习css3】使用flex和grid实现等高元素布局

过往的实现方法是使用浮动加计算布局来实现&#xff0c;当flex和grid问世时&#xff0c;这一切将变得简单起来 一、简单的两列实现 1、先看页面效果 2、css代码 .container {padding: 10px;width: 100ch;margin: 0 auto;box-shadow: inset 0 0 0 2px #ccc;}.column {margin: 2…

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

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

大语言模型-文本向量模型评估基准 MTEB

MTEB&#xff08;Massive Text Embedding Benchmark&#xff09; 涵盖112种语言的58个数据集&#xff0c;包含如下8种任务。 1、双语文本挖掘&#xff08;Bitext Mining&#xff09; 任务目标&#xff1a; 在双语语料库中识别语义等价的句子对。 任务描述&#xff1a; 输入…

Nature子刊 | ATAC-seq、RNA-seq和蛋白组联合分析揭示脂质激活转录因子PPARα在肾脏代偿性肥大的作用机制

2023年6月&#xff0c;美国国立心肺血液研究所的研究团队在Nature Communications上发表题为“Signaling mechanisms in renal compensatory hypertrophy revealed by multi-omics”的文章&#xff0c;该研究通过在单侧肾切除的小鼠模型中使用多组学方法&#xff08;蛋白质组学…

深入浅出WebRTC—NACK

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

Open3D 非线性最小二乘法拟合空间球

目录 一、概述 1.1原理 1.2实现步骤 二、代码实现 2.1关键代码 2.1.1定义残差函数 2.1.2拟合球面 2.2完整代码 三、实现效果 3.1原始点云 3.2拟合后点云 3.3结果数据 前期试读&#xff0c;后续会将博客加入下列链接的专栏&#xff0c;欢迎订阅 Open3D点云算法与点…

spark 动态资源分配dynamicAllocation

动态资源分配&#xff0c;主要是spark在运行中可以相对合理的分配资源。 初始申请的资源远超实际需要&#xff0c;减少executor初始申请的资源比实际需要少很多&#xff0c;增多executorSpark运行多个job&#xff0c;这些job所需资源有的多有的少&#xff0c;动态调整executor…

Automation Anywhere推出新一代AI+自动化企业系统,助力企业实现10倍商业增长

RPA厂商纷纷进军AI Agent ( AI 代理)领域&#xff0c;陆续推出创新产品。最近&#xff0c;Automation Anywhere宣布推出其新的AI 自动化企业系统&#xff0c;该系统结合AI和自动化技术&#xff0c;以实现指数级的业务成果。 在Imagine 2024大会上首次亮相的这款新产品&#xf…

前端实现视频播放添加水印

一、效果如下 二、代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title> </head> <body><style>.container {position: relative;}.base {width: 300px;hei…

鸿蒙开发StableDiffusion绘画应用

Stable Diffusion AI绘画 基于鸿蒙开发的Stable Diffusion应用。 Stable Diffusion Server后端代码 Stable Diffusion 鸿蒙应用代码 AI绘画 ​ 使用Axios发送post网络请求访问AI绘画服务器 api &#xff0c;支持生成图片保存到手机相册。后端服务是基于flaskStable Diffusion …

ACM中国图灵大会专题 | 图灵奖得主Manuel Blum教授与仓颉团队交流 | 华为论坛:面向全场景应用编程语言精彩回顾

ACM 中国图灵大会&#xff08;ACM Turing Award Celebration Conference TURC 2024&#xff09;于2024年7月5日至7日在长沙举行。本届大会由ACM主办&#xff0c;in cooperation with CCF&#xff0c;互联网之父Vinton Cerf、中国计算机学会前理事长梅宏院士和廖湘科院士担任学术…

移动端如何离线使用GPT

在移动端离线使用GPT&#xff0c;只需要一个app&#xff1a;H2O AI Personal GPT 是H2OAI上架的一款app&#xff0c;可离线使用&#xff0c;注重数据隐私&#xff0c;所有数据都只存储在本地。对H2OAI感兴趣的伙伴&#xff0c;可移步&#xff1a;https://h2o.ai 该app支持的模…

Intel和AMD用户再等等!微软确认Win11 24H2年底前登陆

微软近日确认&#xff0c;Windows 11 24H2版本将于2024年底前正式登陆使用英特尔和AMD处理器的PC。 根据微软介绍&#xff0c;Windows 11 24H2将作为传统功能更新&#xff0c;将在今年晚些时候提供给所有设备。 此前&#xff0c;微软已向搭载骁龙X Plus和X Elite系列处理器的Co…