天天看點

【BP預測】基于布谷鳥算法優化BP神經網絡資料回歸預測含Matlab源碼

 1 簡介

锂電池健康狀态(SOH)的預測是電動汽車锂電池管理系統的最重要的關鍵技術之一;傳統的誤差逆向傳播(BP)神經網絡容易使權值和門檻值陷入局部最優,進而導緻預測結果不精确;結合布谷鳥搜尋算法(CS)的全局優化能力,提出一種基于CS算法優化BP神經網絡的锂電池SOH預測方法,該方法的核心在于優化BP神經網絡的初始權值和門檻值,進而減小算法對初始值的依賴。

【BP預測】基于布谷鳥算法優化BP神經網絡資料回歸預測含Matlab源碼

【BP預測】基于布谷鳥算法優化BP神經網絡資料回歸預測含Matlab源碼

編輯

【BP預測】基于布谷鳥算法優化BP神經網絡資料回歸預測含Matlab源碼

【BP預測】基于布谷鳥算法優化BP神經網絡資料回歸預測含Matlab源碼

編輯

【BP預測】基于布谷鳥算法優化BP神經網絡資料回歸預測含Matlab源碼

【BP預測】基于布谷鳥算法優化BP神經網絡資料回歸預測含Matlab源碼

編輯

【BP預測】基于布谷鳥算法優化BP神經網絡資料回歸預測含Matlab源碼

【BP預測】基于布谷鳥算法優化BP神經網絡資料回歸預測含Matlab源碼

編輯

【BP預測】基于布谷鳥算法優化BP神經網絡資料回歸預測含Matlab源碼

【BP預測】基于布谷鳥算法優化BP神經網絡資料回歸預測含Matlab源碼

編輯

【BP預測】基于布谷鳥算法優化BP神經網絡資料回歸預測含Matlab源碼

編輯

【BP預測】基于布谷鳥算法優化BP神經網絡資料回歸預測含Matlab源碼

編輯

【BP預測】基于布谷鳥算法優化BP神經網絡資料回歸預測含Matlab源碼

【BP預測】基于布谷鳥算法優化BP神經網絡資料回歸預測含Matlab源碼

編輯

2 部分代碼

clc
clear
%讀取資料
load data 
z=data';
n=length(z);
for i=1:6;
    sample(i,:)=z(i:i+n-6);
end
%訓練資料和預測資料
    input_train=sample(1:5,1:1400);
    output_train=sample(6,1:1400);
    input_test=sample(1:5,1401:1483);
    output_test=sample(6,1401:1483);
%節點個數
inputnum=5;
hiddennum=3;
outputnum=1;
n=25;
%選連樣本輸入輸出資料歸一化
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
%建構網絡
net=newff(inputn,outputn,hiddennum);
[bestnest,fmin]=cuckoo_search(n,inputnum,hiddennum,outputnum,net,inputn,outputn);
fmin
x=bestnest;
%% BP網絡預測
%資料歸一化
inputn_test=mapminmax('apply',input_test,inputps);
an=sim(net,inputn_test);
test_simu=mapminmax('reverse',an,outputps);
error=test_simu-output_test
E=mean(abs(error./output_test))
plot(output_test,'g*')
hold on;
plot(test_simu,'-o')
title('布谷鳥算法優化BP神經網絡實際值和預測值對比','fontsize',10)
legend('實際值','預測值')
xlabel('時間')
ylabel('比較值')      

3 仿真結果

【BP預測】基于布谷鳥算法優化BP神經網絡資料回歸預測含Matlab源碼

【BP預測】基于布谷鳥算法優化BP神經網絡資料回歸預測含Matlab源碼

編輯

4 參考文獻

[1]孫晨, 李陽, 李曉戈, et al. 基于布谷鳥算法優化BP神經網絡模型的股價預測[J]. 計算機應用與軟體, 2016, 33(2):4.

部落客簡介:擅長智能優化算法、神經網絡預測、信号處理、元胞自動機、圖像處理、路徑規劃、無人機等多種領域的Matlab仿真,相關matlab代碼問題可私信交流。

繼續閱讀