【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月前
|
人工智能 运维 算法
基于 C# 深度优先搜索算法的局域网集中管理软件技术剖析
现代化办公环境中,局域网集中管理软件是保障企业网络高效运行、实现资源合理分配以及强化信息安全管控的核心工具。此类软件需应对复杂的网络拓扑结构、海量的设备信息及多样化的用户操作,而数据结构与算法正是支撑其强大功能的基石。本文将深入剖析深度优先搜索(Depth-First Search,DFS)算法,并结合 C# 语言特性,详细阐述其在局域网集中管理软件中的应用与实现。
82 3
|
2月前
|
存储 监控 算法
企业数据泄露风险防控视域下 Python 布隆过滤器算法的应用研究 —— 怎样防止员工私下接单,监控为例
本文探讨了布隆过滤器在企业员工行为监控中的应用。布隆过滤器是一种高效概率数据结构,具有空间复杂度低、查询速度快的特点,适用于大规模数据过滤场景。文章分析了其在网络访问监控和通讯内容筛查中的实践价值,并通过Python实现示例展示其技术优势。同时,文中指出布隆过滤器存在误判风险,需在准确性和资源消耗间权衡。最后强调构建多维度监控体系的重要性,结合技术与管理手段保障企业运营安全。
63 10
|
2月前
|
监控 算法 JavaScript
基于 JavaScript 图算法的局域网网络访问控制模型构建及局域网禁止上网软件的技术实现路径研究
本文探讨局域网网络访问控制软件的技术框架,将其核心功能映射为图论模型,通过节点与边表示终端设备及访问关系。以JavaScript实现DFS算法,模拟访问权限判断,优化动态策略更新与多层级访问控制。结合流量监控数据,提升网络安全响应能力,为企业自主研发提供理论支持,推动智能化演进,助力数字化管理。
59 4
|
2月前
|
监控 算法 JavaScript
公司局域网管理视域下 Node.js 图算法的深度应用研究:拓扑结构建模与流量优化策略探析
本文探讨了图论算法在公司局域网管理中的应用,针对设备互联复杂、流量调度低效及安全监控困难等问题,提出基于图论的解决方案。通过节点与边建模局域网拓扑结构,利用DFS/BFS实现设备快速发现,Dijkstra算法优化流量路径,社区检测算法识别安全风险。结合WorkWin软件实例,展示了算法在设备管理、流量调度与安全监控中的价值,为智能化局域网管理提供了理论与实践指导。
79 3
|
2月前
|
存储 监控 算法
内网监控桌面与 PHP 哈希算法:从数据追踪到行为审计的技术解析
本文探讨了内网监控桌面系统的技术需求与数据结构选型,重点分析了哈希算法在企业内网安全管理中的应用。通过PHP语言实现的SHA-256算法,可有效支持软件准入控制、数据传输审计及操作日志存证等功能。文章还介绍了性能优化策略(如分块哈希计算和并行处理)与安全增强措施(如盐值强化和动态更新),并展望了哈希算法在图像处理、网络流量分析等领域的扩展应用。最终强调了构建完整内网安全闭环的重要性,为企业数字资产保护提供技术支撑。
79 2
|
2月前
|
存储 监控 算法
基于 C# 时间轮算法的控制局域网上网时间与实践应用
在数字化办公与教育环境中,局域网作为内部网络通信的核心基础设施,其精细化管理水平直接影响网络资源的合理配置与使用效能。对局域网用户上网时间的有效管控,已成为企业、教育机构等组织的重要管理需求。这一需求不仅旨在提升员工工作效率、规范学生网络使用行为,更是优化网络带宽资源分配的关键举措。时间轮算法作为一种经典的定时任务管理机制,在局域网用户上网时间管控场景中展现出显著的技术优势。本文将系统阐述时间轮算法的核心原理,并基于 C# 编程语言提供具体实现方案,以期深入剖析该算法在局域网管理中的应用逻辑与实践价值。
54 5
|
3月前
|
机器学习/深度学习 存储 算法
18个常用的强化学习算法整理:从基础方法到高级模型的理论技术与代码实现
本文系统讲解从基本强化学习方法到高级技术(如PPO、A3C、PlaNet等)的实现原理与编码过程,旨在通过理论结合代码的方式,构建对强化学习算法的全面理解。
171 10
18个常用的强化学习算法整理:从基础方法到高级模型的理论技术与代码实现
|
2月前
|
存储 机器学习/深度学习 算法
论上网限制软件中 Python 动态衰减权重算法于行为管控领域的创新性应用
在网络安全与行为管理的学术语境中,上网限制软件面临着精准识别并管控用户不合规网络请求的复杂任务。传统的基于静态规则库或固定阈值的策略,在实践中暴露出较高的误判率与较差的动态适应性。本研究引入一种基于 “动态衰减权重算法” 的优化策略,融合时间序列分析与权重衰减机制,旨在显著提升上网限制软件的实时决策效能。
69 2
|
3月前
|
存储 监控 算法
公司员工电脑监控软件剖析:PHP 布隆过滤器算法的应用与效能探究
在数字化办公的浪潮下,公司员工电脑监控软件成为企业管理的重要工具,它能够帮助企业了解员工的工作状态、保障数据安全以及提升工作效率。然而,随着监控数据量的不断增长,如何高效地处理和查询这些数据成为了关键问题。布隆过滤器(Bloom Filter)作为一种高效的概率型数据结构,在公司员工电脑监控软件中展现出独特的优势,本文将深入探讨 PHP 语言实现的布隆过滤器算法在该软件中的应用。
69 1
|
3月前
|
存储 监控 算法
基于 Python 哈希表算法的局域网网络监控工具:实现高效数据管理的核心技术
在当下数字化办公的环境中,局域网网络监控工具已成为保障企业网络安全、确保其高效运行的核心手段。此类工具通过对网络数据的收集、分析与管理,赋予企业实时洞察网络活动的能力。而在其运行机制背后,数据结构与算法发挥着关键作用。本文聚焦于 PHP 语言中的哈希表算法,深入探究其在局域网网络监控工具中的应用方式及所具备的优势。
93 7

热门文章

最新文章