天天看點

bp 溫度預測 matlab,求助:BP神經網絡溫度預測問題

我想做時間序列溫度的預測問題,已知260個資料,240個用于訓練,20個用于預測。有下面的程式,但是不知道在哪出錯。輸入就用了順序的時間。輸出是溫度值。

close all;

clear;

clc;

A=xlsread('201012~1.6(無公式).xlsx');

input_train=1:1:240;

%input_train=xlsread('201012~1.6(無公式).xlsx','A3:A242');

output_train=xlsread('201012~1.6(無公式).xlsx','B3:B242');

input_test=241:1:260;

%input_test=xlsread('201012~1.6(無公式).xlsx','A243:A262');

output_test=xlsread('201012~1.6(無公式).xlsx','B243:B262');

%建立BP神經網絡

NodeNum = 7 % 隐層節點數

TypeNum =1 ; % 輸出維數

Epochs =1000 ; % 訓練次數

TF1 = 'logsig'; %logsig tansig purelin

TF2 ='purelin'; %隐層輸出層

net = newff(minmax(input_train),[NodeNum TypeNum],{TF1 TF2},'trainlm');

net.trainParam.epochs = Epochs; % 最大訓練次數

net.trainParam.goal = 1e-10; % 最小均方誤差

net.trainParam.min_grad = 1e-20; % 最小梯度

net.trainParam.show = 200; % 訓練顯示間隔

%net.trainParam.time = inf; % 最大訓練時間

%神經網絡訓練

net = train(net,input_train,output_train);

%神經網絡預測輸出

an = sim(net,input_test);

figure; hold on;

plot(output_test,'o');

plot(an,'r*');

legend('實際測試','預測測試','FontSize',10);

title('測試集的實際和預測圖','FontSize',10);

----------------------------------------------------------

錯誤提示:

??? Error using ==> trainlm at 109 Inputs and targets have different numbers of samples.

Error in ==> network.train at 107 [net,tr] = feval(net.trainFcn,net,X,T,Xi,Ai,EW,net.trainParam);

Error in ==> BP at 29 net = train(net,input_train,output_train);

請問這是什麼意思?應該怎麼改?

[本帖最後由 zuibaob 于 2011-8-5 22:29 編輯]