模糊神经网络学习1【基础案例】
生活随笔
收集整理的這篇文章主要介紹了
模糊神经网络学习1【基础案例】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. MATLAB模糊神經網絡GUI 打開方式:
anfisedit2. 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)3. 基礎案例
%% demo1 *** 自動生成默認初始FIS load fuzex1trnData.dat %單輸入輸出數據集fis = anfis(fuzex1trnData); % 自動生成輸出FIS:默認grid partition方法,2個隸屬度x = fuzex1trnData(:,1); anfisOutput = evalfis(fis,x); %使用訓練好的結構進行推理 plot(x,fuzex1trnData(:,2),'*r',x,anfisOutput,'.b') legend('Training Data','ANFIS Output','Location','NorthWest')?
?
%% demo2 *** anfisOptions指定:模糊隸屬函數個數為4;迭代次數為40 opt = anfisOptions('InitialFIS',4,'EpochNumber',40); opt.DisplayErrorValues = 0; opt.DisplayStepSize = 0;fis = anfis(fuzex1trnData,opt); %-----2 通過anfisOptions指定anfisOutput = evalfis(fis,x); figure plot(x,fuzex1trnData(:,2),'*r',x,anfisOutput,'.b') legend('Training Data','ANFIS Output','Location','NorthWest') %% demo3 *** genfis創建初始FIS x = (0:0.1:10)'; y = sin(2*x)./exp(x/5);%定義初始ANFIS結構 genOpt = genfisOptions('GridPartition'); % 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)顯示訓練結果 opt.ValidationData = chkData;%chkData 驗證數據集 %按照設置的選項訓練ANFIS outFIS = anfis([x y],opt);%圖形化顯示 plot(x,y,x,evalfis(outFIS,x)) legend('Training Data','ANFIS Output') %% demo4 *** 進行數據驗證防止過度擬合 load fuzex1trnData.dat %導入訓練數據 load fuzex1chkData.dat %導入驗證數據% 設定訓練結構 4 membership functions;30 training epochs opt = anfisOptions('InitialFIS',4,'EpochNumber',30); opt.DisplayANFISInformation = 0; opt.DisplayErrorValues = 0; opt.DisplayStepSize = 0; opt.DisplayFinalResults = 0; % 設置驗證數據集 fuzex1chkData; opt.ValidationData = fuzex1chkData;[fis,trainError,stepSize,chkFIS,chkError] = anfis(fuzex1trnData,opt); %每個訓練迭代步記錄的 訓練誤差trainError, 驗證誤差 繪圖 x = [1:30]; % 迭代次序 plot(x,trainError,'.b',x,chkError,'*r')?在迭代次數為17時,驗證誤差(紅)最小,chkFIS為17時的參數,17后為過度擬合,
參考:https://ww2.mathworks.cn/help/fuzzy/anfisoptions.html#namevaluepairs
總結
以上是生活随笔為你收集整理的模糊神经网络学习1【基础案例】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微型计算机2018年还出增刊吗,过刊浏览
- 下一篇: 夸人只夸一厘米