机器学习经典算法总结(6)——聚类

一、聚类

聚类属于无监督学习,是其中研究最多,应用最广的算法。

作用:

(1)作为一个单独过程,寻找数据内部分布结构

(2)作为分类等其他学习任务的前驱过程

性能度量:

聚类性能度量亦称“有效性指标”,由此来评估聚类模型的好坏,并可将其作为聚类过程的优化目标。

聚类的目标:

簇内相似度(intra-cluster similarity)高且簇间相似度(inter-cluster similarity)低。

两个基本问题:

性能度量与距离计算

 

二、性能度量

两类度量指标: 
外部指标:将聚类结果与某个“参考模型”进行比较 
内部指标:直接考察聚类结果不利用任何参考模型

常用的外部指标:

对数据集D=x1,x2,...,xm,假定通过聚类给出的簇划分为C={C1,C2,...,Ck},参考模型给出簇划分为C={C1,C2,...,Cs},相应的,令λ与λ∗分别表示与CC∗对应的簇标记向量。将样本两两配对,定义: 

a=|SS|, SS={(xi,xj)|λi=λj,λ∗i=λ∗j,i<j)}

b=|SD|, SD={(xi,xj)|λi=λj,λ∗i≠λ∗j,i<j)}

c=|DS|, DS={(xi,xj)|λi≠λj,λ∗i=λ∗j,i<j)}

d=|DD|, DD={(xi,xj)|λi≠λj,λ∗i≠λ∗j,i<j)}

其中集合SS中表示包含在C中属于相同簇且在C∗中也属于相同簇的样本对,以此类推。

基于以上定义可以导出下面常用的聚类性能度量外部指标:

(1Jaccard系数:

(2FM指数: 

(3Rand 指数:

上述结果均在[0,1]区间,值越大越好。

常用的内部指标:

对于聚类结果的簇划分C={C1,C2,...,Ck},定义: 

簇内平均距离:

簇内最远距离:diam(C)=max1i<j|C|dist(xi,xj)

簇间最近距离:dmin(Ci,Cj)=minxiCi,xjCjdist(xi,xj)

簇间的中心距离:dcen(Ci,Cj)=dist(μi,μj)

基于以上定义,我们列出以下聚类性能度量内部指标:

(1DB指数:

(2Dunn指数:

DBI值越小效果越好,DI值越大效果越好。

 

三、距离计算

对函数dist(·),若他是一个距离度量,则需要满足如下基本性质:

 

给定样本:xi=(xi1,xi2,...,xin)xj=(xj1,xj2,...,xjn),按数据属性分类定义以下公式:

1.有序属性

“闵可夫斯基距离”: 

p=1即为哈曼顿距离,当p=2即为欧氏距离。

2.无序属性

VDM距离:

其中mu,a表示在属性u上取值为a的样本数,mu,a,i表示在第i个样本簇中在属性u上取值为a的样本数,k为样本簇数。

3.混合属性

将闵可夫斯基距离与VDM距离混合: 

其中有nc个有序属性,n-nc个无序属性。

4.不同属性重要性不同

当样本空间中不同属性重要性不同时,可使用“加权距离”(以闵可夫斯基距离为例):

 

 

四、分类

1)划分聚类:k-meansk-medoidsk-modesk-medianskernel k-means

2)层次聚类:AgglomerativedivisiveBIRCHROCKChameleon

3)密度聚类:DBSCANOPTICS

4)网格聚类:STING

5)模型聚类:GMM

6)图聚类:Spectral Clustering(谱聚类)

 

posted @ 2018-06-11 14:15  yucen  阅读(440)  评论(0编辑  收藏  举报