Matlab学习系列23. 模糊聚类分析原理及实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
23. 模糊聚类分析原理及实现
聚类分析,就是用数学方法研究和处理所给定对象,按照事物间的相似性进行区分和分类的过程。
传统的聚类分析是一种硬划分,它把每个待识别的对象严格地划分到某个类中,具有非此即彼的性质,这种分类的类别界限是分明的。
随着模糊理论的建立,人们开始用模糊的方法来处理聚类问题,称为模糊聚类分析。由于模糊聚类得到了样本数与各个类别的不确定性程度,表达了样本类属的中介性,即建立起了样本对于类别的不确定性的描述,能更客观地反映现实世界。
本篇先介绍传统的两种(适合数据量较小情形,及理解模糊聚类原理):基于择近原则、模糊等价关系的模糊聚类方法。
(一)预备知识
一、模糊等价矩阵
定义1 设R=(r ij )n ×n 为模糊矩阵,I 为n 阶单位矩阵,若R 满足 i) 自反性:I ≤R (等价于r ii =1); ii) 对称性:R T =R;
则称R 为模糊相似矩阵,若再满足
iii) 传递性:R 2
≤R (等价于1
()n
ik kj ij k r r r =∨∧≤)
则称R 为模糊等价矩阵。
定理1 设R 为n 阶模糊相似矩阵,则存在一个最小的自然数k
(k 定义2 设A =(a ij )n ×m 为模糊矩阵,对任意的λ∈[0,1], 作矩阵 () () ij n m A a λλ⨯= 其中, ()1, 0, ij ij ij a a a λλλ≥⎧=⎨<⎩ 称为模糊矩阵A 的λ-截矩阵。显然,A λ为布尔矩阵,且其等价性与与A 一致。 意义:将模糊等价矩阵转化为等价的布尔矩阵,可以得到有限论域上的普通等价关系,而等价关系是可以分类的。因此,当λ在[0,1]上变动时,由A λ得到不同的分类。 若λ1<λ2, 则A λ1≥A λ2, 从而由A λ2确定的分类是由A λ1确定的分类的加细。当λ从1递减变化到0时,A λ的分类由细变粗,逐渐归并,形成一个分级聚类树。 例1 设U={u 1, u 2, u 3, u 4, u 5}, 对给定的U 上的模糊等价关系 让λ从1到0变化,观察分类过程。 (1) 当λ=1时, 110000 01000 00100 00010 00001 R ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥ ⎢⎥⎣⎦ 分类结果为5类:(每行代表一类,1代表对应元素在该类) {u1}, {u2}, {u3}, {u4}, {u5} (2) 当λ=0.8时, 0.810100 01000 10100 00010 00001 R ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥ ⎢⎥⎣⎦ 分类结果为4类:{u1, u3}, {u2}, {u4}, {u5} (3) 当λ=0.6时, 0.610100 01000 10100 00011 00011 R ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥ ⎢⎥⎣⎦ 分类结果为3类:{u1, u3}, {u2}, {u4, u5} (4) 当λ=0.5时, 0.510111 01000 10111 10111 10111 R ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥ ⎢⎥⎣⎦ 分类结果为2类:{u1, u3, u4, u5}, {u2} (4) 当λ=0.4(R 中的最小值)时, 0.4 111111111111111111111 1111R ⎡⎤ ⎢⎥ ⎢⎥ =⎢⎥⎢⎥ ⎢⎥⎢⎥⎣⎦ 分类结果为1类:{u 1, u 2, u 3, u 4, u 5} 整个动态分类过程如下: (二)基于择近原则的模糊聚类 择近原则就是利用贴近度来实现分类操作,贴近度用来衡量两个模糊集A 和B 的接近程度,用N (A ,B )表示。贴近度越大,表明二者越接近。 设论域有限或者在一定区间,即U={u 1, u 2, …, u n }或U=[a,b], 常用的贴近度有以下三种: (1) 海明贴近度 11(,)1|()()|n i i i N A B A u B u n ==--∑ 1(,)1|()()|d b i i a N A B A u B u u b a =---⎰ (2) 欧氏贴近度 1 2 2 1 (,)1[()()] n i i i N A B A u B u = ⎫ =--⎪ ⎭ ∑ )122 (,)1[()()]d b i i a N A B A u B u u =-- ⎰ (3) 格贴近度 (,)()() c c N A B A B A B =∧ 其中,() 1 ()() n i i i A B A u B u = =∨∧. 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}