clc;
clear;
data = xlsread('Nfsensor.csv','Nfsensor'); %读入样本数据
Nc = 4; % 初始聚类中心数目
m = 2; % 控制聚类结果模糊程度
L = 0; % 迭代次数
Lmax = 1000; % 最大迭代次数
Nc_all = ones(Lmax,2); % 各次迭代的分类数
Udmax = 10; %最后一次的隶属度与前一次的隶属度的差值的初始值
e = 0.00005; % 收敛参数
a = 0.33; % 合并阈值系数
b = 1; % 模糊化方差参数(通常取1)
r = 0.1; % 分解阈值参数(算法使用者掌握的参数,控制G(K)的上升速度)
f = 0.68; % 隶属度阈值(一般取值0-0.5之间)
Avms = 0.83; % 平均隶属度阈值(一般应大于0.5,0.55-0.6之间取值比较适宜)
k_divide = 0.9; %分裂1数(取0-1之间)
w = 0.2; % 删除条件参数
Nc_start = Nc;
%调用Fuzzy ISODATA函数
[X, Z, U, Nc, L, Dcc, Dccm, Mind, S, Smean, Fstd, T, C, k_delete, Dpc] = FussyISODATA_function(data, Nc, m, L, Lmax, Nc_all, Udmax, e, a, b, r, f, Avms, k_divide, w)
[Np, Nq] = size(data); % Np 样本数目; Nq 样本维数
%将聚类结果在三维图中显示
figure;
hold on;
for i=1:Np
for j = 1:Nc
if Nc>8
disp('聚类中心数目大于8个');
else
switch X(i,1).category
case 1
plot3(X(i,1).feature(1,1),X(i,1).feature(1,2),X(i,1).feature(1,3),'b*'); %第1类样本,蓝色*
grid on;box;
plot3(Z(j,1).feature(1,1),Z(j,1).feature(1,2),Z(j,1).feature(1,3),'ko'); %第1类聚类中心,黑色o
grid on;
case 2
plot3(X(i,1).feature(1,1),X(i,1).feature(1,2),X(i,1).feature(1,3),'gd'); %第2类样本,绿色菱形
grid on;
plot3(Z(j,1).feature(1,1),Z(j,1).feature(1,2),Z(j,1).feature(1,3),'ko'); %第2类聚类中心,黑色o
grid on;
case 3
plot3(X(i,1).feature(1,1),X(i,1).feature(1,2),X(i,1).feature(1,3),'rs'); %第3类样本,红色方块
grid on;
plot3(Z(j,1).feature(1,1),Z(j,1).feature(1,2),Z(j,1).feature(1,3),'ko'); %第3类聚类中心,黑色o
grid on;
case 4
plot3(X(i,1).feature(1,1),X(i,1).feature(1,2),X(i,1).feature(1,3),'c+'); %第4类样本,青色+
grid on;
plot3(Z(j,1).feature(1,1),Z(j,1).feature(1,2),Z(j,1).feature(1,3),'ko'); %第4类聚类中心,黑色o
grid on;
case 5
plot3(X(i,1).feature(1,1),X(i,1).feature(1,2),X(i,1).feature(1,3),'mx'); %第5类样本,品红色x
grid on;
plot3(Z(j,1).feature(1,1),Z(j,1).feature(1,2),Z(j,1).feature(1,3),'ko'); %第5类聚类中心,黑色o
grid on;
case 6
plot3(X(i,1).feature(1,1),X(i,1).feature(1,2),X(i,1).feature(1,3),'yh'); %第6类样本,黄色六角星
grid on;
plot3(Z(j,1).feature(1,1),Z(j,1).feature(1,2),Z(j,1).feature(1,3),'ko'); %第6类聚类中心,黑色o
grid on;
case 7
plot3(X(i,1).feature(1,1),X(i,1).feature(1,2),X(i,1).feature(1,3),'k.'); %第7类样本,黑色.
grid on;
plot3(Z(j,1).feature(1,1),Z(j,1).feature(1,2),Z(j,1).feature(1,3),'ko'); %第7类聚类中心,黑色o
grid on;
case 8
plot3(X(i,1).feature(1,1),X(i,1).featu
MATLAB-----模糊ISODATA
最新推荐文章于 2022-08-07 10:20:48 发布