rbf神经网络python预测代码_RBF神经网络预测
%用RBF網絡來預測股票走勢
clc
clear
%歸一化數據
input=[0? ? ? ? 0? ? ? ? 0? ? ? ? 0? ? ? ? 0? ? ? ? 0.0277;
0.0177? ? ? ? 0.0292? ? ? ? 0.0184? ? ? ? 0.0122? ? ? ? 0.0264? ? ? ? 0.0492;
0.0374? ? ? ? 0.0946? ? ? ? 0.0393? ? ? ? 0.0269? ? ? ? 0.0264? ? ? ? 0.0871;
0.0342? ? ? ? 0.0927? ? ? ? 0.0376? ? ? ? 0.0435? ? ? ? 0.0648? ? ? ? 0;
0.0597? ? ? ? 0.1140? ? ? ? 0.0632? ? ? ? 0.0680? ? ? ? 0.1432? ? ? ? 0.0778;
0.0769? ? ? ? 0.1551? ? ? ? 0.0786? ? ? ? 0.0862? ? ? ? 0.1920? ? ? ? 0.1087;
0.0903? ? ? ? 0.1680? ? ? ? 0.0893? ? ? ? 0.1203? ? ? ? 0.2496? ? ? ? 0.1409;
0.1266? ? ? ? 0.1789? ? ? ? 0.1240? ? ? ? 0.1689? ? ? ? 0.3420? ? ? ? 0.3332;
0.1590? ? ? ? 0.2364? ? ? ? 0.1533? ? ? ? 0.2268? ? ? ? 0.4329? ? ? ? 0.3268;
0.1877? ? ? ? 0.2810? ? ? ? 0.1890? ? ? ? 0.2619? ? ? ? 0.4956? ? ? ? 0.2882;
0.2386? ? ? ? 0.3915? ? ? ? 0.2388? ? ? ? 0.3543? ? ? ? 0.5845? ? ? ? 0.4144;
0.3012? ? ? ? 0.4589? ? ? ? 0.2997? ? ? ? 0.4619? ? ? ? 0.7076? ? ? ? 0.6327;
0.3494? ? ? ? 0.5074? ? ? ? 0.3485? ? ? ? 0.5408? ? ? ? 0.8331? ? ? ? 0.7095;
0.4026? ? ? ? 0.5084? ? ? ? 0.4032? ? ? ? 0.6157? ? ? ? 0.9420? ? ? ? 0.7912;
0.5712? ? ? ? 0.7413? ? ? ? 0.5754? ? ? ? 0.6908? ? ? ? 0.6327? ? ? ? 0.8595;
0.6539? ? ? ? 0.8057? ? ? ? 0.6598? ? ? ? 0.7377? ? ? ? 0.7147? ? ? ? 0.8923;
0.7577? ? ? ? 0.8320? ? ? ? 0.7627? ? ? ? 0.8191? ? ? ? 0.7992? ? ? ? 0.9548];
output=[0
0.0107
0.0193
0.0172
0.0372
0.0533
0.0721
0.1065
0.1305
0.1528
0.2054
0.2816
0.3448
0.4016
0.4910
0.5667
0.6810]';
input_test=[0.8667? ? ? ? 0.8969? ? ? ? 0.8673? ? ? ? 0.9142? ? ? ? 0.8973? ? ? ? 0.9667;
1.0000? ? ? ? 1.0000? ? ? ? 1.0000? ? ? ? 1.0000? ? ? ? 1.0000? ? ? ? 1.0000];
output_test=[??0.8415
1.0000]';
%load data input output input_test output_test;
%權值及參數的初始化
M=6; %輸入節點個數
N=1; %輸出節點個數
n=20; %隱形節點個數
b = 1.5*ones(n,1);
c = rands(M,n);
w = 2*rands(n,N);
%給定進化參數
alfa = 0.002;
xite = 0.02;
w_1 = w;w_2 = w_1;
c_1 = c;c_2 = c_1;
b_1 = b;b_2 = b_1;
d_w=0*w;
d_b=0*b;
y_1 = 0;
[aa,bb]=size(input);
kk=1;
for ii=1:64
for k = 1:1:aa
%取一對輸入輸出
x=input(k,:);
y=output(k,:);
for j = 1:1:n
h(j) = exp(-norm(x' - c(:,j))^2/(2*b(j)*b(j)));
end
ym(k) = w'*h';? ? %神經網絡預測輸出
e(k) = y - ym(k);? ? %輸出誤差
%權值修正
for j = 1:1:n
d_w(j) = xite*e(k)*h(j);
d_b(j) = xite*e(k)*w(j)*h(j)*(b(j)^-3)*norm(x'-c(:,j))^2;
for i = 1:1:M
d_c(i,j) = xite*e(k)*w(j)*h(j)*(x(i) - c(i,j))*(b(j)^-2);
end
end
w = w_1 + d_w + alfa*(w_1 - w_2);
b = b_1 + d_b + alfa*(b_1 - b_2);
c = c_1 + d_c + alfa*(c_1 - c_2);
y_1 = y;
w_2 = w_1;
w_1 = w;
c_2 = c_1;
c_1 = c;
b_2 = b_1;
b_1 = b;
kk=kk+1;
end
end
[aa,bb]=size(input_test);
%RBF網絡預測輸出
for k=1:aa
x=input_test(k,:);
for j = 1:1:n
h(j) = exp(-norm(x' - c(:,j))^2/(2*b(j)*b(j)));
end
yy(k) = w'*h';? ? %預測的輸出
end
error=output_test'-yy;
figure(1)
plot(output_test,'r')
hold on
plot(yy)
title('RBF網絡預測股票走勢行情');
legend('實際股票走勢','預測股票走勢');
axis([0,30,0,1.5])%30為預測輸出值
figure(2)
plot(error)
title('預測值和實際值的誤差');
xlabel('迭代次數');
ylabel('誤差')
運行顯示“帶有下標的賦值維度不匹配。”不知怎么修改
總結
以上是生活随笔為你收集整理的rbf神经网络python预测代码_RBF神经网络预测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人口各省预测模型matlab_基于MAT
- 下一篇: 计算机基础雨课堂答案,基于“雨课堂”助推