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