clear all
%大缺陷:
X1=[310 137 38 16;10.0871 3.4128 2.1851 2.163;1174.8 599.7615 437.9968 591.0105];
X2=[320 129 46 24;7.9886 5.1834 3.2189 1.7265;957.0469 766.5872 678.3428 468.7272];
%X3=[265 129 43 24;9.0562 8.1089 5.2199 2.4282;1135.4 1213.8 1100.2 850.1828];
%X4=[364 168 61 29;6.759 5.7073 2.8025 1.3108;788.1479 842.3291 461.6305 299.3823];
%小缺陷:
X3=[141 60 19 13;2.2109 0.9729 1.104 0.9032;321.0276 171.8492 416.326 486.0381];
X4=[167 75 34 13;2.171 0.5449 1.3893 1.4056;248.2073 95.3105 306.3928 576.9317];
%X7=[140 53 17 12;2.6531 0.9712 1.4785 0.7591;301.1054 143.5816 551.061 303.9294];
%X8=[164 69 24 10;2.6929 1.678 2.2006 0.6764;342.2366 297.5868 720.1704 343.8219];
xdata=[X1' X2'];%12列3行数据
ydata=[X3' X4'];%12列3行数据
P=[xdata ydata];%24列3行数据,前12是大缺陷,后12是小缺陷,各4个样本
%T=[1 0;1 0; 1 0; 1 0;1 0;1 0;1 0;1 0;1 0;1 0;1 0;1 0;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;]';%数据准备完毕
T=[1 1 1 1 1 1 2 2 2 2 2 2];
Q=P';%一行是一种
for i=1:1:12
n=max(Q(i,:));
m=min(Q(i,:));
Q(i,:)=(Q(i,:)-m)/(n-m);
end %数据归一化
A=Q';
B=T;%数据准备完毕
net=newff(A,B,[24,5],{'tansig','logsig'},'trainscg');
net.trainParam.epochs=100;%设置最大训练次数
net.trainParam.goal=0.005;%设置训练目标
net.trainParam.lr=0.0025;%设置学习速度
f=0;%初始准确率
while(f<0.97)%循环算法,到训练处满足条件的神经网络时停止
net=train(net,A,B);%开始训练神经网络
Y=sim(net,A);%与神经网络训练集对应的输出集
H=round(Y);%对对应的输出集进行四舍五入
b=0;
i=1;%初始迭代位置
k=0;%初始输出集与预测集正确匹配个数
b=b+1;
while(i<=12)
if H(i)==B(i)
k=k+1;
i=i+1;
else
i=i+1;
end
end %统计正确率
f=k/12;
end
save net;
f;%输出正确率;
%模式识别工具箱:
%rawx1=xlsread('data.xls','sheet1','B2:D17');
%rawx2=xlsread('data.xls','sheet1','H2:J17');
%rawy1=xlsread('data.xls','sheet1','E2:F17');
%rawy2=xlsread('data.xls','sheet1','K2:L17');
%xdata=[rawx1' rawx2'];ydata=[rawy1' rawy2'];
%nprtool