用matlab神經網路工具箱構建RBF神經網路,跪求源程式

2021-07-02 05:00:14 字數 5960 閱讀 3658

1樓:匿名使用者

你幹什麼用啊

是模式分類?

要是得話我有原始碼不過是用 matlab 工具箱寫的要嗎

2樓:快來下啊

希望對您有用

clcclear

close all

% 產生訓練樣本與測試樣本,每一列為一個樣本

p1 = [rand(3,5),rand(3,5)+1,rand(3,5)+2];

t1 = [repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)];

p2 = [rand(3,5),rand(3,5)+1,rand(3,5)+2];

t2 = [repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)];

% 歸一化

[pn1,minp,maxp] = premnmx(p1);

pn2 = tramnmx(p2,minp,maxp);

% 訓練

switch 2

case 1

% 神經元數是訓練樣本個數

spread = 1; % 此值越大,覆蓋的函式值就大(預設為1)

net = newrbe(pn1,t1,spread);

case 2

% 神經元數逐步增加,最多就是訓練樣本個數

goal = 1e-4; % 訓練誤差的平方和(預設為0)

spread = 1; % 此值越大,需要的神經元就越少(預設為1)

mn = size(pn1,2); % 最大神經元數(預設為訓練樣本個數)

df = 1; % 顯示間隔(預設為25)

net = newrb(pn1,t1,goal,spread,mn,df);

case 3

spread = 1; % 此值越大,需要的神經元就越少(預設為1)

net = newgrnn(pn1,t1,spread);

end% 測試

y1 = sim(net,pn1); % 訓練樣本實際輸出

y2 = sim(net,pn2); % 測試樣本實際輸出

y1 = full(compet(y1)); % 競爭輸出

y2 = full(compet(y2));

% 結果統計

result = ~sum(abs(t1-y1)) % 正確分類顯示為1

percent1 = sum(result)/length(result) % 訓練樣本正確分類率

result = ~sum(abs(t2-y2)) % 正確分類顯示為1

percent2 = sum(result)/length(result) % 測試樣本正確分類率

matlab中用rbf神經網路做**的**怎麼寫

3樓:會飛的小兔子

clc;

clearall;

closeall;

%%----buildatrainingsetofasimilarversionofxor

c_1=[00];

c_2=[11];

c_3=[01];

c_4=[10];

n_l1=20;%numberoflabel1

n_l2=20;%numberoflabel2

a=zeros(n_l1*2,3);

a(:,3)=1;

b=zeros(n_l2*2,3);

b(:,3)=0;

%createrandompoints

fori=1:n_l1

a(i,1:2)=c_1+rand(1,2)/2;

a(i+n_l1,1:2)=c_2+rand(1,2)/2;

endfori=1:n_l2

b(i,1:2)=c_3+rand(1,2)/2;

b(i+n_l2,1:2)=c_4+rand(1,2)/2;

end%showpoints

scatter(a(:,1),a(:,2),,'r');

holdon

scatter(b(:,1),b(:,2),,'g');

x=[a;b];

data=x(:,1:2);

label=x(:,3);

%%usingkmeanstofindcintervector

n_center_vec=10;

rng(1);

[idx,c]=kmeans(data,n_center_vec);

holdon

scatter(c(:,1),c(:,2),'b','linewidth',2);

%%calulatesigma

n_data=size(x,1);

%calculatek

k=zeros(n_center_vec,1);

fori=1:n_center_vec

k(i)=numel(find(idx==i));

%thencalucatesigma

sigma=zeros(n_center_vec,1);

fori=1:n_center_vec

[n,d]=knnsearch(data,c(i,:),'k',k(i));

l2=(bsxfun(@minus,data(n,:),c(i,:)).^2);

l2=sum(l2(:));

sigma(i)=sqrt(1/k(i)*l2);

end%%calutateweights

%kernelmatrix

k_mat=zeros(n_data,n_center_vec);

fori=1:n_center_vec

r=bsxfun(@minus,data,c(i,:)).^2;

r=sum(r,2);

k_mat(:,i)=exp((-r.^2)/(2*sigma(i)^2));

