當前位置:首頁 » 代碼百科 » 股票代碼KRBF
擴展閱讀
中國的造船類股票b股 2025-06-25 05:34:53
中國的股票最主要看什麼 2025-06-25 03:42:58
股票外匯數據交易平台 2025-06-25 00:53:23

股票代碼KRBF

發布時間: 2021-07-18 22:02:14

『壹』 RBF神經網路和BP神經網路,matlab代碼有什麼區別

clear all
clc %清除命令窗口
load Data-Ass2;
d=data'; %求轉置
dat=d(1:2500,1:2);
labels=d(1:2500,3);

inputNums=2; %輸入層節點
outputNums=1; %輸出層節點 許多情況下直接用1表示
hideNums=10; %隱層節點數
maxcount=1000; %最大迭代次數
samplenum=2500; %一個計數器,無意義
precision=0.001; %預設精度
alpha=0.01; %學習率設定值
a=0.5; %BP優化演算法的一個設定值,對上組訓練的調整值按比例修改
error=zeros(1,maxcount+1); %error數組初始化;目的是預分配內存空間
errorp=zeros(1,samplenum); %同上
w=rand(hideNums,outputNums); %10*3;w表隱層到輸出層的權值

%求聚類中心
[Idx,C]=kmeans(dat,hideNums);
%X 2500*2的數據矩陣
%K 表示將X劃分為幾類
%Idx 2500*1的向量,存儲的是每個點的聚類標號
%C 10*2的矩陣,存儲的是K個聚類質心位置

%求擴展常數
dd=zeros(1,10);
for i=1:10
dmin=10000;
for j=1:10
ddd=(C(i,1)-C(j,1))^2+(C(i,2)-C(j,2))^2;
if(ddd<dmin&&i~=j)
dmin=ddd;
end
end
dd(i)=dmin;
end

%b為進行計算後隱含層的輸入矩陣
b=zeros(2500,10);
for i=1:2500
for j=1:10
b(i,j)=exp( -( (dat(i,1)-C(j,1))^2+(dat(i,2)-C(j,2))^2 )/(2*dd(j)) );%dd為擴展常數
end
end

count=1;
while (count<=maxcount) %結束條件1迭代1000次

c=1;
while (c<=samplenum)%對於每個樣本輸入,計算輸出,進行一次BP訓練,samplenum為2500

%o輸出的值
double o;
o=0.0;
for i=1:hideNums
o=o+b(c,i)*w(i,1);
end

%反饋/修改;
errortmp=0.0;
errortmp=errortmp+(labels(c,1)-o)^2; % 第一組訓練後的誤差計算
errorp(c)=0.5*errortmp;
yitao=labels(c,1)-o; %輸出層誤差
for i=1:hideNums %調節到每個隱藏點到輸出點的權重
w(i,1)=w(i,1)+alpha*yitao*b(c,i);%權值調整
end

c=c+1; %輸入下一個樣本數據
end %第二個while結束;表示一次訓練結束

%求最後一次迭代的誤差
double tmp;
tmp=0.0; %字串8
for i=1:samplenum
tmp=tmp+errorp(i)*errorp(i);%誤差求和
end
tmp=tmp/c;
error(count)=sqrt(tmp);%求迭代第count輪的誤差求均方根,即精度
if (error(count)<precision)%另一個結束條件
break;
end
count=count+1;%訓練次數加1
end

%測試
test=zeros(500,10);
for i=2501:3000
for j=1:10
test(i-2500,j)=exp( -( (d(i,1)-C(j,1))^2+(d(i,2)-C(j,2))^2 )/(2*dd(j)) );%dd為擴展常數
end
end

count=0;
for i=2501:3000
net=0.0;
for j=1:hideNums
net=net+test(i-2500,j)*w(j,1);
end
if( (net>0&&d(i,3)==1) || (net<=0&&d(i,3)==-1) )
count=count+1;
end
end

『貳』 matlab中用RBF神經網路做預測的代碼怎麼寫

clc;

clearall;

closeall;

%%----

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;

end

fori=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));

end

%

%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));

end

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

y=k_mat*W;

%y(y>=0.5)=1;

%y(y<0.5)=0;

%%

[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);

(2)股票代碼KRBF擴展閱讀

matlab的特點

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

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

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

『叄』 rbf神經網路在java中如何實現原代碼

rbf神經網路有多種學習策略,首先選取中心,可以隨機選,也可採用K均值聚類,然後學習權值,可採用偽逆法(涉及矩陣的奇異值分解),也可以採用最小均方誤差法,或者進化演算法,上述方法中心是固定的,也可採用梯度下降法同時學習中心、寬度、權值,這個比較復雜。具體參考《神經網路原理》。
你用Java寫可以參考Weka,其完全開源,不過我沒有看過源碼,不知其用何種學習策略。最近用C++寫了一個簡單的rbf,即固定中心、最小均方誤差法學習權值,但我發現採用K均值聚類選中心跟隨機選沒有什麼區別,不知二者有何區別?自己寫偽逆法對於我來說基本不可能,及其復雜,我看到過某人寫了個天書般的程序,一個函數500行。
希望對你有幫助,如果你有新發現,歡迎與我探討,國內估計沒多少人真正自己寫過RBF,都用MATLAB代入了事。