聚类分析—K-means and K-medoids聚类

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2014-5-12
k-中心点聚类方法(续)

找聚类中的代表对象(中心点)
PAM (Partitioning Around Medoids, 1987)

首先为每个簇随意选择选择一个代表对象, 剩余的对象根 据其与代表对象的距离分配给最近的一个簇; 然后反复地 用非代表对象来替代代表对象,以改进聚类的质量 PAM 对于较小的数据集非常有效, 但不能很好地扩展到大 型数据集


CLARA (Kaufmann & Rousseeuw, 1990)抽样 CLARANS (Ng & Han, 1994): 随机选样
2014-5-12
k-中心点聚类方法(续)

基本思想:

首先为每个簇随意选择选择一个代表对象; 剩余的对象 根据其与代表对象的距离分配给最近的一个簇
然后反复地用非代表对象来替代代表对象, 以改进聚类 的质量

当结果簇是密集的,而簇与簇之间区别明显时,它的效果 较好
Comment: 常常终止于局部最优.


全局最优 可以使用诸如确定性的退火(deterministic
annealing)和遗传算法(genetic algorithms)等技术得到
2014-5-12
k-平均聚类算法(续)

弱点

只有在簇的平均值(mean)被定义的情况下才能使用.可能不适用于 某些应用, 例如涉及有分类属性的数据
数据挖掘
Topic3--聚类分析 K-means &K-medoids 聚类
主要内容
K-means算法 Matlab程序实现 在图像分割上的简单应用 K-medoids算法
k-中心点聚类算法--PAM
K-medoids改进算法
2014-5-12
基于划分的聚类方法

构造n个对象数据库D的划分, 将其划分成k个聚类 启发式方法: k-平均值(k- means)和 k-中心点(k- medoids) 算 法
2014-5-12
Matlab程序实现(续)
Z = zeros(N,K); for m=1:N Z(m,j(m)) = 1; end e = sum(sum(Z.*Dist)./N); fprintf('%d Error = %f\n', n, e); Mo = M; end
2014-5-12
k-平均聚类算法(续)
25 2014-5-12
CLARANS (“Randomized” CLARA) (1994)

CLARANS (A Clustering Algorithm based on Randomized Search) (Ng and Han’94) CLARANS将采样技术和PAM结合起来


聚类结果的质量用一个代价函数来估算, 该函数评估了 对象与其参照对象之间的平均相异度
E || p oi ||
k j 1 pC j
2014-5-12
2

k-中心点聚类方法(续)

为了判定一个非代表对象Orandom 是否是当前一个代表对象Oj 的好的替代, 对于每一个非代表对象p,考虑下面的四种情况:
best
24
sampled
2014-5-12
CLARA 改良
解決:CLARANS (Clustering Large Application based upon RANdomized Search) 应用 graph 考虑紧邻节点 不局限于区域性 负杂度:O(n^2) → 缺点


k-平均值(MacQueen’67): 每个簇用该簇中对象的平均值来表示

k-中心点或 PAM (Partition around medoids) (Kaufman & Rousseeuw’87): 每个簇用接近聚类中心的一个对象来表示

这些启发式算法适合发现中小规模数据库中的球状聚类

对于大规模数据库和处理任意形状的聚类,这些算法需要进 一步扩展
点, 而是选用簇中位置最中心的对象, 即中心点(medoid)作 为参照点.
10 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10
10 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10
10 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10
k-中心点聚类方法(续)

算法: k-中心点
(1) 随机选择k个对象作为初始的代表对象;
(2) repeat
(3) 指派每个剩余的对象给离它最近的代表对象所代表的簇; (4) 随意地选择一个非代表对象Orandom; (5) 计算用Orandom代替Oj的总代价S; (6) 如果S<0,则用Orandom替换Oj,形成新的k个代表对象的集 合; (7) until 不发生变化

当存在噪音和孤立点时, PAM 比 k-平均方法更健壮. 这是因为中心点不象平均值那么容易被极端数据影 响 PAM对于小数据集工作得很好, 但不能很好地用于 大数据集


每次迭代O(k(n-k)2 )
其中 n 是数据对象数目, k 是聚类数
基于抽样的方法,
CLARA(Clustering LARge Applications)
2014-5-12
PAM(续)
Total Cost = 20
10 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10
10 9 8
10 9 8
Arbitrary choose k object as initial medoids
7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10
j
3. 按下式重新计算k个聚类中心; xs s:label ( s ) j cj , j 1, 2,..., k Nj
4. 重复步骤2和步骤3,直到达到最大迭代次数为止。
2014-5-12
Matlab程序实现
function [M, j, e] = kmeans(X, K, Max_Its) [N,D]=size(X); I=randperm(N); M=X(I(1:K),:); Mo = M; for n=1:Max_Its for k=1:K Dist(:,k) = sum((X - repmat(M(k,:),N,1)).^2,2)'; end [i, j]=min(Dist, [], 2); for k=1:K if size(find(j==k))>0 M(k, :) = mean(X(find(j==k), :)); end end
10 9
Swapping O and Oramdom If quality is improved.
8 7 6 5 4 3 2 1 0
Compute total cost of swapping
9 8 7 6 5 4 3 2 1 0
2014-5-12
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
7
8
9
10
PAM(续)

