clc
clear
%訓練資料
train_data = csvread('credit_train.csv');
train_input = train_data(:,1:23)';
train_target = train_data(:,24)';
%測驗資料
test_data = csvread('credit_test.csv');
test_input = test_data(:,1:23)';
test_target = test_data(:,24)';
net = newff(train_input,train_target,[11 6 3],{'tansig','purelin'},'traingd');
%net = train(net,train_input,train_target);
net = init(net);
net.trainParam.epochs=2000;
net.trainParam.lr=0.1;
net.trainParam.goal=0.000001;
% 輸入層到第一隱層的連接權值
net.iw{1,1}=[0 0 0 0 0 0 0 0 0 0 0;...
0 0 1.1781 0 0 0 0 0 -2.754 0 0;...
0 0 0 0 0 0 0 0 0 0 0;...
0 0 0 0 0 0 0 0 0 0 0;...
0 0 0 1 0 0 0 0 0 0 0;...
0 0 0 0 0 0 0 0 0 0 0;...
0 0 0 0 0 0 0 0 0 0 0;...
0 0 0 0 0 0 0 0 0 0 0;...
0 -0.636 1.7340 0 0 0 0 0 0 0 0;...
0 0 0 0 0 0 0 1 0 0 0;...
0 0 0 0 0 0 0 0 0 0 0;...
0 0 0 0 0 0 0 0 0 1.8744 0;...
0 0 0 0 0 0 0 0 0 0 0;...
0 0 0 0 0 0 0 0 0 0 0;...
0 0 0 0 0 -1.359 0 0 0 0 0;...
0 0 0 0 0 3.3477 0 0 0 0 1;...
0 2.4885 0 0 0 0 0 0 0 0 0;...
5.6864 0 0 0 0 0 0 0 2.9390 0 0;...
0 -5.311 0 0 0 -0.356 0 0 0 0 0;...
0 0 0 0 1 0 0 0 0 0 0;...
0 0 0 0 0 0 0 0 0 2.2566 0;...
0 0 0 0 0 0 0 0 0 3.8345 0;...
0 0 0 0 0 0 0 0 0 0 0];
% 輸入層到第一隱層的閾值
net.b{1}=[0.6656; -1.061; -2.140; 0; 0; 1.2018; 0; 0; 0.6554; 5.3281; 0];
% 第一隱層到第二隱層的連接權值
net.lw{2,1}=[1.6499 0 0 0 0 0;...
-1.590 0 0 0 0 0;...
0.5048 0 0 0 0 0;...
0 1 0 0 0 0;...
0 0 -2.412 0 0 0;...
0 0 4.0544 0 0 0;...
0 0 0 1 0 0;...
0 0 0 0 5.7816 0;...
0 0 0 0 4.0871 0;...
0 0 0 0 2.2716 0;...
0 0 0 0 0 1];
% 第一隱層到第二隱層的閾值
net.b{2}=[-0.116; 0; -3.057; 0; 3.2617; 0];
% 第二隱層到第三隱層的連接權值
net.lw{3,2}=[1.6016 0 0;...
-1.404 0 0;...
-0.194 0 0;...
0 6.7859 0;...
0 0.7696 0;...
0 0 1];
% 第二隱層到第三隱層的閾值
net.b{3}=[-0.317; 4.2467; 0];
% 第三隱層到輸出層的連接權值
net.lw{4,3}=[1.7153; -2.329; 3.0611];
net.b{4}=0.9570;
%網路訓練
net = train(net,input_train,train_target);
y = sim(net,test_input);
y(y<0.5)=0;
y(y>=0.5)=1;
%預測正確率
rightnumber=0;
for i=1:size(test_target,2)
if y(i)==test_target(i)
rightnumber=rightnumber+1;
end
end
rightratio=rightnumber/size(test_target,2)*100;
sprintf('測驗準確率=%0.2f',rightratio)
代碼如上。
運行時報錯:Error using network/subsasgn>network_subsasgn (line 528)
net.IW{1,1} must be a 11-by-23 matrix.
Error in network/subsasgn (line 13)
net = network_subsasgn(net,subscripts,v,netname);
Error in FNTNN (line 24)
net.iw{1,1}=[0 0 0 0 0 0 0 0 0 0 0;...
是不是權值定義的格式不對還是哪里錯了,net.iw{1,1}只讀第一行,其余的為什么沒有。
第一次使用matlab,照著網上的資料寫的,請大神指教,謝謝大家。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/124993.html
標籤:其他開發語言
上一篇:Eclipse安裝python環境preference那一步顯示字符無效
下一篇:雷達信號的檢測-恒虛警率處理
