K-means聚类算法(K-平均/K-均值算法)是最为经典也是使用最为广泛的一种基于距离的聚类算法。基于距离的聚类算法是指采用距离作为相似性量度的评价指标,也就是说当两个对象离得近时,两者之间的距离比较小,那么它们之间的相似性就比较大。
算法的主要思想是通过迭代过程把数据集划分为不同的类别,使得评价聚类性能的准则函数达到最优,从而使生成的每个聚类(又称簇)紧凑且独立。
K-means聚类算法的缺点:对于离群点是敏感的,一个很大极端值的数据对象可能会显著地扭曲数据的分布。
常见的相似度/距离评价准则有:
-
欧几里得距离
其意义就是两个元素在欧氏空间中的集合距离,因为其直观易懂且可解释性强,被广泛用于标识两个标量元素的相异度。
-
曼哈顿距离
-
闵可夫斯基距离
聚类性能评价准则:
K-means聚类算法通常使用误差平方和准则函数(等同于欧几里得距离)来评价聚类性能。给定数据集X,其中只包含描述属性,不包含类别属性。假设X包含K个聚类子集X1,X2,…XK;各个聚类子集中的样本数量分别为n1,n2,…,nk;各个聚类子集的均值代表点(也称聚类中心)分别为m1,m2,…,mk。
-
误差平方和准则函数公式
K-means聚类算法实例
初始数据集,共5条记录,每条数据记录包含两个属性x和y。
作为一个聚类分析的二维样本,要求的簇的数量K=2。
学习参考:
https://www.cnblogs.com/leoo2sk/archive/2010/09/20/k-means.html#!comments示例计算有误,思路没问题。
https://www.toutiao.com/i6451161136644489742/加了对数据[0,1]规格化处理的环节,中心思想还是一样的。
https://blog.csdn.net/leaf_zizi/article/details/82684921文本聚类,可以做舆情信息汇总,分词软件rost cm6。
https://www.toutiao.com/i6452271711302713870/K-medoids聚类,K-means基础上的改良。对小数据集有效。