私は3日間連続してデータを使用して神経ネットワークをトレーニングし、4日目のデータでテストします。この例の値はランダムに選択され、現実とは関係がありません。私は温度と太陽放射に応じて、ニューラルネットワークに電流を知りたい。カスケードフォワードバックプロパゲーションネットワーク用の複数のトレーニングデータ
%% initialize data for training
Temperature_Day1 = [25 26 27 26 25];
Temperature_Day2 = [25 24 24 23 24];
Temperature_Day3 = [21 20 22 21 20];
SolarRadiation_Day1 = [990 944 970 999 962];
SolarRadiation_Day2 = [993 947 973 996 967];
SolarRadiation_Day3 = [993 948 973 998 965];
Current_Day1 = [0.11 0.44 0.44 0.45 0.56];
Current_Day2 = [0.41 0.34 0.43 0.55 0.75];
Current_Day3 = [0.34 0.98 0.34 0.76 0.71];
Day1 = [Temperature_Day1; SolarRadiation_Day1]; % 2-by-5
Day2 = [Temperature_Day2; SolarRadiation_Day2]; % 2-by-5
Day3 = [Temperature_Day3; SolarRadiation_Day3]; % 2-by-5
%% training input and training target
Training_Input = [Day1; Day2; Day3]; % 6-by-5
Training_Target = [Current_Day1; Current_Day2; Current_Day3]; % 3-by-5
%% training the network
hiddenLayers= 2;
net = newcf(Training_Input, Training_Target, hiddenLayers);
y = sim(net, Training_Input);
net.trainParam.epochs = 100;
net = train(net, Training_Input, Training_Target);
%% initialize data for prediction
Temperature_Day4 = [45 23 22 11 24];
SolarRadiation_Day4 = [960 984 980 993 967];
Current_Day4 = [0.14 0.48 0.37 0.46 0.77];
Day4 = [Temperature_Day4; SolarRadiation_Day4]; % 2-by-5
Test_Input = [Day4; Day4; Day4]; % same dimension as Training_Input; subject to question
%% prediction
Predicted_Target = sim(net, Test_Input); % yields 3-by-5
私の質問は:どのように私は3日間のデータでそれを訓練してから4日目の目標を予測していますか?トレーニングとテストの入力は同じ次元でなければならないので、どのようにして1日だけテストするのですか?ここでは、テスト入力の3つの同じデータセットを連結するだけで解決します。しかし、これはまた、予測されたターゲットに対して3つの異なるデータセットをもたらす。
ここには正しい方法がありますか?
私はこのタイプの質問を何度も見てきましたが、問題の性質を考慮せずにテスト入力の寸法を変更することを常に提案しているため、答えは決して満足できません。テスト用に利用可能)。だから、これを重複としてマークしないでください。
私は仮定温度、日射量、および電流に関するデータは、あらかじめ定義された時間間隔で取得され、読み値の時間をフィーチャとして正確に保持したいと考えていますか? – beaker
はい、そうです。私のオリジナルのコードでは、毎日サンプルがはるかに多いですが、簡単にするためにサンプルを減らしています。 –