【weka应用技术与实践】【数据挖掘】举例说明Kmeans算法的运行过程及算法描述

简介: 源自:K-means 算法【基本概念篇】

1. Kmeans算法的认识


k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,也是一种无监督的机械学习算法。


聚类的认识


聚类是一个将数据集中在某些方面相似的数据成员进行分类组织的过程,聚类就是一种发现这种内在结构的技术,聚类技术经常被称为无监督学习。

k均值聚类是最著名的划分聚类算法,由于简洁和效率使得他成为所有聚类算法中最广泛使用的。算法采用误差平方和准则函数作为聚类准则函数。


2. Kmeans具体的算法描述


需要把数据点分成三类。我们需要遵循下面的几个步骤

(注意:分类,其实是分割的意思,表达的意思是聚类。)

  1. 选取三个类的初始中心
  2. 计算剩余点到这三个中心的距离
  3. 将距离中心点距离最短的点归为一类
  4. 依次划分好所有的数据点
  5. 重新计算中心
  6. 重复2-5 个步骤,直到中心点不会在变化为止


第一步 选择中心点


随机选择坐标系上的几个点。


第二步 计算点之间的距离


两个点之间的距离用曼哈顿聚类距离,也可以叫做城市街区距离。


微信截图_20220517210918.png


举例(一个二维的数据集)


坐标系上存在八个点:


A1 ( 2 ,10 )、 A2 ( 2 , 5 )、 A3 ( 8 , 4 ) 、A4 ( 5 , 8 )、 A5 ( 7 , 5) 、A6 ( 6 , 4) 、A7 ( 1 , 2 ) 、A8 ( 4 , 9 )


选择在XY坐标上的任意三个点,当然可以选择更多都是可以的。


这里选取的初始点是A1(2,10),A4(5,8),A7(1,2)分别命名为点1,点2,点3


微信截图_20220517210930.png


点1和A1的曼哈顿聚类距离:| 2 - 2 | + | 10 - 10 | = 0


微信截图_20220517210943.png


点2和A1的曼哈顿聚类距离:| 5 - 2 | + | 8 - 10 | = 5


微信截图_20220517211002.png


点3和A1的曼哈顿聚类距离:| 1 - 2 | + | 2 - 10 | = 9


微信截图_20220517211010.png


注意: 中心点的选取不同,最后的聚类结果可能大不相同 )


这时,已经得到了第一轮的结果,需要重新计算每个聚类中心


微信截图_20220517211056.png


点1:

对于第一个聚类只有一个点所以它的聚类的中心就是自己


点2:

X :( 8 + 5 + 7 + 6 + 4 ) / 5 = 6

Y :( 4 + 8 + 5 + 4 + 9 ) / 5 = 6

中心点就是( 6 ,6 )


点3:

X :( 2 + 1 ) / 2 = 1.5

Y :( 5 + 2 ) / 2 = 3.5


这时,进行第二轮迭代:


微信截图_20220517211109.png


这时,得到了第二轮的结果,也需要重新计算每个聚类中心


微信截图_20220517211120.png


点1:

X :( 2 + 4 ) / 2 = 3

Y :( 10 + 9 ) / 2 = 9.5


点2:

X :( 8 + 5 + 7 + 6 ) / 4 = 6.5

Y :( 4 + 8 + 5 + 4 ) / 4 = 5.25

中心点就是(6,6 )


点3:

X :( 2 + 1 ) / 2 = 1.5

Y :( 5 + 2 ) / 2 = 3.5


微信截图_20220517211128.png


这时,得到了第三轮的结果,还需要重新计算每个聚类中心


点1:

X :( 2 + 5 + 4 ) / 3 = 3.67

Y :( 10 + 8 + 9 ) / 3 = 9


点2:

X :( 8 + 7 + 6 ) / 3 = 7

Y :( 4 + 5 + 4 ) / 3 = 4.33

中心点就是(6,6 )


点3:

X :( 2 + 1 ) / 2 = 1.5

Y :( 5 + 2 ) / 2 = 3.5


微信截图_20220517211137.png


此时,发现第四轮的结果和第三轮的结果一致了,可以停止该算法了。


可以看一下这个迭代过程的图谱


  1. 选择中心点后

微信截图_20220517211145.png


  1. 依次迭代的过程:

微信截图_20220517211152.png


微信截图_20220517211159.png


微信截图_20220517211208.png



目录
相关文章
|
3天前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
14 3
|
9天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的优化算法及其应用
【10月更文挑战第8天】 本文将探讨深度学习中常用的优化算法,包括梯度下降法、Adam和RMSProp等,介绍这些算法的基本原理与应用场景。通过实例分析,帮助读者更好地理解和应用这些优化算法,提高深度学习模型的训练效率与性能。
106 63
|
4天前
|
机器学习/深度学习 人工智能 算法
[大语言模型-算法优化] 微调技术-LoRA算法原理及优化应用详解
[大语言模型-算法优化] 微调技术-LoRA算法原理及优化应用详解
24 0
[大语言模型-算法优化] 微调技术-LoRA算法原理及优化应用详解
|
12天前
|
算法 安全 物联网
如何应用SM2算法进行身份认证
【10月更文挑战第5天】如何应用SM2算法进行身份认证
20 1
|
12天前
|
存储 算法 安全
SM2算法的应用场景有哪些?
【10月更文挑战第5天】SM2算法的应用场景有哪些?
28 1
|
16天前
|
存储 算法 安全
Python 加密算法详解与应用
Python 加密算法详解与应用
13 1
|
17天前
|
机器学习/深度学习 算法
深度学习中的优化算法及其应用
本文探讨了深度学习中常用的优化算法,包括梯度下降、随机梯度下降、动量方法和Adam方法。通过对比这些算法的优缺点及适用场景,帮助读者更好地理解和应用这些优化方法。
21 2
|
4天前
|
机器学习/深度学习 算法 数据建模
计算机前沿技术-人工智能算法-生成对抗网络-算法原理及应用实践
计算机前沿技术-人工智能算法-生成对抗网络-算法原理及应用实践
10 0
|
14天前
|
机器学习/深度学习 自然语言处理 算法
神经网络算法以及应用场景和基本语法
神经网络算法以及应用场景和基本语法
24 0

热门文章

最新文章