搜档网
当前位置:搜档网 › 模糊聚类分析例子1

模糊聚类分析例子1

模糊聚类分析例子1
模糊聚类分析例子1

1. 模糊聚类分析模型

环境区域的污染情况由污染物在4个要素中的含量超标程度来衡量。设这5个环境区域的污染数据为1x =(80, 10, 6, 2), 2x =(50, 1, 6, 4), 3x =(90, 6, 4, 6), 4x =(40, 5, 7, 3), 5x =(10, 1, 2, 4). 试用模糊传递闭包法对X 进行分类。 解 :

由题设知特性指标矩阵为: *

80106250164906464057310124X ??

??????=????????

数据规格化:最大规格化'

ij ij

j

x x M =

其中: 12max(,,...,)j j j nj M x x x =

00.8910.860.330.560.1

0.860.671

0.60.5710.440.510.50.11

0.1

0.290.67X ????????=??

??????

构造模糊相似矩阵: 采用最大最小法来构造模糊相似矩阵55()ij R r ?=,

1

0.540.620.630.240.5410.550.700.530.62

0.5510.560.370.630.700.5610.380.240.530.370.381R ??

???

???=??

??????

利用平方自合成方法求传递闭包t (R )

依次计算248,,R R R , 由于84R R =,所以4()t R R =

2

10.630.620.630.530.6310.560.700.530.62

0.5610.620.530.630.700.6210.530.530.530.530.531R ??

??????=??

??????,

4

10.630.620.630.530.6310.620.700.530.62

0.6210.620.530.630.700.6210.530.53

0.530.530.531R ????????=??

??????

=8R

选取适当的置信水平值[0,1]λ∈, 按λ截矩阵进行动态聚类。把()t R 中的元素从大到小的顺序编排如下: 1>0.70>0.63>062>053. 依次取λ=1, 0.70, 0.63, 062, 053,得

11

000001000()0

010*******

0001t R ?????

?

??=??

??????,此时X 被分为5类:{1x },{2x },{3x },

{4x },{5x } 0.7

1000001010()001000101000001t R ??????

??=??

??????,此时X 被分为4类:{1x },{2x ,4x },{3x },{5x }

0.63

1101011010()001001101000001t R ??????

??=??

??????,此时X被分为3类:{1x ,2x ,4x }

,{3x },{5x } 0.62

1111011110()11110111100

0001t R ??????

??=??

??????

,此时X 被分为2类:{1x ,2x ,4x ,3x },{5x }

0.53

1111111111()11111111111

1111t R ??

????

??=??

??????

,此时X 被分为1类:{12345,,,,x x x x x }

M atl ab 程序如下: %数据规格化MATL AB 程序 a=[80 10 6 2

50 1 6 4 90 6 4 6 40 5 7 3 10 1 2 4]; m u=max(a) for i=1:5 for j=1:4

r(i,j)=a(i,j)/mu(j); end end r

%采用最大最小法构造相似矩阵

r=[0.8889 1.0000 0.8571 0.3333 0.5556 0.1000 0.8571 0.6667 1.0000 0.6000 0.5714 1.0000 0.4444 0.5000 1.0000 0.5000 0.1111 0.1000 0.2857 0.6667]; b=r '; for i=1:5 fo r j=1:5

R(i ,j)=sum(min([r(i,:);b (:,j )']))/sum(max([r(i ,:);b(:,j)'])); e nd end R

%利用平方自合成方法求传递闭包t(R ) 矩阵合成的MATLAB 函数

f unc tion r hat=he ch(r ); n =l en gth (r ); for i =1:n f or j=1:n

