K-Means算法原理和简单测试
发布日期:2021-06-30 13:21:52 浏览次数:2 分类:技术文章

本文共 1187 字,大约阅读时间需要 3 分钟。

这是学习笔记的第 2011 篇文章

  今天学习了下K-Means算法,很多语言和工具都有成型的库和方法,不过为了能够督促自己理解,还是做了一些额外的工作,自己设想了一个例子,假设有10名员工,我们根据他们的技术能力和沟通能力来评估一下他们的综合能力,看看他们的资质,自己拼凑了一些数据情况如下:

员工 技术能力指数 沟通能力指数
P1 10 10
P2 5 5
P3 7 5
P4 7 7
P5 6 6
P6 6 7
P7 6 5
P8 9 9
P9 8 9
P10 8 6

散点图的信息如下:

640?wx_fmt=png

我们选择P1,P2为质心,即他们作为参照标准,分别和其他的员工数据进行比对,得到一个差异值,即两点之间的距离,可以使用欧式距离来得到,比如P1到P3的距离就是(10-7)(10-7)+(10-5)(10-5)开根号,得到的值为5.8

P2到P3的距离是(7-5)(7-5)+(5-5)(5-5) 开根号,得到的值为2

按照这种算法,得到如下的一个列表:

P1 P2
P3 5.8 2
P4 4.2 2.8
P5 5.7 1.4
P6 5 2.2
P7 6.4 1
P8 1.4 5.7
P9 2.2 5
P10 4.5 3.1

从以上的数据,可以看出P1和P8,P9的距离相对最近,而P2和P3,P4,P5,P6,P7,P10的距离相对更近。 

则分组的情况为:

组A: P1,P8,P9

组B: P2,P3,P4,P5,P6,P7,P10

即组A的3个员工的整体素质较高,而另外一组的水平则有待提高。

因为最开始选择P1,P2是随机的,所以计算距离得到的模型还是不够准确,我们需要基于刚才的数据重新选择质心,这里我们可以使用每组的平均值来计算。

选出新的代表(质心),这里是各个组的平均值,即:

组A: (10+9+8)/3, (10+9+9)/3 约为(9,9)

组B: (5+7+7+6+6+6+9)/7, (5+5+7+6+7+5+6)/7 约为(6,5)

这里的两个质心如果精确到小数点后是没有匹配的员工的,所以在这里可以理解是虚拟的。 

我们以两个计算后的新的节点作为参考,计算后得到的结果如下:

P1_new P2_new
P1 1.4 6.4
P2 5.7 1
P3 4.5 1
P4 2.8 2.2
P5 4.2 1
P6 3.6 2
P7 5 0
P8 0 5
P9 1 4.5
P10 3.1 2.2

所以重新分组后的结果为:

组A: P1,P8,P9

组B: P2,P3,P4,P5,P6,P7,P10

这次的结果和上次没有任何变化了,说明已经收敛,聚类结束,聚类结果和我们最开始设想的结果完全一致

当然这只是一个初步的测试和练习,里面的所有计算都是口算然后翘着计算器完成的。 

如果要分析的更实用一些,应该引入更多的维度,同时对于数据的分类可以做一下扩充来看。 

640?

转载地址:https://jeanron100.blog.csdn.net/article/details/102479269 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:数据生命周期管理的初步实现
下一篇:认知的偏差

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月09日 21时37分18秒