Matlab 時間序列數據預處理(preparets 函數的應用)


preparets

為神經網絡模擬或訓練准備輸入(input x)和目標(target y)時間序列數據
 
[Xs,Xi,Ai,Ts,EWs,shift] = preparets(net,Xnf,Tnf,Tf,EW)
 
net 神經網絡
Xnf 輸入數據(無反饋)
Tnf 目標數據(無反饋)
Tf  目標數據(有反饋)
 
Xs  轉換后的輸入數據
Xi  延遲狀態的第一個輸入項
Ai  延遲狀態的第一個層
Ts  轉換后的目標數據
EWs 轉換后的誤差權重
shift  從X和T前面截斷的時間步數,以便適當地填充Xi和Ai
 
以 NARX 網絡為例,代碼如下
 
[X,T] = simplenarx_dataset;
net = narxnet(1:2,1:2,20);    % 這種情況一般用於模型的訓練
[Xs,Xi,Ai,Ts] = preparets(net,X,{},T);
net = train(net,Xs,Ts,Xi,Ai);
view(net)
y = net(Xs,Xi,Ai);
 
在此狀態下,設 X共有3165組元素,則T共有3165組元素
Xs 共有兩類各3163(3165-2)組元素,第一類對應 X(3:3165)第二類對應T(3:3165)
Xi  共有兩類各2組元素,第一類對應 X(1:2)第二類對應T(1:2)
Ai 為空
Ts 共有3163組元素,對應T(3:3165)
 
netc = closeloop(net);    % 將神經網絡設置為閉環
netc.name = [net.name ' - Closed Loop'];
view(netc)
[xc,xic,aic,tc] = preparets(netc,X,{},T);
 
在此狀態下:
xc 共有3163(3165-2)組元素,對應 X(3:3165)
xic 共有2組元素,對應 X(1:2)
aic 為兩組元素,含義不明
tc 共有3163組元素,對應T(3:3165)
 
nets = removedelay(net);  % 神經網絡設置為開環,且可進行預測
nets.name = [net.name ' - Predict One Step Ahead'];
view(nets)
[xs,xis,ais,ts] = preparets(nets,X,{},T);

在此狀態下:
xs 共有兩類各3164(3165-1)組元素,第一類對應 X(2:3165)第二類對應T(2:3165)
xis  共有兩類各1組元素,第一類對應 X(1:1)第二類對應T(1:1)
ais 為空
ts 共有3164組元素,對應T(3:3165+1),最后一組為NaN
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM