2
使用Matlab中的模糊工具箱,我嘗試計算驗證集上的錯誤。首先使用交叉驗證將訓練和測試(驗證)集合中的初始訓練數據分開。然而,在這個驗證階段,我還想獲得genfis3函數中不同參數設置的錯誤。我想將此函數中的第四個輸入從2改爲10,並計算平均誤差。嵌套循環模糊邏輯驗證
fismat3 = genfis3(X1,Y1,'sugeno',2);
整個代碼:
[m,~]=size(dataTrain);
CVO = cvpartition(m,'k',10);
err = zeros(CVO.NumTestSets,1);
for i = 1:CVO.NumTestSets
trIdx = CVO.training(i);
teIdx = CVO.test(i);
X1=Xtrain(trIdx,:);
X2=Xtrain(teIdx,:);
Y1=Ytrain(trIdx,:);
Y2=Ytrain(teIdx,:);
fismat3 = genfis3(X1,Y1,'sugeno',2);
fismat3 = anfis([X1,Y1],fismat3);
out1=evalfis(X2,fismat3);
ee=Y2-out1;
err(i)=mean(abs(ee));
end
Error32 = mean(err)