一、背景

聚类最难得就是确定最佳的聚类数,下面介绍几种方法。

二、确定最佳聚类数

2.1 轮廓系数(Silhouette)

Silhouette系数是对聚类结果有效性的解释和验证,由Peter J. Rousseeuw于1986提出。

图解原理如下:

怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_怎么用机器学习算法找到最优的聚类阈值


具体方法如下:

  1. 计算簇内不相似度
  • 计算样本 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_算法_02 到同簇其他样本的平均距离 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_算法_03怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_算法_03 越小,说明样本 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_算法_02 越应该被聚类到该簇。将 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_算法_03 称为样本 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_算法_02簇内不相似度
  • 簇C中所有样本的a i 均值称为簇C的簇不相似度。
  1. 计算簇间不相似度
  • 计算样本 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_算法_02 到其他某簇 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_机器学习_09 的所有样本的平均距离 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_算法_10,称为样本 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_算法_02 与簇 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_机器学习_09 的不相似度。定义为样本 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_算法_02 的簇间不相似度:怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_python_14
  • 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_怎么用机器学习算法找到最优的聚类阈值_15 越大,说明样本 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_算法_02
  1. 计算轮廓系数
  • 根据样本i的簇内不相似度 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_算法_03 和簇间不相似度 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_怎么用机器学习算法找到最优的聚类阈值_15 ,定义样本 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_算法_02 的轮廓系数:
  1. 判断:
  • 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_python_20 接近1,则说明样本 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_算法_02
  • 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_python_20 接近-1,则说明样本 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_算法_02
  • 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_python_20 近似为0,则说明样本 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_算法_02

2.2 离散度(Dispersion score)

2.2.1 定义

The dispersion coefficient is based on the consensus matrix (i.e. the average of connectivity matrices) and was proposed by Kim et al. (2007) to measure the reproducibility of the clusters obtained from NMF.

it is defined as:

怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_python_26

where n is the total number of samples.

By construction, 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_机器学习_27 and 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_聚类_28

2.2.2 Consensus matrix

谈到consensus matrix,不得不讨论一下共识聚类(一致性聚类)。共识聚类是为不同的聚类算法,选择最优的聚类数量(K)。其具体的原理是:基于有放回地重采样方法,考量任意一个数据在不同样本中聚类表现的一致性来确定聚类的参数是否合适。

通俗的步骤理解为:*

  • 第一步:从原始数据中随机抽取子集,当然子集的规模不能太小,最好是原始数据集的半数以上,子集要尽量多,以确保里面的每一个数据都多次被取到(100次以上)。然后,将聚类方法(可以使K-means或者层次聚类应用于所有的数据子集,执行分别聚类。
  • 第二步:这一步的关键在于建立一个新的矩阵:consensus matrix。我们之前说聚类的输入通常是一个distance matrix。 那么consensus matrix怎么建呢?假设有 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_python_29怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_python_30 个数据,那么consensus matrix怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_机器学习_31

D1

D2


Dn

D1

C11

C12


C1n

D2

C11

C12


C2n




Cij


Dn

Cn1

Cn2


Cnn

其中,怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_机器学习_32 代表的是在多次的聚类过程中,数据 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_python_33 和数据 怎么用机器学习算法找到最优的聚类阈值 最佳聚类数_python_34

那么,好的聚类方法会得到怎么样的consensus matrix呢?对了,全部由0或1组成的方阵,代表着那些很像的数据总在一类,而不像的数据则总是不在一类,这正符合了聚类的初衷是吧。

  • 第三步:再对consensus matrix做一次聚类(这里用层次聚类方便可视化),只有0和1的矩阵,就让是1的都聚在一起,而0的都分开来,用heatmap看起来就是下面这样的。

2.3 共表型相关系数(Cophenetic correlation)

在基于NMF的聚类中,共表型相关性系数的计算是:

  • The cophenetic correlation coeffificient is based on the consensus matrix (i.e. the average of con- nectivity matrices) and was proposed by Brunet et al. (2004) to measure the stability of the clusters obtained from NMF.
  • It is defined as the Pearson correlation between the samples’ distances induced by the consensus matrix (seen as a similarity matrix) and their cophenetic distances from a hierachical clustering based on these very distances (by default an average linkage is used). See Brunet et al. (2004).

Cophenetic Coefficient How good is the clustering that we just performed? There is an index called Cross Correlation or Cophenetic Correlation Coefficient (CP) that shows the goodness of fit of our clustering similar to the Correlation Coefficient of regression.
To compute the Cophenetic Correlation Coefficient of hierarchical clustering, we need two informations:

  • Distance matrix
  • Cophenetic matrix

基于层次聚类的方式计算共表型相关系数。

  • 第一步:基于距离相似度(如欧几里德距离)计算样本间的距离相似值(distance matrix)。
    这里我们仅展示左下角的距离矩阵。
  • 第二步:基于层次聚类算法,计算cophenetic matrix
    首先,基于层次聚类中single linkage算法,计算归类后的“加权”距离。

    其次,基于“加权”的距离,构建cophenetic matrix
  • 第三步:基于distance matrix和cophenetic matrix,计算相关性(如,pearson相关性)
    首先,将两个距离矩阵表进行整合(如下):

    其次,计算相关性(如pearson相关性)

Cophenetic Correlation Coefficient is simply correlation coefficient between distance matrix and Cophenetic matrix = Correl (Dist, CP) = 86.399%. As the value of the Cophenetic Correlation Coefficient is quite close to 100%, we can say that the clustering is quite fit.