人工智能AI常见的经典K-means聚类算法原理和工作过程

简介: 人工智能AI常见的经典K-means聚类算法原理和工作过程K-means聚类算法亦称K聚类均值算法,K-means算法是硬聚类算法中的一种。
人工智能AI常见的经典K-means聚类算法原理和工作过程

K-means聚类算法亦称K聚类均值算法,K-means算法是硬聚类算法中的一种。聚类算法是一类无监督机器学习。K-means算法是计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法。K-means算法是典型的基于距离的聚类算法,以距离作为相似性的评价标准,认为两个对象的距离越近,其相似度就越大。物以类聚,人以群分。K均值算法认为簇是由距离靠近的对象组成的,因此把获得距离相近且独立的簇作为最终求解目标。
聚类算法首先要解决相异度问题。即如何定量分析两个可比较元素的相异度。通俗的说法,相异度就是两个东西差别有多大。例如人与章鱼的相异度明显大于人与黑猩猩的相异度,这是人们可以直观感受到的。但是,计算机没有这种直观感受能力,必须对相异度在数学上进行定性、定量。
凡是能把现实世界的事务属性抽象成向量,就可用K-Means算法进行分类。K-Means算法核心思想:指定算法初始点(initial centroids),作为聚类的分类(cluster),重复迭代直至算法收敛为止。
数学坐标系中的二维坐标点(x,y),是一种向量,是一种数学抽象。现实世界中很多属性都可以抽象成向量。比如,人的年龄,喜好,偏好的商品等等,抽象成向量的目的是可以让计算机知道某两个属性间的距离。假定,18岁的人与24岁的人的距离要比离12岁的距离要近。鞋子离衣服这个商品的距离要比电脑要近等等。

K均值算法的弊端
K-Means主要有两个最重大的缺陷——都和初始值有关:
(一)K是先验给定的,但是K值的选定往往非常难以估计。对于大型数据集,到底应该划分几个类群,这在算法启动前是无法准确给出的。
(二)K均值算法需要初始随机种子点启动算法,这个随机种子点很关键,选取不同的随机种子点将得到完全不同的结果和算法执行效率。

以上是关于K-means算法的抽象描述,现在结合一个实际的数据集,运用K-means算法原理进行聚类工作过程。
假设现在有一个杂乱无序数据集D = { 2 , 8 , 3 , 9 },共四个数据。即D1=2,D2=8,D3=3,D4=9。要求对数据集D聚类成两个簇,即K=2。
因为数据量小,人类可以直观的把它们划分为两个簇:{2,3} 和 {8,9},但是机器却无法直观的感受和划分,必须依据一定的算法进行计算才能归类。现在开始用K-means算法进行聚类,下面是K-means算法执行的具体工作步骤和过程:
【准备阶段】选取质心。质心的选择可以任意选取,但尽量要合理。质心可由数据集D内部产生,也可以先验选取合理的值作为质心,我在这里选取两个值center1和center2分别作为两个簇cluster1和cluster2的质心:center1=2,center2=3。

【算法执行阶段】把数据集D全部数据(本例是4个)中的每一个,分别和质心center1和center2计算相异度。相异度小的归入质心所在的簇。以欧氏距离(Euclidean distance)做为相异度。相异度小则归入该簇。


开始算法:
(第一轮循环) 初始化的质心center1=2,center2=3
对于D1=2,距离center1的欧式距离=0,距离center2的欧式距离=1,0<1,故D1归入center1所在的簇:cluster1。此时cluster1={2},cluster2={}。
对于D2=8,距离center1的欧式距离=6,距离center2的欧式距离=5,6>5,故D2归入center2所在的簇:cluster2。此时cluster1={2},cluster2={8}。
对于D3=3,距离center1的欧式距离=1,距离center2的欧式距离=0,1>0,故D3归入center2所在的簇:cluster2。此时cluster1={2},cluster2={8,3}。
对于D4=9,距离center1的欧式距离=7,距离center2的欧式距离=6,7>6,故D4归入center2所在的簇:cluster2。此时cluster1={2},cluster2={8,3,9}。
经过第一轮循环,得到cluster1={2},cluster2={8,3,9}。

(第二轮循环) 经过第一轮循环处理后,得到cluster1={2},cluster2={8,3,9}。选取新质心,此时选择质心以簇内的算术平均值为质心。那么新的cluster1质心center1=2/1=2;cluster2质心center2=(8+3+9)/3=6.67(四舍五入)。于是此时center1=2,center2=6.67。
对于D1=2,距离center1的欧式距离=0,距离center2的欧式距离=4.47,0<4.47,故D1归入center1所在的簇:cluster1。此时cluster1={2},cluster2={}。
对于D2=8,距离center1的欧式距离=6,距离center2的欧式距离=1.33,6>1.33,故D2归入center2所在的簇:cluster2。此时cluster1={2},cluster2={8}。
对于D3=3,距离center1的欧式距离=1,距离center2的欧式距离=0,1<3.37,故D3归入center1所在的簇:cluster1。此时cluster1={2,3},cluster2={8}。
对于D4=9,距离center1的欧式距离=7,距离center2的欧式距离=2.33,7>2.33,故D4归入center2所在的簇:cluster2。此时cluster1={2,3},cluster2={8,9}。
经过第二轮循环,得到cluster1={2,3},cluster2={8,9}。

