前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >K-Means算法原理和简单测试

K-Means算法原理和简单测试

作者头像
jeanron100
发布2019-06-18 19:59:15
5870
发布2019-06-18 19:59:15
举报

这是学习笔记的第 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

散点图的信息如下:

我们选择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

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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档