聚类分析优缺点:

优点:

1.聚类是自动的不必带有方向性

2.易于理解和实施

缺点:

1.有时候难以解读聚类的结果

2.聚类结果对距离计算方式的算则和特征之间的权重十分敏感

3.K-mean由K值主导

4.K-means对初始中心的选择十分敏感

5.异常值也会成为族群


做聚类分析之前,我们要先对数据进行一些必要的处理:

对于continuous变量:

我们需要先rescale,把所有数据都化成同一口径,才能进行比较。rescale一般采用两种方法,一种是normalization,将数据统一变成0到1之间;另外一种方法是standardization,把数据都化成以0为mean,1为标准差的口径。前者的缺点是若果存在异常值,会把正常的数据rescale到一个很小的范围,后者则会变得unbounded。

对于categorical变量:

需要先变成0,1变量,如果种类多于2个,则需要创造dummy variable。


判断k值的两个方法:

1.根据经验判断

系统聚类分析python实现 系统聚类分析优点_数据

,其中n是记录数,因此k可能会很大

2.通过Silhouette值来判断聚类的效果好坏,Silhouette介乎于-1到1之间,-1代表效果极差,1代表效果极好


Silhouette是一个判断聚类效果的工具,其融合了一个族群内部的凝聚度以及族群于族群之间的分离度作为一个综合指标Silhouette的值在-1和1之间,数值越大,聚类效果越好。公式如下:

系统聚类分析python实现 系统聚类分析优点_数据_02

其中,S(i)表示每个点的Silhouette值,A(i)表示i这个点与其所属族群所有点的距离平均值,B(i)表示i这个点与其中一个外族群中所有点的距离平均值的最小值(也就是说B(i)=min[ (i与第一个外族群所有点的距离平均值),(i与第二个外族群所有点的距离平均值),(i与第三个外族群所有点的距离平均值).....],计算所有S(i),取平均值,

系统聚类分析python实现 系统聚类分析优点_聚类_03

,我们就可以得出一个对应k值得S。通过计算多个k值的S,我们可以知道哪个k值聚类的效果最好。


若果对于Silhouette的计算量太大,我们可以采取折中的方法,采取一种叫Slight Silhouette的方法来计算Slight Silhouette值用于判断聚类效果。Slight Silhouette中A(i)的值是计算i这个点与本族群中心的距离,B(i)则是计算i到外族群中心点距离的最小值(即min(i与各个外族群中心点的距离))。