Matlab のファジー ツールボックスを使用して、検証セットのエラーを計算しようとしています。最初の相互検証は、最初のトレーニング データをトレーニング セットとテスト (検証) セットに分割するために使用されます。ただし、この検証フェーズでは、genfis3 関数のさまざまなパラメーター設定に対してもエラーを取得したいと考えています。この関数の 4 番目の入力を 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)