预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共14页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

23.模糊聚类分析原理及实现 聚类分析,就是用数学方法研究和处理所给定对象,按照事物间的相似性进行区分和分类的过程。 传统的聚类分析是一种硬划分,它把每个待识别的对象严格地划分到某个类中,具有非此即彼的性质,这种分类的类别界限是分明的。 随着模糊理论的建立,人们开始用模糊的方法来处理聚类问题,称为模糊聚类分析。由于模糊聚类得到了样本数与各个类别的不确定性程度,表达了样本类属的中介性,即建立起了样本对于类别的不确定性的描述,能更客观地反映现实世界。 本篇先介绍传统的两种(适合数据量较小情形,及理解模糊聚类原理):基于择近原则、模糊等价关系的模糊聚类方法。 (一)预备知识 一、模糊等价矩阵 定义1设R=(rij)n×n为模糊矩阵,I为n阶单位矩阵,若R满足 i)自反性:I≤R(等价于rii=1); ii)对称性:RT=R; 则称R为模糊相似矩阵,若再满足 iii)传递性:R2≤R(等价于) 则称R为模糊等价矩阵。 定理1设R为n阶模糊相似矩阵,则存在一个最小的自然数k(k<n),使得Rk为模糊等价矩阵,且对一切大于k的自然数l,恒有Rl=Rk.Rk称为R的传递闭包矩阵,记为t(R). 二、模糊矩阵的λ-截矩阵 定义2设A=(aij)n×m为模糊矩阵,对任意的λ∈[0,1],作矩阵 其中, 称为模糊矩阵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时, 分类结果为5类:(每行代表一类,1代表对应元素在该类) {u1},{u2},{u3},{u4},{u5} (2)当λ=0.8时, 分类结果为4类:{u1,u3},{u2},{u4},{u5} (3)当λ=0.6时, 分类结果为3类:{u1,u3},{u2},{u4,u5} (4)当λ=0.5时, 分类结果为2类:{u1,u3,u4,u5},{u2} (4)当λ=0.4(R中的最小值)时, 分类结果为1类:{u1,u2,u3,u4,u5} 整个动态分类过程如下: (二)基于择近原则的模糊聚类 择近原则就是利用贴近度来实现分类操作,贴近度用来衡量两个模糊集A和B的接近程度,用N(A,B)表示。贴近度越大,表明二者越接近。 设论域有限或者在一定区间,即U={u1,u2,…,un}或U=[a,b],常用的贴近度有以下三种: (1)海明贴近度 (2)欧氏贴近度 (3)格贴近度 其中,. Matlab实现:格贴近度的实现函数fuz_closing.m functiony=fuz_closing(A,B,type) %要求A与B列数相同的行向量 [m,n]=size(A); switchtype case1%海明贴近度 y=1-sum(abs(A-B))/n; case2%欧氏贴近度 y=1-(sum(A-B).^2)^(1/2)/sqrt(n); case3%格贴近度 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.50.50.60.40.3} B2={0.30.30.40.20.2} B3={0.20.20.30.10.1} B4={0.10.10.20.10} B5={0.10.10.10.10} 假设某产品各评判因素的值为A={0.40.30.20.10.2},问该产品属于哪个等级? 代码: A=[0.40.30.20.10.2]; B=[0.50.50.60.40.3; 0.30.30.40.20.2; 0.20.20.30.10.1; 0.10.10.20.10; 0.10.10.10.10]; fori=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.78000.92000.90000.86000.8400 oushi=0.508