endw=pinv(k_mat'*k_mat)*k_mat'*label;

y=k_mat*w;

%y(y>=0.5)=1;

%y(y<0.5)=0;

%%trainingfunctionandpredictfunction

[w1,sigma1,c1]=rbf_training(data,label,10);

y1=rbf_predict(data,w,sigma,c1);

[w2,sigma2,c2]=lazyrbf_training(data,label,2);

y2=rbf_predict(data,w2,sigma2,c2);

擴充套件資料

matlab的特點

1、具有完備的圖形處理功能,實現計算結果和程式設計的視覺化;

2、友好的使用者介面及接近數學表示式的自然化語言,使學者易於學習和掌握;

3、功能豐富的應用工具箱(如訊號處理工具箱、通訊工具箱等) ,為使用者提供了大量方便實用的處理工具。

4樓:萬同堂

%rbf**模型

t_data=[0.1 0.68668 0.67143 0.79999 0.79091 0.40004;

0.36667 0.58001 0.1 0.7 0.71818 0.20001;

0.26 0.47334 0.1 0.29997 0.2091 0.80009;

0.36667 0.9 0.9 0.29997 0.13637 0.37504;

0.26 0.84668 0.67143 0.1 0.42727 0.37504;

0.36667 0.58001 0.44286 0.49999 0.1 0.55006;

0.15333 0.47334 0.44286 0.7 0.42727 0.60006;

0.1 0.84668 0.67143 0.29997 0.5 0.1;

0.15333 0.42 0.21429 0.49999 0.5 0.55006;

0.20667 0.79335 0.21429 0.59999 0.5 0.32503;

0.1 0.42 0.21429 0.9 0.5 0.45005;

0.1 0.84668 0.32857 0.59999 0.5 0.27502;

0.20667 0.47334 0.32857 0.29997 0.13637 0.50005;

0.1 0.68668 0.67143 0.49999 0.24546 0.20001;

0.42 0.58001 0.21429 0.9 0.9 0.42504;

0.31334 0.58001 0.44286 0.49999 0.31818 0.25002;

0.15333 0.42 0.1 0.19999 0.35454 0.55006;

0.20667 0.47334 0.32857 0.29997 0.31818 0.27502;

0.15333 0.68668 0.44286 0.29997 0.31818 0.40004;

0.20667 0.20667 0.21429 0.39999 0.28183 0.52506;

0.26 0.79335 0.21429 0.49999 0.57273 0.9;

0.42 0.36667 0.1 0.59999 0.35454 0.30003;

0.47334 0.36667 0.1 0.59999 0.57273 0.35003;

0.1 0.47334 0.67143 0.7 0.42727 0.49894;

0.42 0.58001 0.67143 0.49999 0.24546 0.47505;

0.31334 0.1 0.32857 0.9 0.79091 0.8501;

0.1 0.52667 0.21429 0.9 0.5 0.50005;

0.52667 0.55867 0.21429 0.1 0.28183 0.42504;

0.9 0.58001 0.55715 0.1 0.17273 0.32503;

0.15333 0.68668 0.62572 0.29997 0.2091 0.57506];

%初始化資料

tt=t_data(:,6);x=t_data(:,1:5);tt=tt';

%隨機選取中心

c=x;

%定義delta平方為樣本各點的協方差之和

delta=cov(x');

delta=sum(delta);

%隱含層輸出r

for i=1:1:30

for j=1:1:30

r(i,j)=((x(i,:)-c(j,:)))*((x(i,:)-c(j,:))');

r(i,j)=exp(-r(i,j)./delta(j));

endend

p=r;

%建模%r=radbas(p);

err_goal=0.001;

sc=3;

net=newrb(p,tt,err_goal,sc,200,1);

%測試ty=sim(net,p);

te=tt-ty;

tsse=sse(te);

tmse=mse(te);

%**(測試)曲線

figure;

plot(tt,'-+');

hold on;

plot(ty,'r:*');

legend('化驗值','**值');

title('rbf網路模型輸出**曲線');

xlabel('輸入樣本點');

ylabel('澱粉利用率');

axis([1,30,0,1]);

怎樣用python構建卷積神經網路

用keras框架較為方便 首先安裝anaconda,然後通過pip安裝keras 以下 wphh的部落格。coding utf 8 gpu run command theano flags mode fast run,device gpu,floatx float32 python cnn.py c...

在神經網路中weight decay起到的做用是什麼?momentum

主要還是是regularize,壓制過擬合。momentum是什麼意思及用法 體弱,需要復關心和照顧制.帶著我們的 孩子,去關心照顧我們的老人,是對孩子最好的教育.常回家看看,哪怕是幫媽媽洗個碗.可憐天下父母心.母親只知道奉獻,不知索取,只知節儉,不知享受.母愛是擋雨的巨傘,母愛是參天的大樹,母愛是...

執行MATLABBP神經網路後,得到了誤差曲線mse

代表檢驗這個網路的訓練結果。mse表示均方差,當然越小越好。但是這與你訓練樣本的多少,訓練次數都有很大關係。這個其實沒有統一的標準,任何人都知道0偏差當然是最好。但是根絕神經網路本身致命的缺陷,由於它是迭代收斂逼近解析式,所以不可能達到0誤差。這隻有根據使用者的工程技術要求來加以判斷,這個誤差指標肯...