聚类分析ppt

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

两个距离概念
• 按照远近程度来聚类需要明确两个概念: 一个是点和点之间的距离,一个是类和类 之间的距离。 • 点间距离有很多定义方式。最简单的是歐 氏距离。 • 当然还有一些和距离相反但起同样作用的 概念,比如相似性等,两点越相似度越大, 就相当于距离越短。
两个距离概念
• 由一个点组成的类是最基本的类;如果每一类 都由一个点组成,那么点间的距离就是类间距 离。但是如果某一类包含不止一个点,那么就 要确定类间距离, • 类间距离是基于点间距离定义的:比如两类之 间最近点之间的距离可以作为这两类之间的距 离,也可以用两类中最远点之间的距离或各类 的中心之间的距离来作为类间距离。 • 在计算时,各种点间距离和类间距离的选择是 通过统计软件的选项实现的。不同的选择的结 果会不同,但一般不会差太多。
系统聚类法
• 系统聚类法(hierarchical clustering method)是聚 类分析中用的最多的一种。 • 基本思想:开始将n个样本各自作为一类,并规 定样本之间的距离与类之间的距离,然后将距离 最近的两类合并成一个新类,并计算新类与其他 类之间的距离,重复进行两个最近类的合并,每 次减少一类,直至所有的样本合并为一类。 • 当然我们可以选择以上距离的任意一种进行聚类。
“冰柱图”(icicle)
Vertical Icicle Case
16
15
14
12
11
13
10
7
5
9
6
3
8
4
2
Number of clusters 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
X X X X X X X X X X X X X X X
X X X X X
X X X X X X X X X X X X X X X
动态聚类法(K均值聚类)
• 前面说过,聚类可以走着瞧,不一定事先 确定有多少类;但是这里的k-均值聚类(kmeans cluster , 也 叫 快 速 聚 类 , quick cluster)却要求你先说好要分多少类。看起 来有些主观,是吧! • 假定你说分3类,这个方法还进一步要求你 事先确定3个点为“聚类种子”(SPSS软件自 动为你选种子);也就是说,把这3个点作为 三类中每一类的基石。
数据的分类—聚类分析
韩猛
饮料数据(drink.txt )
• 16种饮料的热量、咖啡因、钠及价格四种变量
• 如何根据以上数据对16种饮料进行分类呢? • 对数据进行分类就需要知道距离?你知道 那些距离?
Байду номын сангаас
如何度量距离远近?
• 如果想要对100个学生进行分类,而仅知道他 们的数学成绩,则只好按照数学成绩分类;这 些成绩在直线上形成100个点。这样就可以把 接近的点放到一类。 • 如果还知道他们的物理成绩,这样数学和物理 成绩就形成二维平面上的100个点,也可以按 照距离远近来分类。 • 三维或者更高维的情况也是类似;只不过三维 以上的图形无法直观地画出来而已。 • 在饮料数据中,每种饮料都有四个变量值。这 就是四维空间点的问题了。
• 然后,根据和这三个点的距离远近,把所 有点分成三类。再把这三类的中心(均值)作 为新的基石或种子(原来 “种子”就没用了), 再重新按照距离分类。 • 如此叠代下去,直到达到停止叠代的要求 (比如,各类最后变化不大了,或者叠代 次数太多了)。显然,前面的聚类种子的 选择并不必太认真,它们很可能最后还会 分到同一类中呢。下面用饮料例的数据来 做k-均值聚类。
SPSS实现(聚类分析)
• K-均值聚类 • 以 数 据 drink.sav 为 例 , 在 SPSS 中 选 择 Analyze-Classify-K-Menas Cluster, • 然 后 把 calorie ( 热 量 ) 、 caffeine ( 咖 啡 因)、sodium(钠)、price(价格)选入 Variables, • 在Number of Clusters处选择3(想要分的类 数), • 如果想要知道哪种饮料分到哪类,则选 Save,再选Cluster Membership等。 • 注意k-均值聚类只能做Q型聚类,如要做R 型聚类,需要把数据阵进行转置。
x11• x12•
x21• x22•
重心法(Centroid clustering):均值点的距离

x1 , y1

x2 , y2
离差平方和法连接
(2 3)2 (4 3)2 2
2,4
(6 5.5)2 (5 5.5)2 0.5
6,5
1,5
(1 3)2 (5 3)2 8

