聚类
聚类是一种无监督学习,它试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个“簇”。
聚类的性能度量
聚类的性能度量又称为聚类“有效性指标”。聚类的期望结果是“簇内相似度”高,且“簇间相似度”低。
聚类性能度量分为两类:
一类是将聚类结果与某个“参考模型”进行比较,称为“外部指标”;
另一类是直接考察聚类结果而不利用任何参考模型,称为“内部指标”。
外部指标
基于上式,有聚类性能度量外部指标如下:
显然,上述性能度量的结果值均在[0, 1]区间,值越大越好。
内部指标
基于上式,有内部指标如下:
显然,DBI的值越小越好,而DI的值越大越好。
距离计算
在讨论距离计算时,属性上是否定义了“序”关系更为重要,例如,定义域为{1,2,3}的离散属性与连续属性的性质更接近一点,能直接在属性值上计算距离:“1”与“2”比较接近、与“3”比较远,这样的属性称为“有序属性”;而定义域为{飞机,火车,轮船}这样的离散属性则不能直接在属性值上计算距离,称为“无序属性”。
显然,闵可夫斯基距离可用于计算有序属性。
对无序属性可采用VDM(Value Difference Metrics)。
于是,将闵可夫斯基距离和VDM结合即可处理混合属性。假定有Nc个有序属性、N-Nc个无序属性,不失一般性,令有序属性排列在无序属性之前,则:
当样本空间中不同属性的重要性不同时,可使用“加权距离”。以加权闵可夫斯基距离为例:
需要注意的是,通常我们是基于某种形式的距离来定义“相似度度量”,距离越大,相似度越小。但是用来相似度度量的距离未必一定要满足距离度量的时候基本性质,尤其是直递性。
图中的例子就是“非度量距离”。
原型聚类
k均值算法
直观来看,上式在一定程度上刻画了簇内样本围绕均值向量的紧密程度,E值越小则簇内样本相似度越高。
k均值算法步骤
1、从样本集中随机选择k个样本作为初始均值向量;
2、遍历样本集中的每一个样本,根据距离最近的均值向量将每个样本划分到相应的簇内,即对当前簇进行划分;
3、由于上一步完成了簇的划分,所以对均值向量进行迭代更新;
4、重复以上步骤,直到当前均值向量均未更新。
注:
通常设置一个最大运行轮数或最小调整幅度阈值,若达到最大轮数或调整幅度小于阈值,则停止运行。
学习向量量化
与k均值算法相似,“学习向量量化”(Learning Vector Quantization,简称LVQ)也是试图找到一组原型向量来刻画聚类结构,但与一般聚类算法不同的是,LVQ假设数据样本带有类别标记,学习过程利用样本的这些监督信息来辅助聚类。
LVQ算法步骤
1、随机初始化一组原型向量(每个原型向量代表一个聚类簇);
2、从样本集中随机选取一个样本,找出与其距离最近的一个原型向量;
3、根据样本所带的标签与原型向量的类别进行对比,对该原型向量进行相应的更新;
4、当达到最大迭代轮数,或者原型向量更新很小甚至不再更新时,算法结束。
高斯混合聚类
密度聚类
基于密度的聚类算法假设聚类结构能通过样本分布的紧密程度确定。通常情况下,密度聚类算法从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇以获得最终的聚类结果。
DBSCAN
DBSCAN基于一组“邻域”参数来刻画样本分布的紧密程度。
DBSCAN算法步骤
1、根据给定的邻域参数找到所有核心对象;
2、随机选择一个核心对象,找到由其密度可达的所有样本(该核心对象密度直达的样本,如果这个样本是核心对象,继续找其密度直达的样本,也就是与随机选择的核心对象密度可达的样本),并生成聚类簇;
3、重复以上步骤,直到所有的核心对象都被访问。
层次聚类
层次聚类试图在不同层次对数据集进行划分,从而形成树形的聚类结构。数据集的划分可采用“自底向上”的聚合策略,也可采用“自顶向下”的分拆策略。
AGNES
AGNES是一种采用自底向上聚合策略的层次聚类算法。它先将数据集中的每个样本看作是一个初始聚类簇,然后在算法运行的每一步中找出距离最近的两个聚类簇进行合并,该过程不断重复,直至达到预设的聚类簇个数。这里的关键是如何计算聚类簇之间的距离。
显然,最小距离由两个簇的最近样本决定,最大距离由两个簇的最远样本决定,而平均距离则由两个簇的所有样本共同决定。当聚类簇距离由Dmin、Dmax或Davg计算时,AGNES算法被相应地称为“单链接”、“全链接”或“均链接”。
AGNES
1、对仅含一个样本的初始聚类簇和相应的距离矩阵进行初始化;
2、不断合并距离最近的聚类簇,并对合并得到的聚类簇的距离矩阵进行更新;
3、不断重复以上步骤,直到达到预设的聚类簇数。