当前位置:
文档之家› 第8章 聚类分析:基本概念和算法
第8章 聚类分析:基本概念和算法
p1 p2 p3 p4 p5
. . .
...
Proximity Matrix
– Sizes大小 – Densities密度 – Non-globular shapes非球形
Limitations of K-means: Differing Sizes
Original Points
K-means (3 Clusters)
Limitations of K-means: Differing Density
什么是一个好的聚类方法?
一个好的聚类方法要能产生高质量的聚类结果——簇,这 些簇要具备以下两个特点:
– 高的簇内相似性 – 低的簇间相似性
聚类结果的好坏取决于该聚类方法采用的相似性评估方法 以及该方法的具体实现; 聚类方法的好坏还取决于该方法是否能发现某些还是所有 的隐含模式;
聚类的复杂性
1 ci mi
xCi
x
可以证明:当紧邻函数是曼哈顿距离(L1)时,使簇的L1绝对误差和( SAE)最小的质心是中位数
当紧邻函数是欧式距离时,可对SSE求导
SSE ck ck
k
(c
i 1 xCi
k
i
x)
2
(ci x) 2 i 1 xCi ck 2(ck xk ) 0
K means 的优点与缺点
优点: 算法简单 适用于球形簇 二分k均值等变种算法运行良好,不受初始化问题 的影响。 缺点: 不能处理非球形簇、不同尺寸和不同密度的簇 对离群点、噪声敏感
K-means 的局限性
K-means has problems when clusters are of differing
0
1
3
2
5
4
6
凝聚的和分裂的层次聚类
凝聚的层次聚类采用自底向上的策略,开始时把每 个对象作为一个单独的簇,然后逐次对各个簇进行 适当合并,直到满足某个终止条件。
分裂的层次聚类采用自顶向下的策略,与凝聚的层 次聚类相反,开始时将所有对象置于同一个簇中, 然后逐次将簇分裂为更小的簇,直到满足某个终止 条件。 传统的算法利用相似性或相异性的临近度矩阵进行 凝聚的或分裂的层次聚类。
完全聚类(complete clustering) 部分聚类(partial clustering)
划分聚类(Partitional Clustering)
划分聚类简单地将数据对象集划分成不重叠的子集 ,使得每个数据对象恰在一个子集。
Original Points
A Partitional Clustering
4 center-based clusters
簇类型:基于图的
如果数据用图表示,其中节点是对象,而边代表 对象之间的联系。 簇可以定义为连通分支(connected component ):互相连通但不与组外对象连通的对象组。
基于近邻的( Contiguity-Based):其中两个对象是相 连的,仅当它们的距离在指定的范围内。这意味着,每
Original Points
K-means (3 Clusters)
Limitations of K-means: Non-globular Shapes
Original Points
K-means (2 Clusters)
K-means 局限性的克服
Original Points
K-means Clusters
How many clusters?
Six Clusters
Two Clusters
Four Clusters
不同的聚类类型
划分聚类(Partitional Clustering) 层次聚类(Hierarchical Clustering) 互斥(重叠)聚类(exclusive clustering) 非互斥聚类(non-exclusive) 模糊聚类(fuzzy clustering)
Original Points
K-means Clusters
层次聚类
层次聚类按数据分层建立簇,形成一棵以簇为节点 的树,称为聚类图。 按自底向上层次分解,则称为凝聚的层次聚类。 按自顶向下层次分解,就称为分裂的层次聚类。
6
0.2
5
4 3 2 5 2 1 3 1 4
0.15
0.1
0.05
二分k均值
二分k均值算法是基本k均值算法的直接k个簇。 它将所有点的集合分裂成两个簇,从这些簇中选取 一个继续分裂,如此下去,直到产生k个簇
二分k均值算法
初始化簇表,使之包含由所有的点组成的簇。 Repeat 从簇表中取出一个簇。 for i=1 to 实验次数 do 使用基本k均值,二分选定的簇。 end for 从二分实验中选择具有最小总sse的两个簇。 将这两个簇添加到簇表中。 Until 簇表中包含k个簇。
可以把簇定义为有某种共同性质的对象的集合。 例如:基于中心的聚类。还有一些簇的共同性质 需要更复杂的算法才能识别出来。
.
2 Overlapping Circles
K均值聚类
基本K均值算法
1.选择k个点作为初始的质心 2.repeat 3. 将每个点指派到最近的质心,形成k个簇 4. 重新计算每个簇的质心 5.until 质心不发生变化
cos( d1, d2 ) = 0.3150
误差平方和(sum of the squared error,SSE)
误差平方和
SSE dist (ci , x)
i 1 xCi
k
2
它可以度量聚类的质量。误差平方和越小,意味着质心是簇中点的更好 代表。
可以证明:当紧邻函数是欧式距离(L2)时,使簇的SSE最小的质心是均 值,即
层次聚类(Hierarchical Clustering)
层次聚类是嵌套簇的集族,组织成一棵树。
p1 p3 p2 p4
p1 p2
Traditional Hierarchical Clustering
p3 p4
Traditional Dendrogram
p1 p3 p2 p4
p1 p2
Non-traditional Hierarchical Clustering
5.
近性 6.
更新临近度矩阵,以反映新的簇与原来的簇之间的临
Until 仅剩下一个簇
关键的操作是two clusters的邻近度计算
– 不同的邻近度的定义区分了各种不同的凝聚层次技术
起始步骤
Start with clusters of individual points and a proximity matrix p1 p2 p3 p4 p5
One solution is to use many clusters. Find parts of clusters, but need to put together.
Overcoming K-means Limitations
Original Points
K-means Clusters
Overcoming K-means Limitations
f10 = x取1并且y取0的属性个数
f11 = x取1并且y取1的属性个数
简单匹配系数
SMC = 值匹配的属性个数 / 属性个数 = (f11 +f00) / (f01 + f10 + f11 + f00)
Jaccard(雅卡尔 ) 系数 (非对称二元属性)
J = 匹配的个数 / 不涉及0-0匹配的属性个数= (f11) / (f01 + f10 +f11)
凝聚的和分裂的层次聚类
分裂的(DIANA) 第4步 第3步 a, b, c, d, e 第0步 c, d, e 第1步 第2步 第1步 a, b d, e 第2步 第3步 b c d e
第0步
a
第4步
凝聚的(AGENS)
基本凝聚层次聚类方法
凝聚层次聚类算法
1. 2. 3. 4. 计算临近度矩阵 让每个点作为一个cluster Repeat 合并最近的两个类
余弦相似度
If d1 and d2 are two document vectors, then cos( x, y ) = (x y) / ||x|| ||y|| , Example:
x= 3205000200
y= 1000000102
x y= 3*1 + 2*0 + 0*0 + 5*0 + 0*0 + 0*0 + 0*0 + 2*1 + 0*0 + 0*2 = 5 ||x|| = (3*3+2*2+0*0+5*5+0*0+0*0+0*0+2*2+0*0+0*0)0.5 = (42) 0.5 = 6.481 ||y|| = (1*1+0*0+0*0+0*0+0*0+0*0+0*0+1*1+0*0+2*2) 0.5 = (6) 0.5 = 2.245
p3 p4
Non-traditional Dendrogram
互斥的、重叠的、模糊的
互斥的(Exclusive)
– 每个对象都指派到单个簇.
重叠的(overlapping)或非互斥的(non-exclusive)