C xy (1) cos xy
xi 2 yi 2
i i
Pearson correlation
(相似系数2):
Chebychev: Maxi|xi-yi|
Minkowski: ( xi yi )q i
1 q
Cxy (2) rxy
( x x )( y y )
红绿(2,4,6,5)8.75 离差平方和增加8.75-2.5=6.25 黄绿(6,5,1,5)14.75 离差平方和增加14.75-8.5=6.25 黄红(2,4,1,5)10-10=0 故按该方法的连接和黄红首先连接。
• 有了上面的点间距离和类间距离的概念, 就可以介绍聚类的方法了。这里介绍两个 简单的方法。
SPSS实现(聚类分析)
• 分层聚类 • 对 drink.sav 数 据 在 SPSS 中 选 择 Analyze - Classify-Hierarchical Cluster, • 然 后 把 calorie ( 热 量 ) 、 caffeine ( 咖 啡 因)、sodium(钠)、price(价格)选入 Variables, • 在Cluster选Cases(这是Q型聚类:对观测 值聚类),如果要对变量聚类(R型聚类) 则选Variables, • 为 了 画 出 树 状 图 , 选 Plots , 再 点 Dendrogram等。
i p j q
D1 2
xk G p Gq

( xk x ) '( xi x ) Dpq D1 2 D1 D2
(中间距离, 可变平均法,可变法等可参考各书). 在用欧氏距离时, 有统一的递推公式
最短距离(Nearest Neighbor)
x11•
d13
x22•
x21•
X X X X X X X X X
X X X X X X X X X X X X X X X
X X X X X X X X X X X X X X X
X X X X X X X X X X X X X X X
X X X
X X X X X X X X X X X X X X X
类Gp与类Gq之间的距离Dpq (d(xi,xj)表示点xi∈ Gp和xj ∈ Gq之间的距离)
最短距离法: 最长距离法: Dpq min d ( xi , x j ) Dpq max d ( xi , x j ) 类平均法: 1 重心法: Dpq Dpq min d ( xp , xq ) x d ( xi , x j ) n1n2 xi Gp j Gq 离差平方和: D1 ( xi x p ) '( xi x p ), D2 ( x j xq ) '( x j xq ), (Wald) x G x G
• • • • •
“median” — 中间距离法 “mcquitty” —Mcquitty 相似法 “average” — 类平均法 “centroid” — 重心法 “ward” — 离差平方法
• plot() 画出树状图的格式为 • plot(x, labels = NULL, hang = 0.1, axes = TRUE, frame.plot = FALSE, ann = TRUE, main = "Cluster Dendrogram", sub = NULL, xlab = NULL, ylab = "Height", ...)
i i
(x x ) ( y y)
2 i i i i
i
2
当变量的测量值相差悬殊时,要先进行标准化. 如R为极差, s 为标准差, 则标准化的数据为每个观测值减去均值后再 除以R或s. 当观测值大于0时, 有人采用Lance和Williams的 1 | xi yi | 距离
p
i
xi yi
系统聚类的R实现
• 在R中计算距离的函数: • dist(x, method = "euclidean", diag = FALSE, upper = FALSE, p = 2) • “euclidean” — Euclide 距离 • “maximum” — 距离 • “manhattan” — 绝对值距离 • “canberra” — Lance 距离 • “minkowski” — Minkowski 距离 • “binary” — 定性变量距离
x12•
最长距离(Furthest Neighbor )
• x11• •
x21•
d12
• • •

组间平均连接(Between-group Linkage)




• •
d1 d 9 9
组内平均连接法(Within-group Linkage)
d1 d 2 d3 d 4 d5 d6 6
• 例1续 • 读入数据 • d<read.table("C:\\Users\\nf\\Desktop\\drink.txt ",h=T) • dist()的作用是将原始数据转化为距离结构 的矩阵 • hc=hclust(dist(d),"ave") • Plot(hc)
• R中有一个确定类个数的函数,rect.hclust()。 • rect.hclust(tree, k = NULL, which = NULL, x = NULL, h = NULL, border = 2, cluster = NULL) • Tree是hclust()生成的数据结构。 • plclust(hc, hang=-1); re<-rect.hclust(hc, k=3) • plclust()类似于plot() • plclust(tree, hang=0.1, unit=FALSE, level=FALSE, hmin=0, square=TRUE, labels=NULL, plot. = TRUE, axes = TRUE, frame.plot = FALSE, ann = TRUE, main = "", sub = NULL, xlab=NULL, ylab="Height")
向量x=(x1,…, xp)与y=(y1,…, yp)之间的距离或相似系数:
欧氏距离: 平方欧氏距离: ( xi yi ) 2 ( xi yi )2 Euclidean i Squared Euclidean i 夹角余弦(相似系数1) : Block(绝对距离): Si|xi-yi| xi yi cosine i
• 例1续 • 动态聚类的函数为kmeans() • Kmeans(x,centers,iter.max=10,nstart=1,algorit hm=c(“HartiganWong”,”Lloyd”,”Forgy”,MacQueen”)) • Iter.max为最大迭代次数,centers为聚类个 数 • Algorithm为动态聚类的算法,默认为第一 个。 • km=kmeans(dist(d),5,20) • sort(km$cluster)
• R中数据的标准函数为: • scale(x, center = TRUE, scale = TRUE) • 在R中hclust() 函数提供了系统聚类的函数, plot()可以画出树状图。 • hclust(d, method = "complete", members=NULL) • “single” — 最短距离法 • “complete” ----最长距离法
相关文档
最新文档