1. 程式人生 > >MATLAB中模糊神經網路工具箱的使用

MATLAB中模糊神經網路工具箱的使用

前些天小師妹(好吧,我向政府和人民坦白,小師妹是我虛構的)向我請教MATLAB裡模糊神經網路工具箱的使用方法,說是沒有搜尋到好的教程。正所謂‘勿以善小而不為’,‘ 我不入地獄誰愛入誰入’,‘天下興亡匹夫有責’,正直善良的我自然要雙手奉上相關操作經驗,又豈敢藏私。

首先要做的自然是安裝MATLAB,這個步驟我就不過多描述了,請諸君自行參悟。開啟後在命令列輸入:anfisedit ,然後就會出現如下的介面:

圖1

首先點選第一個紅框中的“Load Data”按鈕來匯入資料,可以從檔案匯入也可以從工作空間匯入。這裡要說明的是匯入資料的格式,它必須滿足如下的要求:資料前面部分是系統輸入,後面部分是系統輸出。假設我們的系統是3輸入1輸出,那麼資料就應該是:[x1,x2,x3,y]。

先匯入系統所需的訓練資料(第一個紅框選的是資料型別為:Training)。匯入資料後,工具箱會在相應位置打點,情況如下:


圖2

單擊“Edit”選單下的“FIS Properties”選項,出現如下的介面:


圖3

這裡必須要確保系統的輸入輸出和資料中的輸入輸出資料個數是相同的。如果不同可以通過該介面“Edit”選單下的“Add Variable Input/Output”來新增輸入輸出,或“”來刪掉多餘的輸入輸出。如下圖所示:

圖4
圖5

好到此為止系統的輸入輸出就調整完了,接下來需要對隸屬度函式的型別和數目進行設定。單擊上圖介面中“Edit”選單下的“Membership Functions”選項。下圖是開啟的對應介面:

圖6

單擊“Edit”出現如下的幾個選項:

圖7

選擇“Add MFs…”選項可以進行隸屬度函式的新增,新增介面如下:

圖8

主要有兩個選項,一個是隸屬度函式的型別,另一個是隸屬度函式的數量,這個就看各自的需求來決定了。

其它“Remove”開頭的選項負責刪除隸屬度函式的工作,若需要對規則進行修改也可以選擇“Rules”選項進入如下的介面。

圖9

將上述的引數都設定完成之後就可以回到圖1所示的主介面了,點選“Generate FIS”來形成所需的模糊神經網路系統,之後會彈出一個介面:

圖10

確認各個引數無誤後單擊“OK”即可。接下來在圖1的第3個紅框中設定訓練相關的引數:引數調整策略、目標誤差、訓練週期。這些沒有統一的標準,只有根據需求自己嘗試了。設定完成之後點選“Train Now”,介面中會出現訓練相關情況:

圖11

我這裡是隨便載入的一個數據集,情況不是太好,但相信意思還是表述清楚了。

到此為止系統就訓練完成了,接下來需要匯入驗證資料進行驗證操作。在第一個紅框中,“Type”處選擇“Checking”匯入相關資料。再在第四個紅框中選擇“Checking data”,單擊“Test Now”。出現類似如下的畫面:

圖12

到這裡實驗可以說是做完了,但是工作並沒有做完,因為工具箱中的實驗結果資料貌似無法匯出!不過問題不大,不能直接解決,那就通過間接的方式來搞定,正所謂“山不轉水轉”嘛。

選擇“File”選單下“Export”選項將字尾名為.fis的訓練模型儲存,如下:

圖13

然後再在MATLAB命令列中輸入命令:

ANFIS=readfis(‘.fis的檔案路徑’);%讀入一個ANFIS結構

out=evalfis(Data,ANFIS);%對模型系統做出資料驗證

這樣就可以從“out”資料集中得知模型系統的預測結果,從而當然也可以進一步計算相關的效能指標了。