k均值算法的计算过程非常直观:
1、从D中随机取k个元素,作为k个簇的各自的中心。
2、分别计算剩下的元素到k个簇中心的相异度,将这些元素分别划归到相异度最低的簇。
3、根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均数。
4、将D中全部元素按照新的中心重新聚类。
5、重复第3,4步,直到聚类结果不再变化。
6、将结果输出。
相似度计算:
方法1:欧式距离
方法2:曼哈顿距离
方法3:闵可夫斯基距离
这里有一个问题,就是不同维度的属性取值范围不同,对于最终结果的计算结果影响有偏差,所以需要进行规格化。所谓规格化就是将各个属性值按比例映射到相同的取值区间,这样是为了平衡各个属性对距离的影响。通常将各个属性均映射到[0,1]区间
映射公式:
其中max(ai)和min(ai)表示所有元素项中第i个属性的最大值和最小值