r hat(i,j)=max (m in([r(i ,:);r(:,j)'])); end end

求模糊等价矩阵和聚类的程序

R =[ 1.0000 0.5409 0.6206 0.6299 0.2432 0.5409 1.0000 0.5478 0.6985 0.5339 0.6206 0.5478 1.0000 0.5599 0.3669 0.6299 0.6985 0.5599 1.0000 0.3818 0.2432 0.5339 0.3669 0.3818 1.0000]; R 1=he ch (R) R2=h ech (R1) R3=hech (R2) bh=zeros(5); bh(fi nd (R2>0.7))=1

2. 模糊综合评判模型

某烟草公司对某部门员工进行的年终评定,关于考核的具体操作过程,以对一名员工的考核为例。如下表所示,根据该部门工作人员的工作性质,将18个指标分成工作绩效(1U )、工作态度(2U )、工作能力(3U )和学习成长(4U )这4各子因素集。

员工考核指标体系及考核表

技能提高 0.1 0.4 0.3 0.1 0.1 培训参与 0.2 0.3 0.4 0.1 0 工作提供

0.4

0.3

0.2

0.1

请专家设定指标权重,一级指标权重为:

()0.4,0.3,0.2,0.1A =

二级指标权重为:

()10.2,0.3,0.3,0.2A =

()20.3,0.2,0.1,0.2,0.2A = ()30.1,0.2,0.3,0.2,0.2A = ()40.3,0.2,0.2,0.3A =

对各个子因素集进行一级模糊综合评判得到:

()1110.39,0.39,0.26,0.04,0.01B A R == ()2220.21,0.37,0.235,0.125,0.06B A R == ()3330.15,0.32,0.355,0.125,0.06B A R ==

()4440.27,0.35,0.24,0.1,0.02B A R ==

这样,二级综合评判为:

()

0.390.390.26

0.04

0.010.210.370.2350.1250.060.4,0.3,0.2,0.10.150.320.3550.1250.060.27

0.350.240.10.2B A R ??

????==??

??

??

()0.28,0.37,0.27,0.09,0.04=

根据最大隶属度原则,认为该员工的评价为良好。同理可对该部门其他员工进行考核。 3. 层次分析模型

你已经去过几家主要的摩托车商店,基本确定将从三种车型中选购一种,你选择的标准主要有:价格、耗油量大小、舒适程度和外观美观情况。经反复思考比较,构造了它们之间的成对比较判断矩阵。

A=1

3781155311137511118

53??

????

??????

????????

三种车型(记为a,b,c)关于价格、耗油量、舒适程度和外表美观情况的成对比较判断矩阵为

价格 a b c 耗油量 a b c

1231/2121/31/21a b c ?????????? 11/51/251721/71a b c ??

????

????

舒适程度 a b c 外表 a b c

1351/3141/51/41a b c ?????????? 11/535171/31/71a b c ??

????

????

根据上述矩阵可以看出四项标准在你心目中的比重是不同的,请按由重到

轻顺序将它们排出。 解:用m atlab 求解 层次总排序的结果如下表

Matlab程序如下:

clc,clear

n1=4;

n2=3;

a=[137 8

1/3 1 5 5

1/71/5 1 3

1/8 1/5 1/3 1];

b1=[1 2 3

1/2 1 2

1/3 1/2 1];

b2=[1 1/5 1/2

5 1 7

2 1/7 1];

b3=[1 3 5

1/3 1 4

1/51/4 1 ];

b4=[1 1/5 3

5 1 7

1/3 1/7 1];

ri=[0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45]; % 一致性指标RI[x,y]=eig(a); %x为特征向量,y为特征值

lamda=max(diag(y));

num=find(diag(y)==lamda);

w0=x(:,num)/sum(x(:,num));

w0 %准则层特征向量

CR0=(lamda-n1)/(n1-1)/ri(n1) %准则层一致性比例

fori=1:n1

[x,y]=eig(eval(char(['b',int2str(i)])));

lamda=max(diag(y));

num=find(diag(y)==lamda);

w1(:,i)=x(:,num)/sum(x(:,num)); %方案层的特征向量

CR1(i)=(lamda-n2)/(n2-1)/ri(n2); %方案层的一致性比例

end

w1

C R1, ts=w1*w0, CR =CR1*w0 %ts 为总排序的权值,C R为层次总排序的随机一致性比例

% 当C R小于0.1时,认为总层次排序结果具有较满意的一致性并接受该结果,否则对判断矩阵适当修改

4. 灰色预测GM (1,1)模型 某地区年平均降雨量数据如表 某地区年平均降雨量数据

规定hz=320,并认为(0)()x i <=hz 为旱灾。预测下一次旱灾发生的时间 解:

初始序列如下

(0)x =(390.6,412,320,559.2,380.8,542.4,553,310,561,300,

632,540,406.2,313.8,576,587.6,318.5)

由于满足(0)()x i <=320的(0)()x i 为异常值,易得下限灾变数列为

hz x = (320,310,300,313.8,318.5)

其对应的时刻数列为

t = (3,8,10,14,17)

建立GM(1,1)模型

(1) 对原始数据t 做一次累加,即

t(1) = (3,11,21,35,52) (2) 构造数据矩阵及数据向量 (3) 计算a,b

a=-0.2536,b=6.2585 (4) 建立模型

y=-24.6774+27.6774*exp(.253610*t)

(5)模型检验

(6)通过计算可以预测到第六个数据是22.0340

由于 22.034 与17相差5.034,这表明下一次旱灾将发生在五年以后。

计算的 MATLAB程序如下:

clc,clear

a=[390.6,412,320,559.2,380.8,542.4,553,310,561,300,632,540,406.2,313.8,576,587.6,318.5]';

x0=find(a<=320);

x0=x0';

n=length(x0)

lamda=x0(1:n-1)./x0(2:n)

range=minmax(lamda)

x1=cumsum(x0)

for i=2:n

z(i)=0.5*(x1(i)+x1(i-1));

end

B=[-z(2:n)',ones(n-1,1)];

Y=x0(2:n)';

u=B\Y

x=dsolve('Dx+a*x=b','x(0)=x0');

x=subs(x,{'a','b','x0'},{u(1),u(2),x1(1)});

yuce1=subs(x,'t',[0:n-1]);

digits(6),y=vpa(x)

yuce=[x0(1),diff(yuce1)]

epsilon=x0-yuce

delta=abs(epsilon./x0)

rho=1-(1-0.5*u(1))/(1+0.5*u(1))*lamda

yuce1=subs(x,'t',[0:n]);

yuce=[x0(1),diff(yuce1)]

5. Verhulst预测模型

在实际问题中,常遇到原始数据本身呈S形的过程,这时,可取原始数据为(1)

x,其一次累减生成(1—IAGO)为(0)

x,建立Verhulst模型,直接对(1)

x进行预测(模拟)。现以中国道路交通事故死亡人数为例,建立交通事故死亡人数Verhualst 预测模型。由《中国交通年鉴》、《中国汽车工业年鉴》等可得近年来中国道路交通事故死亡人数统计资料,见表14。

解:1990~2003 年中国道路交通事故死亡人数曲线见图2,可见曲

线呈S 形,故可建立Verhulst 模型进行预测,其建模过程如下。

(1)设(1)x 为1990~2003 年死亡人数的原始数据序列,即

(1)(1)(1)(1)(1)

12314(,,...)(4.93, 5.33, 5.87, 6.35, 6.63, 7.15,7.37, 7.39, 7.81, 8.35, 9.39,10.59,10.94,10.44)

x x x x x == (2)对x(1)作一次累减生成(1—IAGO ),由

(0)(1)(1)

1,2,3,...14k k k x x x k -=-=

(0)(0)(0)(0)

1214(,,...)(4.93, 0.4, 0.54, 0.48, 0.28, 0.52, 0.22,0.02, 0.42, 0.54,1.04,1.2, 0.35, -0.5)

x x x x == (3) 对(1)x 作紧邻均值生成,令

(1)(1)(1)

10.5(),2,3,...14k k k z x x k -=+=

(1)(1)(1)(1)

2314(,,...)(5.13, 5.6, 6.11, 6.49, 6.89, 7.26, 7.38,7.6, 8.08, 8.87, 9.99,10.765,10.69)

z z z z == (4) 对参数列

(,)T a b α∧

= 进行最小二乘估计,得

相关主题