模糊聚类分析例子.docx
- 文档编号:26310871
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:26
- 大小:271.08KB
模糊聚类分析例子.docx
《模糊聚类分析例子.docx》由会员分享,可在线阅读,更多相关《模糊聚类分析例子.docx(26页珍藏版)》请在冰豆网上搜索。
模糊聚类分析例子
模糊聚类分析例子(总13页)
1.模糊聚类分析模型
环境区域的污染情况由污染物在4个要素中的含量超标程度来衡量。
设这5个环境区域的污染数据为
=(80,10,6,2),
=(50,1,6,4),
=(90,6,4,6),
=(40,5,7,3),
=(10,1,2,4).试用模糊传递闭包法对X进行分类。
解:
由题设知特性指标矩阵为:
数据规格化:
最大规格化
其中:
构造模糊相似矩阵:
采用最大最小法来构造模糊相似矩阵
利用平方自合成方法求传递闭包t(R)
依次计算
由于
,所以
,
=
选取适当的置信水平值
按
截矩阵进行动态聚类。
把
中的元素从大到小的顺序编排如下:
1>0.70>0.63>062>053.依次取
=1,0.70,0.63,062,053,得
,此时X被分为5类:
{
},{
},{
},{
},{
}
,此时X被分为4类:
{
},{
,
},{
},{
}
,此时X被分为3类:
{
,
,
},{
},{
}
,此时X被分为2类:
{
,
,
,
},{
}
,此时X被分为1类:
{
}
Matlab程序如下:
%数据规格化MATLAB程序
a=[801062
50164
90646
40573
10124];
mu=max(a)
fori=1:
5
forj=1:
4
r(i,j)=a(i,j)/mu(j);
end
end
r
%采用最大最小法构造相似矩阵
r=[0.88891.00000.85710.3333
0.55560.10000.85710.6667
1.00000.60000.57141.0000
0.44440.50001.00000.5000
0.11110.10000.28570.6667];
b=r';
fori=1:
5
forj=1:
5
R(i,j)=sum(min([r(i,:
);b(:
j)']))/sum(max([r(i,:
);b(:
j)']));
end
end
R
%利用平方自合成方法求传递闭包t(R)
矩阵合成的MATLAB函数
functionrhat=hech(r);
n=length(r);
fori=1:
n
forj=1:
n
rhat(i,j)=max(min([r(i,:
);r(:
j)']));
end
end
求模糊等价矩阵和聚类的程序
R=[1.00000.54090.62060.62990.2432
0.54091.00000.54780.69850.5339
0.62060.54781.00000.55990.3669
0.62990.69850.55991.00000.3818
0.24320.53390.36690.38181.0000];
R1=hech(R)
R2=hech(R1)
R3=hech(R2)
bh=zeros(5);
bh(find(R2>0.7))=1
2.模糊综合评判模型
某烟草公司对某部门员工进行的年终评定,关于考核的具体操作过程,以对一名员工的考核为例。
如下表所示,根据该部门工作人员的工作性质,将18个指标分成工作绩效(
)、工作态度(
)、工作能力(
)和学习成长(
)这4各子因素集。
员工考核指标体系及考核表
一级指标
二级指标
评价
优秀
良好
一般
较差
差
工作绩效
工作量
0.8
0.15
0.5
0
0
工作效率
0.2
0.6
0.1
0.1
0
工作质量
0.5
0.4
0.1
0
0
计划性
0.1
0.3
0.5
0.05
0.05
工作态度
责任感
0.3
0.5
0.15
0.05
0
团队精神
0.2
0.2
0.4
0.1
0.1
学习态度
0.4
0.4
0.1
0.1
0
工作主动性
0.1
0.3
0.3
0.2
0.1
360度满意度
0.1
0.2
0.5
0.2
0.1
工作能力
创新能力
0.1
0.3
0.5
0.2
0
自我管理能力
0.2
0.3
0.3
0.1
0.1
沟通能力
0.2
0.3
0.35
0.15
0
协调能力
0.1
0.3
0.4
0.1
0.1
执行能力
0.1
0.4
0.3
0.1
0.1
学习成长
勤情评价
0.3
0.4
0.2
0.1
0
技能提高
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
请专家设定指标权重,一级指标权重为:
二级指标权重为:
对各个子因素集进行一级模糊综合评判得到:
这样,二级综合评判为:
根据最大隶属度原则,认为该员工的评价为良好。
同理可对该部门其他员工进行考核。
3.层次分析模型
你已经去过几家主要的摩托车商店,基本确定将从三种车型中选购一种,你选择的标准主要有:
价格、耗油量大小、舒适程度和外观美观情况。
经反复思考比较,构造了它们之间的成对比较判断矩阵。
A=
三种车型(记为a,b,c)关于价格、耗油量、舒适程度和外表美观情况的成对比较判断矩阵为
价格abc耗油量abc
舒适程度abc外表abc
根据上述矩阵可以看出四项标准在你心目中的比重是不同的,请按由重到
轻顺序将它们排出。
解:
用matlab求解
层次总排序的结果如下表
准则
价格
耗油量
舒适程度
外表
总排序权值
准则层权值
0.5820
0.2786
0.0899
0.0495
方案层
单排序
权值
a
0.5396
0.1056
0.6267
0.1884
0.4091
b
0.2970
0.7445
0.2797
0.7306
0.4416
c
0.1634
0.1499
0.0936
0.0810
0.1493
Matlab程序如下:
clc,clear
n1=4;
n2=3;
a=[1378
1/3155
1/71/513
1/81/51/31];
b1=[123
1/212
1/31/21];
b2=[11/51/2
517
21/71];
b3=[135
1/314
1/51/41];
b4=[11/53
517
1/31/71];
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
CR1,ts=w1*w0,CR=CR1*w0%ts为总排序的权值,CR为层次总排序的随机一致性比例
%当CR小于0.1时,认为总层次排序结果具有较满意的一致性并接受该结果,否则对判断矩阵适当修改
4.灰色预测GM(1,1)模型
某地区年平均降雨量数据如表
某地区年平均降雨量数据
年份
1
2
2
3
4
5
6
7
8
降雨量
390.6
412
320
559.2
380.8
542.4
553
310
561
年份
10
9
11
12
13
14
15
16
17
降雨量
300
390.6
632
540
406.2
313.8
576
587.6
318.5
规定hz=320,并认为
<=hz为旱灾。
预测下一次旱灾发生的时间
解:
初始序列如下
=(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)
由于满足
<=320的
为异常值,易得下限灾变数列为
=(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)模型检验
年份
原始值
模型值
残差
相对误差
级比偏差
3
3
3.0
0
0
8
8
7.9896
0.0104
0.0013
0.5161
10
10
10.2960
-0.2960
0.0296
-0.0324
14
14
13.2681
0.7319
0.0523
0.0783
17
17
17.0983
-0.0983
0.0058
-0.0627
(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)
fori=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—IAGO)为
,建立Verhulst模型,直接对
进行预测(模拟)。
现以中国道路交通事故死亡人数为例,建立交通事故死亡人数Verhualst预测模型。
由《中国交通年鉴》、《中国汽车工业年鉴》等可得近年来中国道路交通事故死亡人数统计资料,见表14。
表14道路交通事故死亡人数统计
年份
1990
1991
1992
1993
1994
1995
1996
1997
死亡人数(万人)
4.93
5.33
5.87
6.35
6.63
7.15
7.37
7.39
年份
1998
1999
2000
2001
2002
2003
2004
死亡人数(万人)
7.81
8.35
9.39
10.59
10.94
10.44
10.71
解:
1990~2003年中国道路交通事故死亡人数曲线见图2,可见曲线呈S形,故可建立Verhulst模型进行预测,其建模过程如下。
(1)设
为1990~2003年死亡人数的原始数据序列,即
(2)对x
(1)作一次累减生成(1—IAGO),由
得
(3)对
作紧邻均值生成,令
得
(4)对参数列
进行最小二乘估计,得
(5)Verhulst模型为
(6)模型精度检验(过程略)
平均相对误差Δ=3.74%,则模型精度为二级;同时算得绝对关联度g为0.9845,
均方差比值C为0.2355,则模型精度为一级,可见模型精度较高,可用于事故预测。
Matlab编程如下
clc,clear
x1=[4.935.335.876.356.637.157.377.397.818.359.3910.5910.9410.44];
n=length(x1);
nian=1990:
2003;
plot(nian,x1,'o-');
x0=diff(x1);
x0=[x1
(1),x0]
fori=2:
n
z1(i)=0.5*(x1(i)+x1(i-1));
end
z1
B=[-z1(2:
end)',z1(2:
end)'.^2]
Y=x0(2:
end)'
abhat=B\Y
x=dsolve('Dx+a*x=b*x^2','x(0)=x0');x=subs(x,{'a','b','x0'},{abhat
(1),abhat
(2),x1
(1)});yuce=subs(x,'t',0:
n-1);
digits(6);x=vpa(x)
x1_all=x1;
epsilon=x1_all-yuce
delta=abs(epsilon./x1_all)
delta_mean=mean(delta)
x1_all_0=x1_all-x1_all
(1);
yuce_0=yuce-yuce
(1);
s0=abs(sum(x1_all_0(1:
end-1))+0.5*x1_all_0(end));
s1=abs(sum(yuce_0(1:
end-1))+0.5*yuce_0(end));
tt=yuce_0-x1_all_0;
s1_s0=abs(sum(tt(1:
end-1))+0.5*tt(end));
absdegree=(1+s0+s1)/(1+s0+s1+s1_s0)
c=std(epsilon,1)/std(x1_all,1)
yuce=subs(x,'t',0:
n)
6.GM(2,1)模型
1996~2001年上海市上网户数数据序列为
在互联网发展初期,增长势头十分强劲。
因此,定理5引入的一阶缓冲算子弱化该序列
的增长趋势,一阶缓冲序列仍记为
,
=(41,49,61,78,96,104),试以该序列为基础建立GM(2,1)模型
解:
的1-AGO序列和1-IAGO序列分别为
=(41,90,151,229,325,429)
=(0,8,12,17,18,8)
的紧邻均值生成序列
=(0,65.5,120.5,190,277,377)
B=
,Y=
=
可得,GM(2,1)时间响应式
=-.532426*exp(.865973*t)+203.850*exp(.226223*t)-162.317
所以预测的数据为(41,51,63,77,92,104)
误差分析
实际数据
模拟数据
残差
相对误差
49
51.0148
-2.0148
0.0411
61
63.1412
-2.1412
0.0351
78
77.2111
0.7889
0.0101
96
92.1548
3.8452
0.0401
104
104.4780
-0.4780
0.0046
Matlab程序如下
clc,clear
x0=[41,49,61,78,96,104];
n=length(x0);
x1=cumsum(x0)%x1为累加数列
a_x0=diff(x0);
a_x0=[0,a_x0]%a_x0为累减数列
fori=2:
n
z(i)=0.5*(x1(i)+x1(i-1));
end
B=[-x0(2:
end)',-z(2:
end)',ones(n-1,1)];
Y=a_x0(2:
end)';
u=B\Y%a1,a2,b的值
x=dsolve('D2x+a1*Dx+a2*x=b','x(0)=c1,x(5)=c2');
x=subs(x,{'a1','a2','b','c1','c2'},{u
(1),u
(2),u(3),x1
(1),x1(6)});
yuce=subs(x,'t',0:
n-1);
digits(6),x=vpa(x)%x为时间响应式
x0_hat=[yuce
(1),diff(yuce)]%预测的数据
epsilon=x0-x0_hat%计算残差
delta=abs(epsilon./x0)%计算相对误差
7.波形预测模型
上海证券交易所综合指数的波形预测。
根据上海证券交易所综合指数的周收盘指数数据,从1997年2月21日到1998年10月31日的周收盘指数曲线如图所示:
解:
取9条等间隔的等高线,分别为
=1140,
=1170,
=1200,
=1230,
=1260,
=1290,
=1320,
=1350,
=1380
的等高时刻序列分别为
对应于
=1140,
=(4.4,31.7,34.2,41,42.4,76.8,78.3)
对应于
=1170,
=(5.2,19.8,23,25.6,26.9,31.2,34.8,39.5,44.6,76,76.2,79.2)
对应于
=1200,
=1230,
=1260,
=1290,
=1320,
=1350,
=1380
分别为
=(5.9,19.5,24.8,25.2,26.5,30.3,46.2,53.4,55.4,75.5,79.7)
=(6.5,19.2,28.3,29.5,49.7,50.8,56.2,76.4,82.9,85)
=(7,14.2,16.4,16.5,18.8,56.7,75.2)
=(8.3,13.4,16.9,56.2,74.6)
=(8.8,12.8,60.2,71.8,72.7,73.6)
=(9.6,12.5,61.8,69.8,70.9,71.8)
=(10.8,12.4,64.1,69)
对
(i=1,2,3,…9)序列,进行GM(1,1)预测,起响应时分别为
y1=-109.738+114.138*exp(0.214831*t)
y2=-94.0581+99.2581*exp(0.158430*t)
y3=-94.6529+100.553*exp(.166865*t)
y4=-145.162+151.662*exp(.159938*t)
y5=-3.68695+10.6869*exp(.446077*t)
y6=-12.1881+20.4881*exp(.550388*t)
y7=-176.276+185.076*exp(.191636*t)
y8=-182.496+192.096*exp(.185059*t)
y9=-34.6983+45.4983*exp(.488018*t)
对在1998年11月到2000年3月这5个月进行预测,可得
等高时刻的预测序列
=(99.3,123.1)
=(97.3,114.1,133.6)
=(96.9,114.5,135.2)
=(110.9,130.2,152.8)
=(87.3,136.4)
=(135.9)
=(101.9,123.4,149.5)
=(98.5,118.5,142.6)
=(123.7)
据此可以画出上海证券交易所综合指数1998年11月到2000年3月的预测波形图
如下
Matlab程序如下:
%GM(1,1)函数
functiongm11(x0,t)
n=length(x0);
x1=cumsum(x0);
lamda=x0(1:
n-1)./x0(2:
n);
fori=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)
yuce1=subs(x,'t',[0:
n-1+t]);
yuce=[x0
(1),diff(yuce1)]
%预测数据
clc,clear
x1=[4.4,31.7,34.2,41,42.4,76.8,78.3];
x2=[5.2,19.8,23,25.6,26.9,31.2,34.8,39.5,44.6,76,76.2,79.2];
x3=[5.9,19.5,24.8,25.2,26.5,30.3,46.2,53.4,55.4,75.5,79.7];
x4=[6.5,19.2,28.3,29.5,49.7,50.8,56.2,76.4,82.9,85];
x5=[7,14.2,16.4,16.5,18.8,56.7,75.2];
x6=[8.3,13.4,16.9,56.2,74.6];
x7=[8.8,12.8,60.2,71.8,72.7,73.6];
x8=[9.6,12.5,61.8,69.8,70.9,71.8];
x9=[10.8,12.4,64.1,69];
gm11(x1,4)
gm11(x2,4)
gm11(x3,4)
gm11(x4,4)
gm11(x5,4)
gm11(x6,4)
gm11(x7,4)
gm11(x8,4)
gm11(x9,4)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模糊 聚类分析 例子
![提示](https://static.bdocx.com/images/bang_tan.gif)