LSTMを使わない時系列予測について
이전 댓글 표시
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개)
Hiro Yoshino
2019년 11월 11일
こちらご覧ください
fitrsvm(X,Y)
のYはn行1列のベクトルである必要があります。
카테고리
도움말 센터 및 File Exchange에서 サポート ベクター マシン回帰에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!