深入理解Kmeans算法

导言

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

什么是Kmeans算法

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

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

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

深入理解Kmeans算法_第5张图片

作业

回到作业上,咋们的作业拿到的是这样的数据,很明显这是一个三维的数据(把一行当做一个点),所以计算距离的时候有x,y,z。
1.首先需要读入数据,创建一个数组保存国家名字,一个数组保存数据。
深入理解Kmeans算法_第6张图片
2.因为数据不均衡,x,y,z三个值相差很大,所以我们要进行0-1均值化,把数据放缩到0-1区间,
对每一列数据每个元素用这个公式 min是这一列的最小值,max最大值,x是当前值,x*为更新值。
深入理解Kmeans算法_第7张图片
最后得到数据为这个全是0-1的值
深入理解Kmeans算法_第8张图片
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的索引,带入国家数组中。

最终结果
深入理解Kmeans算法_第9张图片

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

你可能感兴趣的:(信息,Kmeans,机器学习)