称为模糊矩阵力的入-截矩阵。
显然,4\为布尔矩阵,且其等价性与与A一致。
意义:
将模糊等价矩阵转化为等价的布尔矩阵,可以得到有限论域上的普通等价关系,而等价关系是可以分类的。
因此,当X在[0,1]上变动时,由儿得到不同的分类。
若XV,则从而由4匕确定的分类是由4“确定的分类的加细。
当入从1递减变化到0时,儿的分类由细变粗,逐渐归并,形成一个分级聚类树。
例1设U={z/1,Ik,lh,uh%},对给定的U上的模糊等价关系
r1
0.4
0.4
1
0.8
0.4
0.5
0.4
0.5、
0.4
R二
0.8
0.4
1
0.5
0.5
0.5
0.4
0.5
1
0.6
0.5
0.4
0.5
0.6
1丿
让入从1到0变化,观察分类过程。
(1)当入=1时,
{"},仏},{ih},{弘},{u5}
(2)当入二0.8时,
_1
0
1
0
0「
0
1
0
0
0
&.8二
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
(3)当入二0.6时,
~1
0
1
0
0_
0
1
0
0
0
R().6=
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
R()5=1
1
(4)当入=0.5时,
0111
1000
0111
0111
10111
分类结果为2类:
仏,uh仏},仏}
(4)当入二0.4(R中的最小值)时,
11111
11111
11111
分类结果为1类:
{%也Lb,UhU5}
整个动态分类过程如下:
(二)基于择近原则的模糊聚类
择近原则就是利用贴近度来实现分类操作,贴近度用来衡量两个模糊集力和方的接近程度,用N(A,B)表示。
贴近度越大,表明二者越接近。
设论域有限或者在一定区间,即1>{如g…,仏}或U=[a,b],常用的贴近度有以下三种:
(1)海明贴近度
1n
N(A,B)=1-—工IA(“J—B(®)I
n;=i
1fb
N(A,B)=1IIA(wf.)-B(tt.)ldw
b-aJa
(2)欧氏贴近度
N(A,B)=17=
3
(3)格贴近度
N(A,B)=(AoB)/\(AcoBc)
其中,AoB=v(A(w,)aB(m,)).
f=l
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)"(l/2)/sqrt(n);
case3%格贴近度
yl=max(min(ones(m,n)-A,ones(m,n)-B));
%ones(m,n)-A等于A~c
y2=max(min(A,B));
y=min(yl,y2);
end
例2设某产品的质量等级分为5级,其中一级有5种评判因素轴
4,gu,每一等级的模糊集为
Bi={0.50.50.60.40.3}
B:
={0.30.30.40.20.2}
Bs={0.20.20.30.10.1}
Bi二{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=l:
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
运行结果:
haiming二0.78000.92000.90000.86000.8400
oushi=0.50810.91060.86580.68700.6422
ge=0.40000.30000.20000.20000.1000
可见样本A与各等级的格贴近度分别为0.4,0.3,0.2,0.2,0.1,故可认为该产品属于B】等级。
若按令两种贴近度判断,该产品属于B:
等级。
(三)基于模糊等价关系的模糊聚类
一、算法步骤
1.样本数据归一化
设乂={兀X"•:
乂}为要分类的刀个样本,每个样本有也个指
标,即
上={竺1,x込…,*口},2=1,2,..,n
得到原始数据矩阵X=(如%.
由于不同指标的数据量纲不同,为了使数据能够比较,要先对X做归一化处理。
2.建立模糊相似矩阵R
先建立样本區与出相似程度m进而构造模糊相似矩阵R二(Q.
◊建立兀丿常用的方法有:
(1)相似系数法
m
mIm
工(心-忑尸•J£(S-兀尸
A=1VA=1
(2)距离法
一般取r-l-c((x,^))a,其中c和a为适当选取的参数,使
得
0W刀jWl・常用的距离有:
m
1海明距离:
d(xi9xj)=^\xik-xjkI
*=1
2欧氏距离:
心勺)=\区(心_g)2
VA=1
3切比雪夫距离:
〃(兀,®)=maxIxik-xjkI
J\(3)贴近度法
m
工(心NXjk)
1最大最小法:
rij=弓
工(心f)
/t=l
m
工(L)
2算术平均最小法:
可二
亍》(心+S)
厶k=\
m
心无宀jk)
3几何平均最小法:
帀=霍
A=1
3.求出R的传递闭包t(R)
即改造相似关系为等价关系:
令RS再令Ra=R2oR2,•:
直到满足R—R"与R'相等,即为t(R),仍记为R.
4.选取合适的入,利用入-截矩阵R、进行分类(参考例1)。
二、Matlab实现
求模糊相似矩阵R的函数:
fuz_distance.m
functionR=fuz_distance(x,type)
蘇为归一化的数确矩阵,type选择汁算相似程度的方法
%返回模糊相似矩阵R
[n,m]=size(x);
%距离法的选择参数c和a,需要根据具体情况修改以保证R(i,j)属于[0,1]
c二0.1;
d二1;
fori=l:
n
forj=l:
n
switchtype
case1%夹角余弦法
R(i,j)=(x(i,:
)*x(j,:
),)/(norm(x(i,:
),2)*norm(x(j,:
),2));case2%相关系数法
Dxi=abs(x(i,:
)~mean(x(i,:
)));
Dxj=abs(x(j,:
)-mean(x(j,:
)));
R(i,j)=(Dxi*Dxj,)/(norm(Dxi,2)*norm(Dxj,2));case3滋海明距离法
d=sum(abs(x(i,:
)-x(j,:
)));
R(i,j)=l-c*d"a;
case4滋欧氏距离法
d=norm(x(i,:
)-x(j,:
),2);
R(i,j)=l-c*d^a;
case5%切比雪夫距离法
d=max(abs(x(i,:
)-x(j,:
)));
R(i,j)=l-c*d"a;
case6锻大最小(贴近度)法
R(i,j)=sum(min([x(i,:
);x(j,:
)]))/sum(max([x(i,:
);x(j,:
)]));
case7算术平均最小(贴近度)法
R(i,j)=2*sum(min([x(i,:
);x(j,:
)]))/sum(x(i,:
)+x(j,:
));case8%儿何平均最小(贴近度)法
R(i,j)=sum(min([x(i,:
);x(j,:
)]))/sum(sqrt(x(i,:
).*x(j,:
)));
end
end
end
求R的传递闭包t(R)的函数:
tran_R.m
function[B,k]=tran_R(R)
%R为模糊相似矩阵,福环构造满足传递性的t(R)
%k为满足R"2k=R"k的最小的自然数k
n二length(R);
B二zeros(n,n);
flag=0;
k=l/2;
whileflag~0
B二fco(R,R);%做模糊合成运算
k=2*k;
ifB==R
flag=l;
else
R=B;%循环计算R传递闭包
end
end
上而的函数tran_R.m调用函数矩阵模糊合成算子函数:
fco.m
functionB=fco(Q,R)
%实现模糊合成算子的讣算,要求Q的列数等于R的行数
[n,m]二size(Q);
[m,1]二size(R);
B二zeros(n,1);
fori=l:
n
fork=l:
l
B(i,k)=max(min([Q(i,:
);R(:
k)‘]));
end
end
求t(R)的入-截矩阵的函数:
fuz_lamda.m
functiony=fuz_lamda(X,m)
%用入-截矩阵将需本分成m类,m