模式识别导论(六).ppt
Download
Report
Transcript 模式识别导论(六).ppt
第六章 聚类分析
• §6-1 分类与聚类的区别
– 分类:用已知类别的样本训练集来设计分类
器(监督学习)
– 聚类(集群):用事先不知样本的类别,而
利用样本的先验知识来构造分类器(无监督
学习)
§6-2 系统聚类
• 系统聚类:先把每个样本作为一类,然
后根据它们间的相似性和相邻性聚合。
• 相似性、相邻性一般用距离表示
• (1)两类间的距离
– 1、最短距离:两类中相距最近的两样品间
的距离。
D pq min d ij
xi p
x j q
• 2、最长距离 :两类中相距最远的两个样本间
的距离。
D pq max d ij
xi p
x j q
• 3、中间距离:最短距离和最长距离都有
片面性,因此有时用中间距离。设ω1类和ω23
类间的最短距离为d12,最长距离为d13,ω 23类的
长度为d23,则中间距离为:
d 23
1 2 1
1 2
2
2
d 0 d12 d13 d 23
2
2
4
d0
d
12
•上式推广为一般情况:
d13
1
3
1 2 1
2
d d12 d13 d 23
2
2
1
其中 为参数,- 0
4
2
0
• 4、重心距离:均值间的距离
• 5、类平均距离:两类中各个元素两两之间的
距离平方相加后取平均值
2
D pq
1
N p Nq
d
xi
2
ij
p
x j q
其中 : N p : p 样本数, N q : q 样本数
d ij为 p 类点i与 q 类点j之间的距离
• 6、 离差平方和:
– 设N个样品原分q类,则定义第i类的离差平
方和为: N i
S i ( xij x i ) ( xij x i )
q
T
j 1
其中x i为样品xij的均值,
N i为第i类的样本数.
– 离差平方和增量:设样本已分成ωp,ωq两类,
若把ωp,ωq合为ωr类,则定义离差平方:
2
D pq
Sr (S p Sq )
其中S p , S q 分别为 p 类于 q 类的离差平方和,
S r为 r 类的离差平方和
增量愈小,合并愈合理。
• (2)系统聚类的算法(略)
• 例:如下图所示
G3 G1
G2
G5
• 1、设全部样本分为6类,
• 2、作距离矩阵D(0)
G4 G6
x
ω1
ω2
ω3
ω4
ω2
9
ω3
1
16
ω4
49
16
64
ω5
25
4
36
4
ω6
64
25
81
1
ω5
9
d31 d 64 1
• 3、求最小元素:
• 4、把ω1,ω3合并ω7=(1,3)
• ω4,ω6合并ω8=(4,6)
• 5、作距离矩阵D(1)
ω7
ω2
ω2
9
ω8
49
16
ω5
25
4
ω8
4
• 6、若合并的类数没有达到要求,转3。
否则停止。
• 3、求最小元素:
d52 d58 4
• 4、ω8,ω5,ω2合并, ω9=(2,5,4,6)
1
2
3
4
5
6
7
9
10
枝状图
8
§6-2 分解聚类
• 分解聚类:把全部样本作为一类,然后
根据相似性、相邻性分解。
• 目标函数 两类均值方差
T
N1 N 2
E
(
x
x
)
(
x
x
)
1
2
1
2
N
N:总样本数,N1 :ω1类样本数
N 2:ω2类样本数,x1 , x 2 : 两类均值
分解聚类框图:
初始分类
调整分类方案
N
目标函数
达到最优先?
Y
最终结果
• 对分算法:略
例:已知21个样本,每个样本取二个特征,原
始资料矩阵如下表:
样本号 1
x1
0
x2
6
2
0
5
3
2
5
4 5
2 4
3 4
6
4
3
7
5
1
8
6
2
9
6
1
10
7
0
11 12 13 14 15 16 17 18 19 20 21
-4 -2 -3 -3 -5 1
0
3
-1 -2 -1 -3 -5
2
2
0
2
1
0
-1 -1 -3
解:第一次分类时计算所有样本,分别划到G
时的E值,找出最大的。
1、开始时,G1(0) ( x1 , x2 ,..., x21 ) G(20) 空
∴
(0)
x
1
0.714
(
)
1.333
∴目标函数
(0)
0
x 2 ( ) N1
0
(0)
21, N 2 0
(0)
N1 N 2
E
( x1 x 2 )T ( x1 x 2 ) 0
N
2
2、分别计算当 x1 , x2 ,..., x21划入 G 时的E值
把 x1划入G 时有
2
2
(0)
(1)
x
1
(0)
x
1
x
1
x1
N1( 0 ) 1
0
0.714
(
) ( )
0.714
0.75
1.333
6
(
)
(
),
1.333
1.10
( 21 1)
0
(1)
x 2 ( 6)
E
20 1
0.75 2 (1.10 6) 2 23.40
21
•
然后再把 x2 , x3 ,..., x21划入G 时对应的E
值,找出一个最大的E值。
把 x21划为 G 的E值最大。
2
2
∴
G
(1)
1
( x1 , x2 ,..., x20 ),
G
(1)
2
( x21 )
3
(1)
(1)
x1 (
), x2 ( ), N1 20, N 2 1
5
1.65
0 .9
E(1)=56.6
再继续进行第二,第三次迭代…
计算出 E(2) , E(3) , …
次数
1
2
3
4
5
6
7
8
9
10
11
G
1
x
x
x
x
x
x
x
x
x
x
x
21
20
18
14
15
19
11
13
12
17
16
G
2
E值
56.6
79.16
90.90
102.61
120.11
137.15
154.10
176.15
195.26
213.07
212.01
•
第10次迭代 x17划入 G 2 时,E最大。于是分成
以下两类:
• ∴ G1 ( x1 , x2 ,..., x10 , x16 )
G2 ( x11 , x12 , x13 , x14, x15 , x17 , x18 , x19 , x20 , x21 )
•每次分类后要重新计算 x1 , x2的值。可用以下递推
公式: ( k 1)
(k )
(k )
(k )
x1
x1
( k 1)
2
x
x1
(k )
x2
( x1
(k )
( x2
(k )
xi ) /( N1
1)
xi ) /( N
1)
(k )
2
(k )
, x2 是第k步对分时两类均值,
x1( k 1) , x2( k 1)是下一次对分时把xi从G1( k )
划到G2( k )时的两类均值
N1( k ) , N 2( k )为二类样品数
6
5
X2
x1
x3
x2
x5
4
x11
x15
x12
x13
x4
3
2
1
3 2
1
x19 1
x17
2
x18
x20 3
4
5
x21
1 2
6
x8
x9
x7
x16
x14
6 5 4
x6
3
4
5
x10
6
X1
作业:
样本 1 2 3 4 5 6 7 8
x1 0 2 1 5 6 5 6 7
x2 0 2 1 3 3 4 4 5
用对分法编程上机,分成两类画出图形。
§6-3 动态聚类——兼顾系统
聚类和分解聚类
一、动态聚类的方法概要
① 先选定某种距离作为样本间的相似性
的度量;
② 确定评价聚类结果的准则函数;
③ 给出某种初始分类,用迭代法找出使
准则函数取极值的最好的聚类结果。
动态聚类框图
Y
选代表点
初始分类
分类合理否
N
修改分类
最终分类
二、代表点的选取方法:代表点就是初始分类
的聚类中心数k
① 凭经验选代表点,根据问题的性质、数据分布,
从直观上看来较合理的代表点k;
②将全部样本随机分成k类,计算每类重心,把这些
重心作为每类的代表点;
③ 按密度大小选代表点:
以每个样本作为球心,以d为半径做球形;落在球内
的样本数称为该点的密度,并按密度大小排序。首先选
密度最大的作为第一个代表点,即第一个聚类中心。再
考虑第二大密度点,若第二大密度点距第一代表点的距
离大于d1(人为规定的正数)则把第二大密度点作为第
二代表点,,否则不能作为代表点,这样按密度大小考
察下去,所选代表点间的距离都大于d1。d1太小,代表点
太多,d1太大,代表点太小,一般选d1=2d。对代表点内
的密度一般要求大于T。T>0为规定的一个正数。
④ 用前k个样本点作为代表点。
• 三、初始分类和调整
① 选一批代表点后,代表点就是聚类中心,计算其它样本
到聚类中心的距离,把所有样本归于最近的聚类中心点,形成
初始分类,再重新计算各聚类中心,称为成批处理法。
② 选一批代表点后,依次计算其它样本的归类,当计算完第
一个样本时,把它归于最近的一类,形成新的分类。再计算新
的聚类中心,再计算第二个样本到新的聚类中心的距离,对第
二个样本归类。即每个样本的归类都改变一次聚类中心。此法
称为逐个处理法。
③ 直接用样本进行初始分类,先规定距离d,把第一个样品作
为第一类的聚类中心,考察第二个样本,若第二个样本距第一
个聚类中心距离小于d,就把第二个样本归于第一类,否则第
二个样本就成为第二类的聚类中心,再考虑其它样本,根据样
本到聚类中心距离大于还是小于d,决定分裂还是合并。
④ 最佳初始分类。
如图所示,随着初始分类k的增大,准则函数下降很快,经
过拐点A后,下降速度减慢。拐点A就是最佳初始分类。
J
准则函数
下降快
拐点
A
下降慢
0 1 2 3 4 5 6 7
最佳初始分类
K
• 四、K次平均算法:成批处理法( 算法略)
例:已知有20个样本,每个样本有2个特征,数据分布如下
图 样本序号 x x x x x x x x x x
1
2
3
4
5
6
7
8
9
10
特征x1
0
1
0
1
2
1
2
3
6
7
特征x2
0
0
1
1
1
2
2
2
6
6
x11 x12 x13 x14 x15 x16 x17 x18 x19 x20
8 6 7 8 9 7 8 9 8 9
6
7
7
7
7
8
8
8
9
9
第一步:令K=2,选初始聚类中心为
Z1 (1) x1 (0,0) ; Z 2 (1) x2 (1,0)
T
T
X2
10
x19 x20
9
8
7
6
5
4
x3
3
2
1
0
x1
x16 x17 x18
x12 x13 x14 x15
x9
x10 x11
x6 x7 x8
x4 5x
X1
1
2
x2
3 4
5
6 7 8
9 10
0
0
第二步:x1 Z1 (1) =( )-( )=0
0
0
0
1
x1 Z 2 (1) =( )-( )=1
0
0
因为 x1 Z1 (1) x1 Z 2 (1)
所以x1 Z1 (1)
1
0
x2 Z1 (1) =( )-( )=1
0
0
1
1
x2 Z 2 (1) ( ) ( ) 0
0
0
因为 x2 Z1 (1) x2 Z 2 (1) ,
所以x2 Z 2 (1)
同理
x3 Z1 (1) =1 x3 Z 2 (1) 2, x3 Z1 (1)
x4 Z1 (1) =2 x4 Z 2 (1) 1, x4 Z 2 (1)
同样把所有x5、x6、
...x20与第二个聚类中心的距
离计算出来,判断x5、x6、
...x20都属于Z 2 (1)
因此分为两类:
一、G1 (1) ( x1 , x3 ),
二、G1 (1) ( x2 , x4 , x5 ,...x20 )
N1 2, N 2 18
• 第三步:根据新分成的两类建立新的聚类中心
0
1
1 0
X ( x1 x3 ) ( ) ( )
1
2
2 0
xG1 (1)
1 0
( ) (0,0.5)T
2 1
1
Z 1 ( 2)
N1
1
Z 2 (2)
N2
1
X
( x2 x4 x5 ... x20 )
18
xG2 (1)
(5.67,5.33)T
• 第四步:
• ∵ Z J (2) Z J (1), J 1,2(新旧聚类中心不等)
转第二步。
• 第二步:重新计算 x1 , x2 ,..., x20 到z1(2) , z2(2) 的距
离,把它们归为最近聚类中心,重新分为两类,
G1 (2) ( x1 , x2 ,..., x8 ), N1 8
G2 (2) ( x9 , x10 ,..., x20 ), N 2 12
• 第三步,更新聚类中心
1
1
Z1 (3)
X ( x1 x2 x3 ... x8 )
N1 xG1 ( 2) 8
(1.25,1.13)
1
1
Z 2 (3)
X ( x9 x10 ... x20 )
N 2 xG2 ( 2) 12
T
(7.67,7.33)T
• 第四步,因Z j (3) Z j (2), j 1,2, 转第二步
重新计算x1 , x2 ,..., x20到Z1 (3), Z 2 (3)的距离,
• 第二步,
分别把x1 , x2 ,..., x20归于最近的那个聚类中心,
重新分为二类G1 ( 4) ( x1 , x2 ,..., x8 )
G2 ( 4) ( x9 , x10 ,..., x20 ), N1 8, N 2 12
• 第三步,更新聚类中心
Z1 (4) Z1 (3) (1.25,1.13)
T
Z 2 (4) Z 2 (3) (7.67,7.33)T
计算结束。