⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 examofrbf.m

📁 RBF神经网络应用于IRIS数据集的例子
💻 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 + -