当前位置:   article > 正文

k-modes聚类算法介绍

k-modes

为什么要用k-modes算法

k-means算法是一种简单且实用的聚类算法,但是传统的k-means算法只适用于连续属性的数据集,而对于离散属性的数据集,计算簇的均值以及点之间的欧式距离就变得不合适了。k-modes作为k-means的一种扩展,适用于离散属性的数据集。

k-modes算法介绍

假设有N个样本,M个属性且全是离散的,簇的个数为k
步骤一:随机确定k个聚类中心C1,C2...CkCi是长度为M的向量,Ci=[Ci1,Ci2,...,CiM]

步骤二:对于样本xj(j=1,2,...,N),分别比较其与k个中心之间的距离(这里的距离为不同属性值的个数,假如x1=[1,2,1,3],C1=[1,2,3,4],那么x1C1之间的距离为2)

步骤三:将xj划分到距离最小的簇,在全部的样本都被划分完毕之后,重新确定簇中心,向量Ci中的每一个分量都更新为簇i中的众数

步骤四:重复步骤二和三,直到总距离(各个簇中样本与各自簇中心距离之和)不再降低,返回最后的聚类结果。

算例

假设有7个样本,每个样本有4个属性,表示为矩阵X

(1)X={150316133603270415142512}

随机确定2个聚类中心C1=[1,5,1,3],C2=[2,5,1,2]
划分结果用Y表示

(2)Y={101010011001}

即第1、2、3、5个样本被划分到 C1,即第4、6个样本被划分到 C2
接下来更新 C1C2
C1=[1,6,0,3],C2=[2,7,0,4](有多个众数就随机取一个,例子不好举,就这样吧)
后面的步骤就是不断重复步骤二和三了

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/679318
推荐阅读
相关标签
  

闽ICP备14008679号