前些天把玩了一下MATLAB中神經網絡工具箱的使用,忽有“捫參歷井仰脅息”之感。別的倒是沒什么,只是神經網絡的數據組織結構有些“怪異”,要是不小心就會導致工具箱報錯。以下便是神經網絡工具箱的正確打開姿勢,謹供諸君參考:
先貼一個使用批處理命令調用神經網絡工具箱的方法:
P = [0.1515 0.1501 0.1509 0.1504 0.1504 0.1500
0.1515 0.1501 0.1509 0.1504 0.1504 0.1500
0.1515 0.1501 0.1500 0.1504 0.1504 0.1500
0.1515 0.1500 0.1509 0.1504 0.1504 0.1500
0.1515 0.1500 0.1509 0.1504 0.1504 0.1500
0.1515 0.1500 0.1509 0.1504 0.1504 0.1500
0.9684 0.2792 0.877 0.7426 0.7228 0.2272
0.9838 0.2941 0.9181 0.7977 0.7702 0.2452
0.9922 0.3101 0.9475 0.8445 0.8227 0.2665
0.9953 0.3058 0.9625 0.8708 0.8637 0.2624
0.9982 0.3242 0.9797 0.9089 0.9001 0.3008
0.9995 0.3469 0.9917 0.9314 0.9282 0.3678
0.9998 0.3565 0.9948 0.9493 0.9525 0.4500];
T= [0.1521
0.6949
0.7064
0.7083
0.7560
0.7807
0.8182
0.8533
0.8677
0.8459
0.8910
0.9269
0.9496];
P=P‘;T=T’;
ff=newff(P,T,13);
ff = train(ff,P,T);
Y1 = sim(ff,P);
cf=newcf(P,T,13);
cf.trainParam.epochs = 15000;
cf = train(cf,P,T);
Y2 = sim(cf,P);
plot(P,T,‘o-’);
hold on;
plot(P,Y1,‘^m-’);
plot(P,Y2,‘*-k’);
title(‘newff & newcf’)
legend(‘原始數據’,‘newff結果’,‘newcf結果’,0);
上面這個方法要注意P和T應該要先進行轉置,即神經網絡訓練樣本是矩陣的每一個列。
首先要做的自然是安裝MATLAB,這個步驟我就不過多描述了,請諸君自行參悟。打開后在命令行輸入:anfisedit ,然后就會出現如下的界面:
首先點擊第一個紅框中的“Load Data”按鈕來導入數據,可以從文件導入也可以從工作空間導入。這里要說明的是導入數據的格式,它必須滿足如下的要求:數據前面部分是系統輸入,后面部分是系統輸出。假設我們的系統是3輸入1輸出,那么數據就應該是:[x1,x2,x3,y]。
先導入系統所需的訓練數據(第一個紅框選的是數據類型為:Training)。導入數據后,工具箱會在相應位置打點,情況如下:
單擊“Edit”菜單下的“FIS Properties”選項,出現如下的界面:
這里必須要確保系統的輸入輸出和數據中的輸入輸出數據個數是相同的。如果不同可以通過該界面“Edit”菜單下的“Add Variable Input/Output”來添加輸入輸出,或“”來刪掉多余的輸入輸出。如下圖所示:
好到此為止系統的輸入輸出就調整完了,接下來需要對隸屬度函數的類型和數目進行設置。單擊上圖界面中“Edit”菜單下的“Membership Functions”選項。下圖是打開的對應界面:
單擊“Edit”出現如下的幾個選項:
選擇“Add MFs…”選項可以進行隸屬度函數的添加,添加界面如下:
主要有兩個選項,一個是隸屬度函數的類型,另一個是隸屬度函數的數量,這個就看各自的需求來決定了。
其它“Remove”開頭的選項負責刪除隸屬度函數的工作,若需要對規則進行修改也可以選擇“Rules”選項進入如下的界面。
將上述的參數都設置完成之后就可以回到圖1所示的主界面了,點擊“Generate FIS”來形成所需的模糊神經網絡系統,之后會彈出一個界面:
確認各個參數無誤后單擊“OK”即可。接下來在圖1的第3個紅框中設置訓練相關的參數:參數調整策略、目標誤差、訓練周期。這些沒有統一的標準,只有根據需求自己嘗試了。設置完成之后點擊“Train Now”,界面中會出現訓練相關情況:
我這里是隨便加載的一個數據集,情況不是太好,但相信意思還是表述清楚了。
到此為止系統就訓練完成了,接下來需要導入驗證數據進行驗證操作。在第一個紅框中,“Type”處選擇“Checking”導入相關數據。再在第四個紅框中選擇“Checking data”,單擊“Test Now”。出現類似如下的畫面:
到這里實驗可以說是做完了,但是工作并沒有做完,因為工具箱中的實驗結果數據貌似無法導出!不過問題不大,不能直接解決,那就通過間接的方式來搞定,正所謂“山不轉水轉”嘛。
選擇“File”菜單下“Export”選項將后綴名為.fis的訓練模型保存,如下:
然后再在MATLAB命令行中輸入命令:
ANFIS=readfis(‘.fis的文件路徑’);%讀入一個ANFIS結構
out=evalfis(Data,ANFIS);%對模型系統做出數據驗證
這樣就可以從“out”數據集中得知模型系統的預測結果,從而當然也可以進一步計算相關的性能指標了。
評論