聚类分析
基本定义
什么是聚类分析
把一组对象分成若干个聚类(Cluster), 使得同一个聚类中的对象之间具有高的相似性(High intra-cluster similarity), 不同聚类中的对象之间具有低的相似性(Low inter-cluster similarity).
怎样度量聚类方法
聚类内对象的高度同质性(Homogeneity)
聚类间对象的高度分离性 (Separation)
一些常见的聚类准则及其计算复杂性
k-Center:最大半径最小化 (NP-hard)
k-Cluster:最大直径最小化 (NP-hard)
k-median:聚类内部距离之和的最小化 (若视k为输入变量,则NP-hard,对于固定的k,则是P问题)
k-means: 聚类内部距离平方之和的最小化(无论k是否固定,均为NP-hard)
Min-cut:最小割 (P)
Max-cut:最大割 (NP-hard)
Ncut:规范割 (NP-hard)
MRSD准则 (NP-hard)
k-means
- k-means算法如下:
- 把对象划分成k 个非空子集;
- 计算当前划分的每个聚类的中心;
- 把每一个对象分配到离它最近的中心;
- 返回到第2步, 当满足某种停止条件时停止。
- 停止条件:
当分配不再发生变化时停止;
当前后两次迭代的目标函数值小于某一给定的阈值时;
当达到给定的迭代次数时。
层次方法(单链接与全链接)
这种方法不需要用户提供聚类的数目k 作为输入。
-
若定义两个聚类之间的距离为二者对象之间的最小距离,则该算法也称为单链接算法(Single-Linkage Algorithm,SLA),也称为最小生成树算法。
-
若定义两个聚类之间的距离为二者对象之间的最大距离,则该算法也称为全链接算法(Complete-Linkage Algorithm,CLA)。
示例: