LSTMを使わない時系列予測について
Show older comments
LSTM以外で時系列(sequence-to-sequence)予測を行ってみたいと思っています。
最終的には
pressure_data_20190326_1.xlsx上のサイクル番号1~271の時系列データ(B5~JL1444)を
サポートベクター回帰を用いて学習させ残りのサイクル番号272~300(JM5~KO1444)まで
の各サイクルにおける時系列データを予測し、LSTMで行った場合と比較検討しようと考えています。
まず前半のサポートベクター回帰に学習のところまでコードを書いて実行したところ
svmMdl=fitrsvm(tbl.Var1,tbl.Var2);
の行で「XとYの観測数が同じではない」などのエラーが出ます。
そこでどこをどう修正したほうがよいのか、またはこの条件では不可能なのかを教えていただきたいです。
%ファイルの読み込み 行列の縦がその周期内での時系列変化で横が各周期をあらわす
opts = detectImportOptions('pressure_data_Kusaka_Lab_20190326_1.xlsx','DataRange','B5');
T1=readtable('pressure_data_Kusaka_Lab_20190326_1.xlsx',opts,'ReadVariableNames',false);
T1_data = T1.Variables;
%1行N列の配列へ
for i=1:300
T1_array{i}=T1_data(1:end,i)'; %縦の数値を一塊とした新たな配列へ
end
%転置
T1_a=(T1_array)';
%シーケンスの最初の90%で学習を行い残りの10%でテストする
numTimeStepsTrain = floor(0.9*numel(T1_a));
T1Train = T1_a(1:numTimeStepsTrain+1);
T1Test = T1_a(numTimeStepsTrain+1:end);
XT1Train=T1Train(1:end-1); %入力 エクセルファイル上ではB5~JK1444までの数値相当
YT1Train=T1Train(2:end); %応答 エクセルファイル上ではC5~JL1444までの数値相当
tbl=cell2table([XT1Train YT1Train]); %fitrsvmを通すためにcell型からtable型へ
svmMdl=fitrsvm(tbl.Var1,tbl.Var2);
1 Comment
Naoto Iwaki
on 11 Nov 2019
Accepted Answer
More Answers (1)
Hiro Yoshino
on 11 Nov 2019
こちらご覧ください
fitrsvm(X,Y)
のYはn行1列のベクトルである必要があります。
Categories
Find more on サポート ベクター マシン回帰 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!