(第三轮循环) 经过第二轮循环处理后,得到cluster1={2,3},cluster2={8,9}。选取新质心,此时选择质心以簇内的算术平均值为质心。那么新的cluster1质心center1=(2+3)/2=2.5;cluster2质心center2=(8+9)/2=8.5。于是此时center1=2.5,center2=8.5。
对于D1=2,距离center1的欧式距离=0.5,距离center2的欧式距离=6.5,0.5<6.5,故D1归入center1所在的簇:cluster1。此时cluster1={2},cluster2={}。
对于D2=8,距离center1的欧式距离=5.5,距离center2的欧式距离=0.5,5.5>0.5,故D2归入center2所在的簇:cluster2。此时cluster1={2},cluster2={8}。
对于D3=3,距离center1的欧式距离=0.5,距离center2的欧式距离=5.5,0.5<5.5,故D3归入center1所在的簇:cluster1。此时cluster1={2,3},cluster2={8}。
对于D4=9,距离center1的欧式距离=6.5,距离center2的欧式距离=0.5,6.5>0.5,故D4归入center2所在的簇:cluster2。此时cluster1={2,3},cluster2={8,9}。
经过第三轮循环后,得到cluster1={2,3},cluster2={8,9}。

(第四轮循环) 经过第三轮循环处理后,得到cluster1={2,3},cluster2={8,9}。选取新质心,此时选择质心以簇内的算术平均值为质心。那么新的cluster1质心center1=(2+3)/2=2.5;cluster2质心center2=(8+9)/2=8.5。于是此时center1=2.5,center2=8.5。发现新选取的质心和上一轮即第三轮使用的质心相同,说明算法已经收敛,K-means算法聚类划分完成,计算结束。最终得到的两个簇为:
cluster1={2,3}
cluster2={8,9}
是理想的聚类结果。说明算法成功完成划分。
以上循环涉及到的算法数据可以简化为:

D={2,8,3,9},即D1=2 , D2=8 , D3=3 , D4=9

循环1:
质心center1=2 ,center2= 3
cluster1={2}, cluster2={8,3,9}

循环2:
质心center1=2/1=2 ,center2= (8+3+9)/3=6.67
cluster1={2,3}, cluster2={8,9}

循环3:
质心center1=(2+3)/2=2.5 ,center2= (8+9)/2=8.5
cluster1={2,3}, cluster2={8,9}

循环4:
质心center1=(2+3)/2=2.5 ,center2= (8+9)/2=8.5
质心和上一轮循环相同,故算法收敛,计算结束。

相关文章
|
20天前
|
机器学习/深度学习 数据采集 算法
【风光场景生成】基于改进ISODATA的负荷曲线聚类算法(Matlab代码实现)
【风光场景生成】基于改进ISODATA的负荷曲线聚类算法(Matlab代码实现)
机器学习/深度学习 算法 自动驾驶
142 0
|
28天前
|
算法 数据挖掘 定位技术
基于密度的聚类算法能够在含有噪声的数据集中识别出任意形状和大小的簇(Matlab代码实现)
基于密度的聚类算法能够在含有噪声的数据集中识别出任意形状和大小的簇(Matlab代码实现)
|
1月前
|
机器学习/深度学习 算法 搜索推荐
从零开始构建图注意力网络:GAT算法原理与数值实现详解
本文详细解析了图注意力网络(GAT)的算法原理和实现过程。GAT通过引入注意力机制解决了图卷积网络(GCN)中所有邻居节点贡献相等的局限性,让模型能够自动学习不同邻居的重要性权重。
128 0
从零开始构建图注意力网络:GAT算法原理与数值实现详解
|
1月前
|
数据采集 传感器 人工智能
没有大数据,哪来人工智能?——聊聊“大数据喂养下的AI进化史”
没有大数据,哪来人工智能?——聊聊“大数据喂养下的AI进化史”
92 6
|
2月前
|
机器学习/深度学习 算法 文件存储
神经架构搜索NAS详解:三种核心算法原理与Python实战代码
神经架构搜索(NAS)正被广泛应用于大模型及语言/视觉模型设计,如LangVision-LoRA-NAS、Jet-Nemotron等。本文回顾NAS核心技术,解析其自动化设计原理,探讨强化学习、进化算法与梯度方法的应用与差异,揭示NAS在大模型时代的潜力与挑战。
306 6
神经架构搜索NAS详解:三种核心算法原理与Python实战代码
|
2月前
|
传感器 算法 定位技术
KF,EKF,IEKF 算法的基本原理并构建推导出四轮前驱自主移动机器人的运动学模型和观测模型(Matlab代码实现)
KF,EKF,IEKF 算法的基本原理并构建推导出四轮前驱自主移动机器人的运动学模型和观测模型(Matlab代码实现)
|
8天前
|
人工智能 安全 中间件
阿里云 AI 中间件重磅发布,打通 AI 应用落地“最后一公里”
9 月 26 日,2025 云栖大会 AI 中间件:AI 时代的中间件技术演进与创新实践论坛上,阿里云智能集团资深技术专家林清山发表主题演讲《未来已来:下一代 AI 中间件重磅发布,解锁 AI 应用架构新范式》,重磅发布阿里云 AI 中间件,提供面向分布式多 Agent 架构的基座,包括:AgentScope-Java(兼容 Spring AI Alibaba 生态),AI MQ(基于Apache RocketMQ 的 AI 能力升级),AI 网关 Higress,AI 注册与配置中心 Nacos,以及覆盖模型与算力的 AI 可观测体系。

热门文章

最新文章