最近听说了一个K-Modes聚类法,听说是基于K-Means在分类特征上改良的聚类算法。但是没有找到相关的资料,有知道算法的具体细节的吗?
谢谢!
1个回答
我对K-Modes Clustering(K众数聚类)还算熟悉。我可以讲一讲。
K-Modes和K-Means非常类似。
相同点:我们在算法开始前自己设定K,也就是聚类的个数;然后再自己设定K个初始中心点,所有样本点被聚类到离自己最近的那个中心点;根据每个聚类,重新计算中心点,所有样本点再重新被聚类。如此往复,直到每个样本点的归属不再改变或者达到某个预设的收敛条件。
不同点:K-Means是用每个聚类中的均值(mean)做中心点,K-Modes是用每个聚类中的众数(mode)做中心点。距离的定义也不同,通常K-Means较多使用欧式距离,K-Modes一般是汉明距离,也就是对于每个特征来说,如果不同记为1,相同则为0。
我可以举个例子。比如我们有10款手机需要聚类,我们关于这10款手机的数据都是分类数据(categorical)。
手机 国家 人群 颜色
1 中 青年 白
2 日 青年 黑
3 中 青年 蓝
4 中 青年 黑
5 日 青年 白
6 日 中年 黑
7 美 中年 蓝
8 美 中年 白
9 中 中年 黑
10 美 中年 黑
假定我们选择聚类的数量K=2,初始点为手机1(中,青年,白)和手机6(日,中年,黑)。
下面开始计算距离。
手机 与手机1的距离 与手机6的距离
2 2 1
3 1 3
4 1 2
5 1 2
7 3 2
8 2 2
9 2 1
10 3 1
对于手机8来说,出现了打平,我们可以随机选择一个,假定手机8属于手机1的聚类。
聚类1:手机1, 3, 4, 5, 8
手机 国家 人群 颜色
1 中 青年 白
3 中 青年 蓝
4 中 青年 黑
5 日 青年 白
8 美 中年 白
我们下面计算聚类1的新中心。
“国家”,中国三次,日本美国各一次,国家的众数是中国。
“人群”,青年四次,中年一次,众数是青年。
“颜色”,白色是众数。
所以聚类1的中心依然是(中,青年,白)。
聚类2:手机2, 6, 7, 9, 10
手机 国家 人群 颜色
2 日 青年 黑
6 日 中年 黑
7 美 中年 蓝
9 中 中年 黑
10 美 中年 黑
同样地,我们可以计算这个聚类的中心点是(日,中年,黑)。
在这个例子中,比较巧合,经过一次迭代后,中心并没有改变,所以聚类就完成了。
也有时候,聚类的新的中心点不一定在数据集中出现,这个也是可能的,我们依旧会使用这个中心点。