📄 inv_co.m
字号:
function [SSE,par,bias]=inv_co(inputs,centers,bases,output)%INV_CO inversion on the consequents for constant_output_models%% [norma,par,bias]=inv_co(inputs,centers,bases,output)%% SSE[1,1] Sum of the squeared errors% par[no_rules,1] parameters of the consequents% bias[1,1] shifts all the local models%% inputs[no_data,no_var]% centers[no_rules,no_var]% bases[no_rules,no_var]% output[no_data,1]%% The following global variable are required: % memb_fun: 'gaussian'/'triangular' % arch: 'weigthed'/'comb' % format_out: 'linear'/'constant' % model_bias: 'bias'/'no_bias'%_______________________________________________________9 April 1996____global memb_fun;global arch;global format_out;global model_bias;[no_data,no_var]=size(inputs);[no_rules,no_var]=size(centers);w=ones(no_data,no_rules); %Matrix of the degree of match of each %datum to the premise of each ruleSum_w=zeros(no_data,1);for i=1:no_rules for j=1:no_var if strcmp(memb_fun,'gaussian') match=exp(-((inputs(:,j)-centers(i,j)).^2)/bases(i,j)); end if strcmp(memb_fun,'triangular') match=max(0,ones(no_data,1)-2*abs(inputs(:,j)-centers(i,j))/bases(i,j)); end w(:,i)=w(:,i).*match; end Sum_w=Sum_w + w(:,i);endSum_w=Sum_w+(Sum_w==0);if strcmp(arch,'comb') X=w;endif strcmp(arch,'weigthed') normalizer=Sum_w*ones(1,no_rules); X=w./normalizer;endif strcmp(model_bias,'bias') A=[X,ones(no_data,1)]; tol=1e-9; par_and_bias=pinv(A,tol)*output; par=par_and_bias(1:no_rules,:); bias=par_and_bias(no_rules+1,:);endif strcmp(model_bias,'no_bias') A=X; tol=1e-9; par=pinv(A,tol)*output; bias=0;endSSE=sumsqr(output-X*par-bias);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -