K-means算法

来源:互联网 发布:斑马软件怎么安装 编辑:程序博客网 时间:2024/06/05 20:39

此算法用于聚类
给你一些数据,他们的属性已经被数字化,你这么对他们进行聚类呢?
k-means是这么做的
其实只要一条数据是数字化的,就可以把他们看成一个点。我们把这些记录看成一个点群。
我们对一些事物进行分类,其实就是看他们距离的远近,正所谓物以类聚,人以群分嘛。
比如,我们想把他们聚成3类,我们可以随机的选三个不同点,然后把每个测试数据与这三个点求距离,这个测试数据与三个点中哪个距离最近,它就属于哪一类。一次迭代完成后,分成了三个群。但是,往往一次迭代就取结果是不科学的,因为,那三个点是你随机选的。你可以再进行迭代,这次再选三个点,这次这三个点怎么选呢?
k的选取:
肘点法,取k=1,2,3,n,观察他的损失函数,假设在k=2的时候,损失函数值在后面变化幅度很小,那么k=2就是比较合理的取值。
k-means损失函数
这样,刚才不是分成了三个群(A,B,C)吗?假如这些记录只有两个纬度(x,y),我们把A群的所有点(n个)的x坐标相加/n,y坐标相加/n。这样就形成了一个新的点a1,其他群也是如此,然后形成了新的三个点a1,b1,c1。然后再让这些记录与一一的与这三个点求距离,与哪个点最近就归为哪一类。经过这一次迭代后,又产生了三个群,如果你想要更好的效果,就多进行几次迭代,直到那三个中心点点再也不会发生变化,或者每个样本点到他对应的中心点的距离之和不再发生很大变化,这时候就会产生最优的聚类结果。

原创粉丝点击