1、完整word版)模糊聚类分析及matlab程序实现
模糊聚类分析及matlab程序实现
采用模糊数学语言对按一定的要求进行描述和分类的数学方法称为模糊聚类分析。聚类分析主要经过标定和聚类两步骤。【1】
1 标定(建立模糊相似矩阵)
城市居民食品零售价格,第t时刻第i种食品的零售价记为。
相似矩阵R的构建方法:NTV法
设时间序列表示食品i在时间t的价格,其中i=1,2…42;t=1,2…39.
(其中i,j,k=1,2…42,m=39)
2 聚类
2.1 计算R的传递闭包:
对模糊相似矩阵R,依次用平方法计算,,,…,,…,当第一次出现时,则称为传递闭包。【1】
2
2、2 开始聚类:【2】
(1)令T={1,2,3…42},取 ,令X、Q为空集;
(2)令;
(3)若且,则令,;
(4);
(5)若,返回(1);
(6)若Q为空集,怎输出聚类x,;
(7),,返回(2)。
设置不同的置信水平值,就可以得到不同的分类。
Matlab程序实现:
A=data;
[N M] = size(A);
for i = 1:N
for j = 1:N
R(i,j)=abs(1-sum(abs(A(i,:)-A(j,:)))/sum(max([A(i,:);A(j,:)])));
end
end
f
3、or j=1:42
for i=1:42
y(i,j)=0;
for k=1:42
mn(k)=min(R(i,k),R(k,j));
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 ('当分类系数是’);
di
4、sp(numda(i));
a=numda(i);
T=TT;
disp ('分类为’);
while 1
if ~isempty(T)
xi=T(1);
end
X=[];Q=[];
while 1
for j=1:42
if (y(xi,j)>=a)&isempty(intersect(X,j))
X=union(X,j);
Q(length(Q)+1)=j;
end
end
if isempty(Q)
disp(X);
break
else
xi=Q(1);
Q(1)=[];
end
end
T=setdiff(T,X);
if isempty(T)
break
end
end
end