模糊聚类分析及matlab 程序实现
采用模糊数学语言对按一定的要求进行描述和分类的数学方法称为模糊聚
类分析。聚类分析主要经过标定和聚类两步骤。
【1】 1 标定(建立模糊相似矩阵)
城市居民食品零售价格,第t 时刻第i 种食品的零售价记为),(t i x 。 相似矩阵R 的构建方法:NTV 法
设时间序列),(j i A 表示食品i 在时间t 的价格,其中i=1,2…42;t=1,2…39。
∑∑
==--=m
k jk ik m
k jk ik x x x x j i R 11
),max(
1),((其中i,j,k=1,2…42,m=39) 42*42),(j i R R =
2 聚类
2.1 计算R 的传递闭包:
对模糊相似矩阵R,依次用平方法计算,2
R ,4R ,…,t 2R ,…,当第一次出现k k k R R R =*时,则称k R 为传递闭包。【1】
2.2 开始聚类:
【2】 (1)令T={1,2,3…42},取)1(xi T ∈ ,令X 、Q 为空集;
(2)令0=j ;
(3)若λ>=),(j xi R 且X x j ?,则令}{j X X ?=,}{j Q Q ?=;
(4)1+=j j ;
(5)若n j
(6)若Q 为空集,怎输出聚类x,X -T T =;
(7))1(xi Q =,}{xi Q Q -=,返回(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,:)])));