-
大小: 2KB文件类型: .rar金币: 2下载: 1 次发布日期: 2021-08-11
- 语言: Matlab
- 标签:
资源简介
模糊聚类分析传递闭包算法FCM的matlab程序,能对数据进行分类处理,经调试验证无误。
代码片段和文件信息
%BY YY 模糊聚类算法 2008.3.4
%采用数量积求相似矩阵
%输入样本矩阵
X=input(‘please input X:‘);
[NM]=size(X);
%N是样本数 M是特征数
%N个样本M个指标的平均值矩阵和标准差矩阵
P=zeros(M1);
for j=1:M
for i=1:N
P(j)=P(j)+X(ij);
end
P(j)=P(j)/N;
end
P1=zeros(M1);
for j=1:M
for i=1:N
P1(j)=P1(j)+(X(ij)-P(j))*(X(ij)-P(j));
end
P1(j)=P1(j)/N;
P1(j)=sqrt(P1(j));
end
%标准化将数据归一化
for i=1:N
for j=1:M
X1(ij)=(X(ij)-P(j))/P1(j);
end
end
for j=1:M
A(j)=min(X1(:j));%最小
B(j)=max(X1(:j));%最大
end
for i=1:N
for j=1:M
X2(ij)=(X1(ij)-A(j))/(B(j)-A(j));
end
end
X2
%以上都是数据标准化
%下面建立模糊相似矩阵
R1=zeros(NN);
for i=1:N
for k=1:N
if i==k ;
else
for j=1:M
R1(ik)= R1(ik)+X2(ij)*X2(kj);
end
end
end
end
m=max(R1);
m=max(m);
R=zeros(NN);
for i=1:N
for j=1:N
if i==j
R(ij)=1;
else
R(ij)=R1(ij)/m;
end
end
end
R
%建立模糊等价关系矩阵
flag=0;
C=R;
T=zeros(NN);
while flag==0
for i=1:N
for j=1:N
for k=1:N
T(ij)=max(min(C(ik)C(kj))T(ij));%计算传递闭包 不能少T(ij)这项 否则T(i,i)将不再为1 取大取小合运算
end
end
end
if T==C
flag=1;
else
C=T;
end
end
T %输出传递闭包
%取不同的置信水平q,q需要设定
q=0.25;
for i=1:N
for j=1:N
if T(ij)>=q
T1(ij)=1;
else
T1(ij)=0;
end
end
end
T1 %T1为一个P截矩阵 如有对应的列向量相等,则是同一类
%输出结果
F=zeros(NN);
k=1;
for i=1:N
e=1;
F(ke)=i;
for j=1:N
if i==j;
else
if isequal(T1(i:)T1(j:))
e=e+1;
F(ke)=j;
end
end
end
k=k+1;
end
F
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2013 2008-03-11 15:40 FCM.m
文件 3703 2008-03-06 01:41 fcm.C
----------- --------- ---------- ----- ----
5934 3
- 上一篇:MATLAB解非线性方程组 雅可比 迭代
- 下一篇:KPCA matlab实现代码
评论
共有 条评论