欧阳物创编 2021.02.07
模糊聚类分析及matlab程序实现
时间:2021.02.07 命题人:欧阳物 采用模糊数学语言对按一定的要求进行描述和分类的数学方法称为模糊聚类分析。聚类分析主要经过标定和聚类两步骤。【1】
1 标定(建立模糊相似矩阵)
城市居民食品零售价格,第t时刻第i种食品的零售价记为
x(i,t)。
相似矩阵R的构建方法:NTV法
设时间序列A(i,j)表示食品i在时间t的价格,其中i=1,2…42;t=1,2…39。
R(i,j)?1??xk?1mk?1mik?xjkik?max(x2 聚类
,xjk)(其中i,j,k=1,2…42,m=39)
2.1 计算R的传递闭包: 对模糊相似矩阵次出现Rk*RkR,依次用平方法计算,R2,R4,…,R2t,…,当第一
?Rk时,则称Rk为传递闭包。【1】
2.2 开始聚类:【2】
欧阳物创编 2021.02.07
欧阳物创编 2021.02.07
(1)令T={1,2,3…42},取xi?T(1) ,令X、Q为空集; (2)令j?0;
(3)若R(xi,j)???且xj?X,则令X?X?{j},Q?Q?{j}; (4)j?j?1;
(5)若j?n,返回(1);
(6)若Q为空集,怎输出聚类x,T?T-X; (7)xi?Q(1),Q?Q?{xi},返回(2)。
设置不同的置信水平?值,就可以得到不同的分类。 Matlab程序实现: A=data; [N for
for
M] i
j
= =
=
size(A);
1:N 1:N
R(i,j)=abs(1-sum(abs(A(i,:)-
A(j,:)))/sum(max([A(i,:);A(j,:)]))); end
for j=1:42 for i=1:42 y(i,j)=0; for k=1:42
mn(k)=min(R(i,k),R(k,j));
欧阳物创编 2021.02.07
end
欧阳物创编 2021.02.07
end
y(i,j)=max(mn); end end
numda=[1 0.9 0.95 0.85 0.8 0.75 0.55 0.7 0.655 0.65 0.6 0.55 0.5 0.45 0.454 0.4 0.45 0.3 0.35 0.255 0.25 0.2 0.15 0.1]; for i=1:42 TT(i)=i; end
for i=1:length(numda) disp ('当分类系数是'); disp(numda(i)); a=numda(i); T=TT;
disp ('分类为'); while 1
if ~isempty(T) xi=T(1); end
X=[];Q=[]; while 1
欧阳物创编 2021.02.07