10
9

10
10 9 8 7 6 5
9
8
8
7
7
6
6
5
5
4
4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10
将每个 对象赋 给最类 似的中 心
10 9 8 7 6 5 4 3 2 1 0
3 2 1 0 0 1 2 3 4 5 6 7 8 9 10
更新簇 的平均 值 重新赋值
4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10
2014-5-12
PAM

PAM (Partitioning Around Medoids) (Kaufman and Rousseeuw, 1987)

是最早提出的k-中心点聚类算法 基本思想:

随机选择k个代表对象

反复地试图找出更好的代表对象: 分析所有可能的对象对,每个对 中的一个对象被看作是代表对象, 而另一个不是. 对可能的各种组合, 估算聚类结果的质量
2014-5-12
在图像分割上的简单应用(续)
分割后的效果
注:最大迭代次数为20次,需运行多次才有可能得到较好的效果。
2014-5-12
在图像分割上的简单应用(续)
例 2:
注:聚类中心个数为5,最大迭代次数为10。
2014-5-12
k-平均聚类算法(续)

优点: 相对有效性: O(tkn),
其中 n 是对象数目, k 是簇数目, t 是迭代次数; 通常, k, t << n.


有效性依赖于样本集的大小 基于样本的好的聚类并不一定是 整个数据集的好的聚类, 样本可能发生倾斜

例如, Oi是最佳的k个中心点之一, 但它不包含在样本中, CLARA将找不到 最佳聚类
2014-5-12
CLARA -- 效率

由取样大小决定 PAM → 利用完整资料集 CLARA → 利用取样资料集 盲点:取样范围不包含最佳解



第四种情况:p当前隶属于Oi,i≠j。如果Oj被Orandom代替,且p离Orandom最近,
那么p被重新分配给Orandom
2014-5-12
k-中心点聚类方法(续)

1.重新分配给Oi
2. 重新分配给Orandom
3. 不发生变化
2014-5-12
4.重新分配给Orandom
k-中心点聚类代价函数的四种情况
2014-5-12
K-means聚类算法

算法描述
1. 为中心向量c1, c2, …, ck初始化k个种子 2. 分组: 将样本分配给距离其最近的中心向量 由这些样本构造不相交( non-overlapping ) 的聚类 3. 确定中心: 用各个聚类的中心向量作为新的中心 4. 重复分组和确定中心的步骤,直至算法收敛
Assign each remainin g object to nearest medoids
7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10
K=2
Total Cost = 26
Randomly select a nonmedoid object,Oramdom
10
Do loop Until no change
2014-5-12
CLARA (Clustering Large Applications) (1990)

CLARA (Kaufmann and Rousseeuw in 1990)

不考虑整个数据集, 而是选择数据的一小部分作为样本

它从数据集中抽取多个样本集, 对每个样本集使用PAM, 并 以最好的聚类作为输出 优点: 可以处理的数据集比 PAM大 缺点:

第一种情况:p当前隶属于代表对象 Oj. 如果Oj被Orandom所代替, 且p离Oi最近, i≠j, 那么p被重新分配给Oi 第二种情况:p当前隶属于代表对象 Oj. 如果Oj 被Orandom代替, 且p离Orandom最 近, 那么p被重新分配给Orandom 第三种情况:p当前隶属于Oi,i≠j。如果Oj被Orandom代替,而p仍然离Oi最近, 那么对象的隶属不发生变化
2014-5-12
K-means聚类算法(续)

算法的具体过程 c2, …, ck;
N { x } 1. 从数据集 n n1 中任意选取k个赋给初始的聚类中心c1,
2. 对数据集中的每个样本点xi,计算其与各个聚类中心 cj的欧氏距离并获取其类别标号:
label (i) arg min || xi c j ||2 , i 1,..., N, j 1,..., k
重新赋值
10 9 8 7 6
wenku.baidu.comK=2
任意选择 K个对 象作为初始聚类 中心
更新簇 的平均 值
0 1 2 3 4 5 6 7 8 9 10
5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10
2014-5-12
在图像分割上的简单应用
例1:
1. 图片:一只遥望大海的小狗;
2. 此图为100 x 100像素的JPG图片,每个像素可以表 示为三维向量(分别对应JPEG图像中的红色、绿色 和蓝色通道) ; 3. 将图片分割为合适的背景区域(三个)和前景区域 (小狗); 4. 使用K-means算法对图像进行分割。
需要预先指顶簇的数目k, 不能处理噪音数据和孤立点(outliers) 不适合用来发现具有非凸形状(non-convex shapes)的簇

2014-5-12
k-中心点聚类方法

k-平均值算法对孤立点很敏感!

因为具有特别大的值的对象可能显著地影响数据的分布.

k-中心点(k-Medoids): 不采用簇中对象的平均值作为参照
相关文档
最新文档