天天看点

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

1.常见的距离计算公式

1)Minkowski距离公式:
k均值聚类算法优缺点_聚类算法(1)--k-means聚类

其中

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

表示范数,当

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

时,距离公式为

绝对值公式

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

时,距离为

欧式距离

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

时,距离公式为

切比雪夫公式

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

一般情况下,使用聚类对样本进行分类都选用

欧式距离

作为样本相似度的度量准则,相似度越高的样本欧式距离越小,这种以距离为度量准则的聚类算法需要对样本的各特征值进行去量纲,防止在某个特征上值太大而导致其它特征值的差异被忽视。常见的去量纲方法有四种:

2.去量纲

1)Rescaling(特征缩放)
k均值聚类算法优缺点_聚类算法(1)--k-means聚类
2) Mean normalization(均值归一化)
k均值聚类算法优缺点_聚类算法(1)--k-means聚类
3) Standardization(标准化)
k均值聚类算法优缺点_聚类算法(1)--k-means聚类

其中

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

是均值,

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

是标准差。

4)Scaling to unit length(缩放到单位长度)
k均值聚类算法优缺点_聚类算法(1)--k-means聚类

3.聚类算法常见的度量指标 [1]

聚类是将样本集划分为若干个互不相交的子集(样本簇),是一种典型的无监督机器学习算法。一样本簇中的特性应该尽可能相似,聚类性能评价指标大致有两类,外部指标和内部指标,外部指标需将聚类结果同参考模型进行比较,而内部指标仅仅只需要依据聚类结果无需引入任何参考模型。

1)外部指标

对数据集

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

,聚类结果的簇划分为:

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

,参考模型的簇划分为:

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

。令

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

分别表示样本i在聚类结果和参考模型中所属的簇。则有如下定义:

k均值聚类算法优缺点_聚类算法(1)--k-means聚类
k均值聚类算法优缺点_聚类算法(1)--k-means聚类
k均值聚类算法优缺点_聚类算法(1)--k-means聚类
k均值聚类算法优缺点_聚类算法(1)--k-means聚类
k均值聚类算法优缺点_聚类算法(1)--k-means聚类

表示样本

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

在聚类结果和参考模型中均属于同一类簇,

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

表示在聚类结果中为同一簇而参考模型中不属于同一类簇。

Jaccard系数(JC)
k均值聚类算法优缺点_聚类算法(1)--k-means聚类
FM指数(FMI)
k均值聚类算法优缺点_聚类算法(1)--k-means聚类
Rand指数(RI)
k均值聚类算法优缺点_聚类算法(1)--k-means聚类
2)内部指标

对于内部指标有如下定义:

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

对应的指标有:

k均值聚类算法优缺点_聚类算法(1)--k-means聚类

4.K-means聚类

k-means聚类算法在进行聚类时需要先确定簇的个数k,k由用户给定。每个簇通过其质心(簇中所有元素的均值)。k-means的工作流程也很简单,首先随机选定k个初始点作为各簇的初始质心,然后将数据集中的每个点分配到离其最近的簇中,距离计算用上面提及的欧式距离。其算法流程如下图所示[1]:

输入:样本集D={x1,x2,…,xm};
      聚类簇数k.
过程:从D中随机选择k个样本作为初始质心{u1,u2,…,uk}
repeat
   令簇划分Ci=空集(i=1~k)
   for j=1,2,…,m do
       计算样本xj与各初始质心的欧式距离:dji=||xj-ui||2;
       根据距离最近的均值向量确定xj的簇标记;
   end for
   for i=1,2,…,k do
       计算各簇的新质心(簇中元素的均值);
   end for 
until 均值向量未更新
输出:簇划分C={C1,C2,…,Ck}
           

matlab代码[2]:

%导入数据集
           
k均值聚类算法优缺点_聚类算法(1)--k-means聚类

分类结果

数据集为机器学习实战中聚类算法的数据集

textSet

参考

  1. ^ab机器学习-周志华
  2. ^机器学习实战 https://m.ituring.com.cn/book/1021