深入理解Kmeans算法

导言

Hello,各位信息工程的小伙伴们,是不是感觉课程难度比较大,理解算法不够深入呢。欢迎加入AI破冰学院,QQ群463986237,喜欢人工智能,大数据的同学欢迎入群。接下来的时间呢,作者大大会陆续发表作业的算法题目和理解思想,都是作者大大精心整理打出来的哦,不喜勿喷,辅助大家完成作业,敬请期待。

什么是Kmeans算法

Kmeans算法,顾名思义,k均值算法。是十种经典的机器学习算法之一,什么是机器学习,请看我上一篇文章人工智能。它是无监督学习的一种聚类算法,即知道要划分几堆数据,把这些数据划分出来。
废话不多说,直接上干货。

1.假如我拿到了一个数据,假如是2维的(可以可视化),咋们作业是三维的,不过都一样,一共在空间中有3堆。
在这里插入图片描述
2.然后我要随机在这个平面中取3个中心点(随机的哦,我们要分为3堆,所以取3个点,不同颜色代表不同类别的数据),然后遍历空间中的每一个点 , 分别求到这3个点的欧式距离d,它离哪个中心点最近,就被划分为哪个区域(图中不同颜色分出来的不同类别)
计算方法在这里插入图片描述
在这里插入图片描述
3.接线来就要更新中心点了,把刚才划分出3类,每个类里面的点的 x,y,分别求平均值,比如刚才划分为红色的点,X = (x1+x2…+xn)/n , Y = (y1+y2+…yn)/n ,这个就是新的中心点,蓝色,绿色的也一样。
更新中心,重复步骤2重新划分数据,如图。

在这里插入图片描述
4.接线来一直重复2,3步骤,直到中心点收敛不会改变(聚类就完成了),在数学上证明得到,一直循环2,3步骤,中心点一定会收敛。得到最终数据,就可以把属于各个颜色的点拿出来了

在这里插入图片描述

作业

回到作业上,咋们的作业拿到的是这样的数据,很明显这是一个三维的数据(把一行当做一个点),所以计算距离的时候有x,y,z。
1.首先需要读入数据,创建一个数组保存国家名字,一个数组保存数据。
在这里插入图片描述
2.因为数据不均衡,x,y,z三个值相差很大,所以我们要进行0-1均值化,把数据放缩到0-1区间,
对每一列数据每个元素用这个公式 min是这一列的最小值,max最大值,x是当前值,x*为更新值。
在这里插入图片描述
最后得到数据为这个全是0-1的值
在这里插入图片描述
3.然后进行kmeans算法计算,随机在0-1取3个中心点,注意是3维的点哦,建立一个中心点数组
center =[ a类的中心,b类的中心,c类的中心]。
例如第一个点,x1 = (0.23,0.45,0.88),x2=…

4.然后遍历图中的点,判断哪个中心点离这个点最近,建立三个数组(或者一个二维数组)distance=[ a类,b类,c类],分别存放分离某个中心点最近的点。

5.更新3个中点center,方法:distance中某个类别的x,y,z求平均值,得到新的中心点center。

6.重复4,5步骤,直到中心点不变,取出所以distance的索引,带入国家数组中。

最终结果
在这里插入图片描述

今天的算法就到这里了,有什么疑惑的同学可以加群:463986237 ,大家一起学习一起讨论,欢迎评论转发,后续作者大大会继续更新,记得关注哦,感谢支持!

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值