【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



目录
相关文章
|
机器学习/深度学习 运维 算法
从算法菜鸟到挖掘达人:数据挖掘的算法大冒险
从算法菜鸟到挖掘达人:数据挖掘的算法大冒险
495 18
|
人工智能 运维 算法
基于 C# 深度优先搜索算法的局域网集中管理软件技术剖析
现代化办公环境中,局域网集中管理软件是保障企业网络高效运行、实现资源合理分配以及强化信息安全管控的核心工具。此类软件需应对复杂的网络拓扑结构、海量的设备信息及多样化的用户操作,而数据结构与算法正是支撑其强大功能的基石。本文将深入剖析深度优先搜索(Depth-First Search,DFS)算法,并结合 C# 语言特性,详细阐述其在局域网集中管理软件中的应用与实现。
313 3
|
监控 算法 安全
基于 C# 基数树算法的网络屏幕监控敏感词检测技术研究
随着数字化办公和网络交互迅猛发展,网络屏幕监控成为信息安全的关键。基数树(Trie Tree)凭借高效的字符串处理能力,在敏感词检测中表现出色。结合C#语言,可构建高时效、高准确率的敏感词识别模块,提升网络安全防护能力。
312 2
|
运维 监控 算法
基于 Java 滑动窗口算法的局域网内部监控软件流量异常检测技术研究
本文探讨了滑动窗口算法在局域网流量监控中的应用,分析其在实时性、资源控制和多维分析等方面的优势,并提出优化策略,结合Java编程实现高效流量异常检测。
477 0
|
监控 算法 JavaScript
基于 JavaScript 图算法的局域网网络访问控制模型构建及局域网禁止上网软件的技术实现路径研究
本文探讨局域网网络访问控制软件的技术框架,将其核心功能映射为图论模型,通过节点与边表示终端设备及访问关系。以JavaScript实现DFS算法,模拟访问权限判断,优化动态策略更新与多层级访问控制。结合流量监控数据,提升网络安全响应能力,为企业自主研发提供理论支持,推动智能化演进,助力数字化管理。
356 4
|
存储 监控 算法
内网监控桌面与 PHP 哈希算法:从数据追踪到行为审计的技术解析
本文探讨了内网监控桌面系统的技术需求与数据结构选型,重点分析了哈希算法在企业内网安全管理中的应用。通过PHP语言实现的SHA-256算法,可有效支持软件准入控制、数据传输审计及操作日志存证等功能。文章还介绍了性能优化策略(如分块哈希计算和并行处理)与安全增强措施(如盐值强化和动态更新),并展望了哈希算法在图像处理、网络流量分析等领域的扩展应用。最终强调了构建完整内网安全闭环的重要性,为企业数字资产保护提供技术支撑。
389 2
|
存储 监控 算法
基于 Python 哈希表算法的局域网网络监控工具:实现高效数据管理的核心技术
在当下数字化办公的环境中,局域网网络监控工具已成为保障企业网络安全、确保其高效运行的核心手段。此类工具通过对网络数据的收集、分析与管理,赋予企业实时洞察网络活动的能力。而在其运行机制背后,数据结构与算法发挥着关键作用。本文聚焦于 PHP 语言中的哈希表算法,深入探究其在局域网网络监控工具中的应用方式及所具备的优势。
399 7
|
存储 算法 物联网
解析局域网内控制电脑机制:基于 Go 语言链表算法的隐秘通信技术探究
数字化办公与物联网蓬勃发展的时代背景下,局域网内计算机控制已成为提升工作效率、达成设备协同管理的重要途径。无论是企业远程办公时的设备统一调度,还是智能家居系统中多设备间的联动控制,高效的数据传输与管理机制均构成实现局域网内计算机控制功能的核心要素。本文将深入探究 Go 语言中的链表数据结构,剖析其在局域网内计算机控制过程中,如何达成数据的有序存储与高效传输,并通过完整的 Go 语言代码示例展示其应用流程。
305 0