📄 examofrbf.m
字号:
close allclearclcSamNum=100;TestSamNum=101;InDim=1;ClusterNum=10;Overlap=1.0;%根据目标函数获得样本输入输出rand('state',sum(100*clock)); %Resets it to a different state each time.NoiseVar=0.1;Noise=NoiseVar*randn(1,SamNum);SamIn=8*rand(1,SamNum)-4;SamOutNoNoise=1.1*(1-SamIn+2*SamIn.^2).*exp(-0.5*SamIn.^2);SamOut=SamOutNoNoise;TestSamIn=-4:0.08:4;TestSamOut=1.1*(1-TestSamIn+2*TestSamIn.^2).*exp(-0.5*TestSamIn.^2);figure(1)gridplot(SamIn,SamOut,'k+')xlabel('Input x')ylabel('Output y')figure(2)gridplot(TestSamIn,TestSamOut,'k-')xlabel('Input x')ylabel('Output y')figure(3)gridhold onplot(SamIn,SamOut,'k+')plot(TestSamIn,TestSamOut,'k-')xlabel('Input x')ylabel('Output y')hold offCenters=SamIn(1:ClusterNum);NumberInClusters=zeros(ClusterNum,1);IndexInClusters=zeros(ClusterNum,SamNum);while 1 NumberInClusters=zeros(ClusterNum,1); IndexInClusters=zeros(ClusterNum,SamNum); for i=1:SamNum AllDistance=dist(Centers',SamIn(i)); [MinDist,Pos]=min(AllDistance); NumberInClusters(Pos)=NumberInClusters(Pos)+1; IndexInClusters(Pos,NumberInClusters(Pos))=i; end OldCenters=Centers; for i=1:ClusterNum Index=IndexInClusters(i,1:NumberInClusters(i)); Centers(:,i)=mean(SamIn(:,Index)')'; end EqualNum=sum(sum(Centers==OldCenters)); if EqualNum==InDim*ClusterNum break endendAllDistances=dist(Centers',Centers);Maximum=max(max(AllDistances));for i=1:ClusterNum AllDistances(i,i)=Maximum+1;endSpreads=Overlap*min(AllDistances)';Distance=dist(Centers',SamIn);SpreadsMat=repmat(Spreads,1,SamNum);HiddenUnitOut=radbas(Distance./SpreadsMat);HiddenUnitOutEx=[HiddenUnitOut' ones(SamNum,1)]';W2Ex=SamOut*pinv(HiddenUnitOutEx);W2=W2Ex(1:ClusterNum);B2=W2Ex(ClusterNum+1);TestDistance=dist(Centers',TestSamIn);TestSpreadsMat=repmat(Spreads,1,TestSamNum);TestHiddenUnitOut=radbas(TestDistance./TestSpreadsMat);TestNNOut=W2*TestHiddenUnitOut+B2;figure(4)plot(TestSamIn,TestNNOut,'k-');display(W2);display(B2);figure(5)hold on plot(TestSamIn,TestNNOut-TestSamOut,'r-');plot(TestSamIn,TestSamOut,'c-')plot(TestSamIn,TestNNOut,'b-');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -