Matlab学习系列23.-模糊聚类分析原理及实现
- 格式:docx
- 大小:243.75 KB
- 文档页数:15
23. 模糊聚类分析原理及实现 聚类分析,就是用数学方法研究和处理所给定对象,按照事物间的相似性进行区分和分类的过程。 传统的聚类分析是一种硬划分,它把每个待识别的对象严格地划分到某个类中,具有非此即彼的性质,这种分类的类别界限是分明的。 随着模糊理论的建立,人们开始用模糊的方法来处理聚类问题,称为模糊聚类分析。由于模糊聚类得到了样本数与各个类别的不确定性程度,表达了样本类属的中介性,即建立起了样本对于类别的不确定性的描述,能更客观地反映现实世界。 本篇先介绍传统的两种(适合数据量较小情形,及理解模糊聚类原理):基于择近原则、模糊等价关系的模糊聚类方法。
(一)预备知识 一、模糊等价矩阵 定义1 设R=(rij)n×n为模糊矩阵,I为n阶单位矩阵,若R满足 i) 自反性:I≤R (等价于rii =1); ii) 对称性:RT=R; 则称R为模糊相似矩阵,若再满足 iii) 传递性:R2≤R(等价于1()nikkjijkrrr)
则称R为模糊等价矩阵。 定理1 设R为n阶模糊相似矩阵,则存在一个最小的自然数k(kRl=Rk. Rk称为R的传递闭包矩阵,记为t(R).
二、模糊矩阵的λ-截矩阵 定义2 设A=(aij)n×m为模糊矩阵,对任意的λ∈[0,1], 作矩阵 ()
ijnmAa
其中, ()1, 0, ijijijaaa
称为模糊矩阵A的λ-截矩阵。显然,Aλ为布尔矩阵,且其等价性与
与A一致。 意义:将模糊等价矩阵转化为等价的布尔矩阵,可以得到有限论域上的普通等价关系,而等价关系是可以分类的。因此,当λ在[0,1]上变动时,由Aλ得到不同的分类。 若λ1<λ2, 则Aλ1≥Aλ2, 从而由Aλ2确定的分类是由Aλ1确定的分类的加细。当λ从1递减变化到0时,Aλ的分类由细变粗,逐渐归并,形成一个分级聚类树。 例1 设U={u1, u2, u3, u4, u5}, 对给定的U上的模糊等价关系
让λ从1到0变化,观察分类过程。 (1) 当λ=1时, 11000001000001000001000001
R
分类结果为5类:(每行代表一类,1代表对应元素在该类) {u1}, {u2}, {u3}, {u4}, {u5} (2) 当λ=0.8时,
0.81010001000101000001000001
R
分类结果为4类:{u1, u3}, {u2}, {u4}, {u5}
(3) 当λ=0.6时,
0.61010001000101000001100011
R
分类结果为3类:{u1, u3}, {u2}, {u4, u5}
(4) 当λ=0.5时,
0.51011101000101111011110111
R
分类结果为2类:{u1, u3, u4, u5}, {u2} (4) 当λ=0.4(R中的最小值)时, 0.41111111111111111111111111
R
分类结果为1类:{u1, u2, u3, u4, u5}
整个动态分类过程如下:
(二)基于择近原则的模糊聚类 择近原则就是利用贴近度来实现分类操作,贴近度用来衡量两个模糊集A和B的接近程度,用N(A,B)表示。贴近度越大,表明二者越接近。 设论域有限或者在一定区间,即U={u1, u2, …, un}或U=[a,b], 常
用的贴近度有以下三种: (1) 海明贴近度
11(,)1|()()|niiiNABAuBun 1(,)1|()()|dbiiaNABAuBuuba
(2) 欧氏贴近度 122
11(,)1[()()]niiiNABAuBun
122
1
(,)1[()()]dbiiaNABAuBuuba
(3) 格贴近度 (,)()()ccNABABABoo
其中,1()()niiiABAuBuo. Matlab实现:格贴近度的实现函数fuz_closing.m function y=fuz_closing(A,B,type) %要求A与B列数相同的行向量 [m,n]=size(A); switch type
case 1 %海明贴近度 y=1-sum(abs(A-B))/n; case 2 %欧氏贴近度 y=1-(sum(A-B).^2)^(1/2)/sqrt(n); case 3 %格贴近度 y1=max(min(ones(m,n)-A,ones(m,n)-B)); %ones(m,n)-A等于A^c y2=max(min(A,B)); y=min(y1,y2); end
例2 设某产品的质量等级分为5级,其中一级有5种评判因素u1, u2,
u3, u4, u5. 每一等级的模糊集为 B1={0.5 0.5 0.6 0.4 0.3} B2={0.3 0.3 0.4 0.2 0.2} B3={0.2 0.2 0.3 0.1 0.1} B4={0.1 0.1 0.2 0.1 0} B5={0.1 0.1 0.1 0.1 0} 假设某产品各评判因素的值为A={0.4 0.3 0.2 0.1 0.2}, 问该产品属于哪个等级? 代码: A=[0.4 0.3 0.2 0.1 0.2]; B=[0.5 0.5 0.6 0.4 0.3; 0.3 0.3 0.4 0.2 0.2; 0.2 0.2 0.3 0.1 0.1; 0.1 0.1 0.2 0.1 0; 0.1 0.1 0.1 0.1 0]; for i=1:5 haiming(i)=fuz_closing(A,B(i,:),1); oushi(i)=fuz_closing(A,B(i,:),2); ge(i)=fuz_closing(A,B(i,:),3); end haiming oushi ge
运行结果:
haiming = 0.7800 0.9200 0.9000 0.8600 0.8400 oushi = 0.5081 0.9106 0.8658 0.6870 0.6422 ge = 0.4000 0.3000 0.2000 0.2000 0.1000 可见样本A与各等级的格贴近度分别为0.4, 0.3, 0.2, 0.2, 0.1, 故可认为该产品属于B1等级。若按令两种贴近度判断,该产品属于B2
等级。 (三)基于模糊等价关系的模糊聚类 一、算法步骤 1. 样本数据归一化 设X={x1, x2, …, xn}为要分类的n个样本,每个样本有m个指标,
即 xi={ xi1, xi2, …, xim}, i=1,2,..,n 得到原始数据矩阵X=( xij)n×m.
由于不同指标的数据量纲不同,为了使数据能够比较,要先对X做归一化处理。 2. 建立模糊相似矩阵R 先建立样本xi与xj相似程度rij, 进而构造模糊相似矩阵R=(rij)n×n
建立rij常用的方法有:
(1) 相似系数法
①夹角余弦法: 12211mikjkkijmmikjkkkxxrxx
②相关系数法: 12211||||()()mikijkjkijmmikijkjkkxxxxrxxxx
(2) 距离法 一般取 rij=1-c(d(xi,xj))α, 其中c和α为适当选取的参数,使得 0≤rij≤1. 常用的距离有: ①海明距离:1(,)||mijikjkkdxxxx ②欧氏距离:21(,)()mijikjkkdxxxx ③切比雪夫距离:1(,)max||ijikjkkmdxxxx (3) 贴近度法
①最大最小法:11()()mikjkkijmikjkkxxrxx
②算术平均最小法:11()1()2mikjkkijmikjkkxxrxx
③几何平均最小法:11()mikjkkijmikjkkxxrxx
3. 求出R的传递闭包t(R) 即改造相似关系为等价关系:令2RRRo, 再令422RRRo, …, 直到满足2lllRRRo与Rl相等,即为t(R), 仍记为R. 4. 选取合适的λ, 利用λ-截矩阵Rλ进行分类(参考例1)。
二、Matlab实现 求模糊相似矩阵R的函数:fuz_distance.m function R=fuz_distance(x,type) %x为归一化的数据矩阵, type选择计算相似程度的方法
%返回模糊相似矩阵R