我想做時間序列溫度的預測問題,已知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 編輯]