最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【數(shù)據(jù)預(yù)測】基于 BP+ELM+LSTM+BiLSTM+SAELSTM多種算法實現(xiàn)數(shù)據(jù)預(yù)測含Matlab源碼

2022-04-20 22:20 作者:Matlab工程師  | 我要投稿

1 簡介

基于 BP+ELM+LSTM+BiLSTM+SAELSTM多種算法實現(xiàn)數(shù)據(jù)預(yù)測.

1.1 BP神經(jīng)網(wǎng)絡(luò)

BP神經(jīng)網(wǎng)絡(luò)模型是目前應(yīng)用最為廣泛神經(jīng)網(wǎng)絡(luò)之一。它的本質(zhì)是通過對歷史數(shù)據(jù)的學(xué)習(xí)找出數(shù)據(jù)變化趨勢之間的非線性關(guān)系,并通過輸出量與預(yù)期值之間的誤差不斷調(diào)整網(wǎng)絡(luò)中各個單元的權(quán)重,使整個網(wǎng)絡(luò)的誤差最小。因此,為達(dá)到較好的預(yù)測精度,需要對網(wǎng)絡(luò)預(yù)測模型自身的結(jié)構(gòu)進(jìn)行確定。

1)網(wǎng)絡(luò)層數(shù)的設(shè)計。本文需要構(gòu)建的預(yù)測模型,主要是用于研究在短時間交通流走勢。在這種情況下,不需選擇增加網(wǎng)絡(luò)層數(shù)的辦法而是選擇增加隱含層神經(jīng)元節(jié)點的數(shù)目來提高輸出結(jié)果的精度。因此,本文選用單一隱層的 BP神經(jīng)網(wǎng)絡(luò)模型。

2)輸入層神經(jīng)節(jié)點的設(shè)計。在單因素預(yù)測中僅使用交通流作為原始數(shù)據(jù).

3)傳遞函數(shù)和學(xué)習(xí)函數(shù)的設(shè)計。本文所設(shè)計的模型均采用了相同的隱含層傳遞函數(shù)tansig、輸出層傳遞函數(shù)logsig和學(xué)習(xí)函數(shù)learngdm。

4)性能函數(shù)的確定。網(wǎng)絡(luò)誤差能直觀的反映預(yù)測效果的好壞程度,是預(yù)測精度的具體反映。本文在構(gòu)建 BP神經(jīng)網(wǎng)絡(luò)模型時選擇均方誤差來確定網(wǎng)絡(luò)的誤差情況。

5)隱含層神經(jīng)節(jié)點的設(shè)計。在模型中其它參數(shù)值保持不變的情況下,本文通過調(diào)整隱含層神經(jīng)節(jié)點的數(shù)目進(jìn)行重復(fù)實驗,通過對比輸出誤差,確定最佳隱含層神經(jīng)元節(jié)點的數(shù)目。對于單因素 BP神經(jīng)網(wǎng)絡(luò),當(dāng)隱含層神經(jīng)元節(jié)點的數(shù)目為24時,BP神經(jīng)網(wǎng)絡(luò)的均方誤差最小,即對函數(shù)的逼近效果最好,此時的均方誤差為1.1609;對于多因素 BP神經(jīng)網(wǎng)絡(luò),隱含層神經(jīng)元節(jié)點數(shù)目為5時,BP神經(jīng)網(wǎng)絡(luò)的均方誤差達(dá)到最小,最小值為0.0126。根據(jù)以上分析,單因素 BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型的結(jié)構(gòu)為:單一隱含層和單一輸出層;輸入層神經(jīng)節(jié)點數(shù)目為5 ;隱含層神經(jīng)節(jié)點數(shù)目為24;輸出層神經(jīng)節(jié)點數(shù)目為1;隱含層傳遞函數(shù)、輸出層傳遞函數(shù)、學(xué)習(xí)函數(shù)分別為tansig、logsig和learngdm;性能函數(shù)為 mse。

1.2 ELM

1.3 LSTM預(yù)測


2 部分代碼

