📄 naturalnet.m
字号:
clear all
clc
%data
%胃癌(1) 萎缩性胃炎(2) 非胃病(3)
P1=[ 228 150 135;
134 117 108;
0.20 0.07 0.02;
0.11 0.06 0.12;];%原始数据(用于第一次分类)
P2=[150 135;
117 108;
0.07 0.02;
0.06 0.12;];%(用于第二次分类)
T1=[1 0 0];%原始分来结果(用于第一次分类)
T2=[0 1];%(用于第二次分类)
Q1=[245 200 170 100 255 130 120 160 185 170 165 100;
134 167 150 167 125 100 133 100 115 125 142 117;
0.1 0.12 0.07 0.2 0.07 0.06 0.1 0.05 0.05 0.06 0.05 0.07;
0.4 0.27 0.08 0.14 0.14 0.12 0.26 0.1 0.19 0.04 0.03 0.02;
]; %输入的待分类的数据
%end data
net1 = newp(minmax(P1),1);%新建网络
net2 = newp(minmax(P1),1);
E = 1;%设置误差
net1.adaptParam.passes = 3;
net2.adaptParam.passes = 3;
while(sse(E))
[net1,Y1,E] = adapt(net1,P1,T1);%训练分类网络
[net2,Y2,E] = adapt(net2,P2,T2);
end
Answer1=sim(net1,Q1);%第一次分类结果
Q2=zeros(4,1);j=1; %组织第二次分类
for i=1:1:size(Answer1,2)
if(Answer1(i)<1)
Q2(:,j)=Q1(:,i);
j=j+1;
end
end
Answer2=sim(net2,Q2);%第二次分类结果
Consequence=zeros(1,size(Answer1,2));%综合两次分类的结果
j=1;
for i=1:1:size(Answer1,2)
if(Answer1(i)<1)
Consequence(i)=Answer2(j)+2;
j=j+1;
else
Consequence(i)=1;
end
end
Consequence %得出最后结果
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 以下是分析最后结果,并画出出散点图:
% 分析说明:
% 对输入数据分成3类,并将他们存储在矩阵ad1-胃癌(1),ad2-萎缩性胃炎(2),ad3-非胃病(3)中;
% 根据分类结果画出: 原始数据散点图,胃癌与非胃癌散点图,三种情况散点图;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
i=1;j=1;k=1;l=1;
ad1=zeros(4,1);ad2=zeros(4,1);ad3=zeros(4,1);
for(i=1:1:size(Consequence,2))
if(Consequence(i)==1)
ad1(:,j)=Q1(:,i);
j=j+1;
end
if(Consequence(i)==2)
ad2(:,k)=Q1(:,i);
k=k+1;
end
if(Consequence(i)==3)
ad3(:,l)=Q1(:,i);
l=l+1;
end
end
ad1
ad2
ad3
plotpv(P1(1:2,:),T1);
figure;
plotpv(Q1(1:2,:),Answer1);
figure;
plotpv(Q2(1:2,:),Answer2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -