ANFIS學習筆記(二)
ANFIS學習筆記(二)
matlab自帶ANFIS工具箱介紹
上一章主要介紹了ANFIS的起源、模型以及演算法部分,這裡介紹一下matlab自帶的ANFIS工具箱的使用,詳情可參照help center中的介紹(貌似要翻牆???)。
ANFIS工具箱語法
ANFIS語法目前有以下5種。
fis=anfis(trainingData)
fis=anfis(trainingData,options)
[fis,trainError]=anfis(___)
[fis,trainError,stepSize] = anfis(___)
[fis,trainError,stepSize,chkFIS,chkError] = anfis(trainingData,options)
注意這裡的trainingData的形式為[x,y],x為訓練樣本,y為對應的標籤。
語法說明
fis = anfis(trainingData) 生成一個生成一個單輸出的Sugeno模糊推理系統(FIS),並使用指定的輸入/輸出訓練資料調整系統引數。需要注意的是這個訓練演算法結合**最小二乘法和反向傳播梯度下降法(GD-LSE)**對訓練資料集進行建模。
fis = anfis(trainingData,options) 使用指定的訓練資料和選項對FIS進行優化。
x = (0:0.1:10)';
y = sin(2*x)./exp(x/5);
%定義ANFIS結構
genOpt = genfisOptions('GridPartition');
genOpt.NumMembershipFunctions = 5;%隸屬函式個數為5
genOpt.InputMembershipFunctionType = 'gaussmf';%使用高斯隸屬函式
inFIS = genfis(x,y,genOpt);
%配置選項
opt = anfisOptions('InitialFIS',inFIS);
opt.DisplayANFISInformation = 0;%是(1)否(0)顯示ANFIS訓練資訊
opt.DisplayErrorValues = 0;%是(1)否(0)顯示ANFIS目標訓練誤差
opt.DisplayStepSize = 0;%是(1)否(0)顯示訓練步長
opt.DisplayFinalResults = 0;%是(1)否(0)顯示訓練結果
%按照設定的選項訓練ANFIS
outFIS = anfis([x y],opt);
%圖形化顯示
plot(x,y,x,evalfis(outFIS,x))
legend('Training Data','ANFIS Output')
執行結果如下:
對於anfisOptions引數的說明:
- ‘InitialFIS’:隸屬函式個數,default 2|正整數|正向量|FIS structure(genfis的輸出)
- ‘EpochNumber’:最大迭代次數,default 10|正整數
- ‘ErrorGoal’:目標訓練誤差,default 0
- ‘InitialStepSize’:訓練步長,default 0.01
- ‘StepSizeDecreaseRate’:步長減小率,default 0.9
- ‘StepSizeIncreaseRate’:步長增長率,default 1.1
[fis,trainError,stepSize] = anfis(___)和前面類似,返回fis以及每個epoch的訓練誤差和步長(array形式)。
[fis,trainError,stepSize,chkFIS,chkError] = anfis(trainingData,options)
用訓練資料集trainingData訓練後,在opt中加入驗證資料集,返回訓練fis、訓練誤差、步長、驗證fis、驗證誤差。
加驗證資料集的具體方法:在前面程式碼中配置選項後面加上:
opt.ValidationData = chkData;%chkData為你要加的驗證資料集
至此,基礎的ANFIS介紹結束,這篇介紹matlab自帶ANFIS工具箱的參考網址如下,還是建議去看一看。
https://ww2.mathworks.cn/help/fuzzy/anfis.html#bvnmr5c-1
https://ww2.mathworks.cn/help/fuzzy/anfisoptions.html#namevaluepairs
相關文章
- ANFIS學習筆記(一)筆記
- React 學習筆記【二】React筆記
- TensorFlow學習筆記(二)筆記
- vue學習筆記二Vue筆記
- goLang學習筆記(二)Golang筆記
- activiti學習筆記二筆記
- Typescript學習筆記(二)TypeScript筆記
- python學習筆記(二)Python筆記
- TS學習筆記(二)筆記
- JavaScript學習筆記(二)JavaScript筆記
- Hibernate學習筆記二筆記
- Vue學習筆記(二)------axios學習Vue筆記iOS
- Java學習筆記記錄(二)Java筆記
- 高等數學學習筆記(二)筆記
- 深度學習 DEEP LEARNING 學習筆記(二)深度學習筆記
- Spring MVC學習筆記二SpringMVC筆記
- TS學習筆記(二):介面筆記
- github--學習筆記(二)Github筆記
- react native學習筆記(二)React Native筆記
- orientDB學習筆記(二)MATCH筆記
- 智慧窗-學習筆記(二)筆記
- [寒假學習筆記](二)Python初學筆記Python
- HTML入門學習筆記(二)HTML筆記
- Kafka 學習筆記(二) :初探 KafkaKafka筆記
- JDBC與JavaBean學習筆記(二)JDBCJavaBean筆記
- 架構學習筆記系列二架構筆記
- ES6 學習筆記二筆記
- javascript學習筆記,二、變數JavaScript筆記變數
- MySQL高階學習筆記(二)MySql筆記
- 二項式反演學習筆記筆記
- Kafka學習筆記(二) :初探KafkaKafka筆記
- Laravel 學習筆記二: Blade模板Laravel筆記
- wqs二分學習筆記筆記
- XXL-JOB學習筆記(二)筆記
- 二叉樹學習筆記二叉樹筆記
- python爬蟲學習筆記(二)Python爬蟲筆記
- 線性代數學習筆記(二)+貪心學習筆記(一)(2024.10.5)筆記
- Vue 學習筆記 (二) -- 使用 VueCli 3Vue筆記