clcclear allDataSetName = 'magic04'; ? ? ? ? ? ? ? ? %以matlab格式存儲的數(shù)據(jù)集名稱TrainSamplesPartio = 0.5; ? ? ? ? ? ? ? ?%每類訓(xùn)練樣本所占比例 ?C = 100; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? %正則化因子 DataSet ?= load(DataSetName, '-mat'); ? ?%加載文件到程序DataSet = getfield(DataSet, DataSetName);%獲取文件中數(shù)據(jù)KindIdx = DataSet(:,1); ? ? ? ? ? ? ? ? ?%獲取類別號,數(shù)據(jù)第1列為類別編號KindCount = length(unique(KindIdx)); ? ? %總類別數(shù)SortedDataSet = sortrows(DataSet, 1); ? ?%按類標(biāo)號排列數(shù)據(jù),按類標(biāo)號從小到大重排數(shù)據(jù),方便后面隨機抽取數(shù)據(jù)clear DataSetEachKindCount = zeros(1,KindCount); ? ? ? ? %每類數(shù)據(jù)個數(shù)for i=1:KindCount ? ?EachKindCount(i) = sum(sum( i == SortedDataSet(:,1))); ?%第i類數(shù)據(jù)個數(shù)endKindData = cell(1,KindCount); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? %每類的數(shù)據(jù)以cell數(shù)組數(shù)據(jù)存儲TempCount = 0; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?%前i類數(shù)據(jù)總數(shù)目計數(shù)for i=1:KindCount ? ?if i == 1 ? ? ? ?TempCount = EachKindCount(1,i); ? ? ? ?KindData{1,i} = SortedDataSet(1:TempCount,:); ? ?else ? ? ? ?%因為數(shù)據(jù)為按類標(biāo)有序排列,故可以由每類數(shù)據(jù)數(shù)目直接獲取每類數(shù)據(jù) ? ? ? ?KindData{1,i} = SortedDataSet(TempCount+1:TempCount+EachKindCount(1,i),:); ? ? ? ?TempCount = TempCount + EachKindCount(1,i); ? ?endendclear SortedDataSetendclear TrainTemp TestTemp TrainDataEachKind TestDataEachKind %統(tǒng)計結(jié)果[TrainingTime, TestingTime, TrainingAccuracy, TestingAccuracy] = elm(TrainData, TestData, 1, KindCount, 'sig');%格式化輸出相關(guān)信息,可根據(jù)自己需要修改fprintf('Run Information:\n')fprintf('+-----------------------------------------------+\n')fprintf('|KindIdx ?| EachKindCount | ?EachTrainKindCount |\n');fprintf('+-----------------------------------------------+\n')Msgemat='| ?%2d ? ? |%9d ? ? ?|%11d ? ? ? ? ?|\n';for i=1:KindCount ? ?fprintf(Msgemat, i, EachKindCount(i), TrainSamCountEachKind(i)); ? ?fprintf('+-----------------------------------------------+\n')endfprintf('+------------------------------------------------------+\n')fprintf('| TrainTime | ?TestTime | TrainAccuracy | TestAccuracy |\n')MsgMat= '| ? ?%0.2fs ?| ? ?%0.2fs ?| ? ?%0.2f ? ? ? | ? ? ?%0.2f ? ?|\n';fprintf('+------------------------------------------------------+\n')fprintf(MsgMat, TrainingTime, TestingTime, TrainingAccuracy, TestingAccuracy);fprintf('+------------------------------------------------------+\n')

3 仿真結(jié)果

4 參考文獻(xiàn)

[1]劉啟斌, 尹溫碩, 胡衛(wèi)華,等. 基于LSTM算法的電力諧波監(jiān)測數(shù)據(jù)預(yù)測[J]. 電力電容器與無功補償, 2019, 40(5):7.

博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號處理、元胞自動機、圖像處理、路徑規(guī)劃、無人機等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。

部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。





【數(shù)據(jù)預(yù)測】基于 BP+ELM+LSTM+BiLSTM+SAELSTM多種算法實現(xiàn)數(shù)據(jù)預(yù)測含Matlab源碼的評論 (共 條)

分享到微博請遵守國家法律
古交市| 台南县| 江永县| 遵义市| 木里| 和田县| 白沙| 青神县| 舞阳县| 金湖县| 福州市| 平湖市| 武强县| 木里| 哈尔滨市| 崇礼县| 永靖县| 上林县| 搜索| 沾化县| 洮南市| 威信县| 霞浦县| 普兰店市| 马尔康县| 桐城市| 昆明市| 太湖县| 平南县| 白沙| 杭锦后旗| 佛山市| 温宿县| 海林市| 崇州市| 女性| 浙江省| 九龙坡区| 隆林| 弥渡县| 桃园县|