Matlab笔记-模糊聚类分析原理及实现

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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类:{u 1, u 3, u 4, u 5}, {u 2} (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}

B2={0.3 0.3 0.4 0.2 0.2}

B3={0.2 0.2 0.3 0.1 0.1}

相关文档
最新文档