现有训练集数据,1000 × 7,如下:
xxxxxxxxxxxxxxxxxxxx
有测试集数据,100 × 7,如下:
xxxxxxxxxxxxxxxxxxxx
以上数据分别是从某系统采集的数据,
训练数据集中,分别是采集的数据和标注结果,其中1、2分别表示该系统有无故障;
测试数据集中,分别是采集的数据和真实结果,其中1、2分别表示该系统有无故障;
现在需要使用训练数据集训练BP神经网络,然后用训练好的神经网络对测试数据集进行测试,并与真实结果进行对比,最终分析出神经网络的性能。
% --- Executes on button press in pushbutton6.
function pushbutton6_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global output_test inputn_train outputn_train inputn_test ...
outputps BPoutput_test xunlian_num Error input_train output_train
%创建网络
%获得gui_set中值
num_yinhan=str2num(get(findobj('tag','edit_yinhan'),'string'));
TF=get(findobj('tag','transfer'),'string'); %传递函数
valueTF=get(findobj('tag','transfer'),'value');
TF=TF{valueTF};
BTF=get(findobj('tag','train'),'string'); %训练函数
valueBTF=get(findobj('tag','train'),'value');
BTF=BTF{valueBTF};
BLF=get(findobj('tag','learn'),'string'); %学习函数
valueBLF=get(findobj('tag','learn'),'value');
BLF=BLF{valueBLF};
tic;%启动一个定时器
net=newff(inputn_train,outputn_train,num_yinhan,{TF},BTF,BLF);
net.trainParam.epochs=str2num(get(findobj('tag','cishu'),'string'));
net.trainParam.goal=str2num(get(findobj('tag','goal'),'string'));
net.trainParam.lr=str2num(get(findobj('tag','rate'),'string'));
net=train(net,inputn_train,outputn_train);
an=sim(net,inputn_test);
t=toc;%关闭定时器,获取程序运行时间
%网络输出反归一化