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

机器学习-K-means聚类

聚类:

机器学习可以分为无监督学习与有监督学习两类,之前所了解的线性回归、逻辑回归与决策树等等,都是有监督学习,根据学习输入样本特征与标签之间映射关系来进行回归、分类等。而无监督学习则没有标签,需要自动的来寻找挖掘来一些可用的信息,对于聚类而言,则是寻找相关/相似的数据点

K-means聚类:

聚类中最常用的就是K-means聚类,以二维数据、2个聚类中心为例,它的步骤如下:

  • 首先随机猜测聚类中心A、B的位置,这个中心就是簇的质心;
  • 然后遍历所有的样本数据,分别计算数据点与聚类中心A、B的距离,将该数据点分配到距离更近的簇质心;
  • 计算上一步中得到的簇A、B中样本的均值,将聚类中心移动到这个均值位置,如下图左;
  • 之后在不断重复上面两个步骤,直至每个样本所在的簇与簇质心都不在变化,即K-means算法已收敛,或是随着不断地重复样本所在簇与簇质心的变化过下,即继续重复收益不高时,则停止算法,如下图右。

需要注意的是,实际使用K-means算法时,聚类中心不一定是两个,而可能有K个,且聚类中心与样本的维度相同,若样本有n个特征,则聚类中心就是一个n维向量。

数学表达:

对于每一个样本,它分配到的簇表示为c^{(i)},具体表达式如下:

min_{k}\left \| x^{(i)} -\mu ^{(i)}\right \|^{2}

c^{(i)}的取值为1~K。

如果一个簇中没有分配到任何一个样本,一般情况下直接删除该簇即可;如果一定要保留有K个簇,则需要重新随机初始化聚类中心,以保证每一个簇中至少分配到少量样本。

类似于回归中的成本函数,在K-means聚类中也有失真函数的定义,其表达式如下:

J=\frac{1}{m}\sum\left \| x^{(i)} -\mu_{c^{(i)}}\right \|^{2}

类比于回归中需要通过梯度下降等方法来降低成本函数,聚类中也在不断地降低失真函数。遍历每一个样本使其被分配到距离最近的聚类中心,是通过c^{(i)}来降低J;

而将聚类中心移动到簇均值位置则是通过\mu _{k}来降低J。

初始化K-means:

实际上进行初始化时,往往是随机选择样本作为\mu,而如果只进行一次随机初始化,则有可能会陷入局部最优解,如下图中右侧三种情况都已经达到了局部最优,但对比易知,实际上右上的情况要优于另外两种。因此为了避免陷入局部最优,一般需要进行多次随机初始化,每次都随机K个样本作为聚类中心,然后直至收敛后计算失真函数J,选择J最小的情况。一般需要重复50-1000轮随机初始化,至少也要保证有50-100轮。

那么实际运用时应该如何确定簇的个数K呢?有一种方法是Elbow,即通过尝试多个K的取值,绘制出K-J图像,随着K值增加,即簇个数增加,相应的J肯定会有一定的减小,但是我们需要找到的是图像的拐点,因为拐点代表着此后K值增加带来的J优化收益较小。

不过实际情况中,很有可能我们得到的图像并不会存在很明显的拐点,因此另一种更合适的方法是,聚类得结果通常需要用于后续的算法,因此可以通过后续的表现情况来选择K值。


文章转载自:

http://KgDfH6x0.rrgqq.cn
http://yuIHoEUZ.rrgqq.cn
http://p9hkCicc.rrgqq.cn
http://JcqbrQvG.rrgqq.cn
http://bqL8CDbQ.rrgqq.cn
http://G6Bq5txZ.rrgqq.cn
http://p2VokpvF.rrgqq.cn
http://iVQOlCEs.rrgqq.cn
http://XDkTLbla.rrgqq.cn
http://ft0ozDHn.rrgqq.cn
http://K5nZ4lcH.rrgqq.cn
http://zAG5LmYU.rrgqq.cn
http://fpUoIfz4.rrgqq.cn
http://do85Ceyh.rrgqq.cn
http://UCJrPe8U.rrgqq.cn
http://pQEBxj8B.rrgqq.cn
http://R5p6Sj99.rrgqq.cn
http://79RzzZKu.rrgqq.cn
http://YSKxsYLG.rrgqq.cn
http://782Dj8h1.rrgqq.cn
http://XZbgMBZj.rrgqq.cn
http://5VfZQOuZ.rrgqq.cn
http://dyvarpS5.rrgqq.cn
http://B8OXBMRI.rrgqq.cn
http://wxPPQdNQ.rrgqq.cn
http://eSwgwBsR.rrgqq.cn
http://Ocmmiidi.rrgqq.cn
http://D0Zr0hAv.rrgqq.cn
http://o5sgtWX6.rrgqq.cn
http://dcmD8OFr.rrgqq.cn
http://www.dtcms.com/a/372644.html

相关文章:

  • 维度跃迁:当万物皆成电路,智能将从“拥有”变为“存在”
  • 前端:最新最全的JavaScript知识汇总,持续更新......
  • PO BAPI bapi_po_create1
  • 当前车载测试的难点分析
  • Pyhton基础之多继承、多态
  • AOSP Framework开发的一些超方便的快捷命令
  • 移动高清盒子CM311-5-内存大小区分参考指南
  • 在 VirtualBox 虚拟机中安装 Fedora CoreOS 操作系统
  • 【SLAM论文笔记】SplaTAM论文小结
  • shell编程之文本三剑客grep、sed、awk
  • 开始 ComfyUI 的 AI 绘图之旅-文生图(一)
  • 有哪些任务可以使用无监督的方式训练深度学习模型?
  • 从零开始构建图注意力网络:GAT算法原理与数值实现详解
  • FastAPI基础
  • 通过SSH来推送本地文件夹到Github
  • 风锐统计——让数据像风一样自由!(十)——关联研究全自动分析
  • AutoGen快速入门
  • v$lock 查找锁 locked objects ORA-54 dblink
  • Daily算法刷题【面试经典150题-2️⃣】
  • Ucloud技术支持问题
  • 调试 cuda kernel
  • OpenLayers常用控件 -- 章节九:比例尺控件教程
  • 李沐深度学习论文精读(一)AlexNet + ResNet
  • CMake构建C++项目,报错“CMake Error CMAKE_C_COMPILER not set, after EnableLanguage”
  • 2025最新超详细FreeRTOS入门教程:第五章 FreeRTOS信号量
  • 安卓逆向(二)相关问题及解决方案
  • 自学嵌入式第37天:MQTT协议
  • daily notes[11]
  • Qt中QProxyStyledrawControl函数4个参数的意义
  • AutoHotkey识别图片