回歸預測 | Matlab實現CPO-BiTCN-BiGRU冠豪豬算法優化雙向時間卷積門控循環單元多變量回歸預測

回歸預測 | Matlab實現CPO-BiTCN-BiGRU冠豪豬算法優化雙向時間卷積門控循環單元多變量回歸預測

目錄

    • 回歸預測 | Matlab實現CPO-BiTCN-BiGRU冠豪豬算法優化雙向時間卷積門控循環單元多變量回歸預測
      • 效果一覽
      • 基本介紹
      • 程序設計
      • 參考資料

效果一覽

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

基本介紹

1.Matlab實現CPO-BiTCN-BiGRU雙向時間卷積門控循環單元多變量回歸預測(完整源碼和數據);
2.輸入多個特征,輸出單個變量,回歸預測,運行環境matlab2023及以上;
3.基于冠豪豬算法CPO優化的BiTCN-BiGRU模型。通過優化學習率,BiGRU的神經元個數,濾波器個數,正則化參數四個參數;命令窗口輸出R2、MAE、MAPE、 RMSE多指標評價;
4.代碼特點:參數化編程、參數可方便更改、代碼編程思路清晰、注釋明細。
5.適用對象:大學生課程設計、期末大作業和畢業設計。

程序設計

  • 完整源碼和數據獲取方式(資源出下載):Matlab實現CPO-BiTCN-BiGRU冠豪豬算法優化雙向時間卷積門控循環單元多變量回歸預測。
%%  清空環境變量
warning off             % 關閉報警信息
close all               % 關閉開啟的圖窗
clear                   % 清空變量
clc                     % 清空命令行%%  導入數據
res =xlsread('data.xlsx','sheet1','A2:H104');%%  數據分析
num_size = 0.7;                              % 訓練集占數據集比例
outdim = 1;                                  % 最后一列為輸出
num_samples = size(res, 1);                  % 樣本個數
res = res(randperm(num_samples), :);         % 打亂數據集(不希望打亂時,注釋該行)
num_train_s = round(num_size * num_samples); % 訓練集樣本個數
f_ = size(res, 2) - outdim;                  % 輸入特征維度%%  劃分訓練集和測試集
P_train = res(1: num_train_s, 1: f_)';
T_train = res(1: num_train_s, f_ + 1: end)';
M = size(P_train, 2);P_test = res(num_train_s + 1: end, 1: f_)';
T_test = res(num_train_s + 1: end, f_ + 1: end)';
N = size(P_test, 2);f_ = size(P_train, 1);                  % 輸入特征維度%%  數據歸一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);
% 創建輸入層
layer = sequenceInputLayer(f_, Normalization = "rescale-symmetric", Name = "input");% 創建網絡圖
lgraph = layerGraph(layer);
outputName = layer.Name;% 建立網絡結構 -- 殘差塊
for i = 1 : numBlocks% 膨脹因子dilationFactor = 2^(i-1);% 創建TCN正向支路layers = [convolution1dLayer(filterSize, numFilters, DilationFactor = dilationFactor, Padding = "causal", Name="conv1_" + i)  % 一維卷積層 layerNormalizationLayer                                                                                             % 層歸一化spatialDropoutLayer(dropoutFactor)                                                                                  % 空間丟棄層convolution1dLayer(filterSize, numFilters, DilationFactor = dilationFactor, Padding = "causal")                     % 一維卷積層  layerNormalizationLayer                                                                                             % 層歸一化reluLayer                                                                                                           % 激活層spatialDropoutLayer(dropoutFactor)                                                                                  % 空間丟棄層additionLayer(4, Name = "add_" + i)];% 添加殘差塊到網絡lgraph = addLayers(lgraph, layers);% 連接卷積層到殘差塊lgraph = connectLayers(lgraph, outputName, "conv1_" + i);% 創建 TCN反向支路flip網絡結構
%%  相關指標計算
% R2
R1 = 1 - norm(T_train - T_sim1')^2 / norm(T_train - mean(T_train))^2;
R2 = 1 - norm(T_test  - T_sim2')^2 / norm(T_test  - mean(T_test ))^2;disp(['訓練集數據的R2為:', num2str(R1)])
disp(['測試集數據的R2為:', num2str(R2)])% MAE
mae1 = sum(abs(T_sim1' - T_train)) ./ M ;
mae2 = sum(abs(T_sim2' - T_test )) ./ N ;disp(['訓練集數據的MAE為:', num2str(mae1)])
disp(['測試集數據的MAE為:', num2str(mae2)])% RMSE
RMSE1 = sqrt(sum((T_sim1' - T_train).^2)./M);
RMSE2 = sqrt(sum((T_test' - T_sim2).^2)./N);disp(['訓練集數據的RMSE為:', num2str(RMSE1)])
disp(['測試集數據的RMSE為:', num2str(RMSE2)])%MAPE
MAPE1 = mean(abs((T_train - T_sim1')./T_train));
MAPE2 = mean(abs((T_test - T_sim2')./T_test));disp(['訓練集數據的MAPE為:', num2str(MAPE1)])
disp(['測試集數據的MAPE為:', num2str(MAPE2)])    

參考資料

[1] https://blog.csdn.net/kjm13182345320/article/details/129215161
[2] https://blog.csdn.net/kjm13182345320/article/details/128105718

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716169.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716169.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716169.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mc生存插火把

題目描述 話說有一天 linyorson 在“我的世界”開了一個 nn 的方陣,現在他有 m 個火把和 k 個螢石,分別放在 (x1,y1)~(xm,ym) 和 (o1,p1)~(ok,pk)的位置,沒有光并且沒放東西的地方會生成怪物。請問在這個方陣中有幾個點會生成怪物&#xf…

Vue開發實例(六)實現左側菜單導航

左側菜單導航 一、一級菜單二、二級菜單三、三級菜單1、加入相關事件 四、菜單點擊跳轉1. 創建新頁面2. 配置路由3. 菜單中加入路由配置4、處理默認的Main窗口為空的情況 五、動態左側菜單導航1、動態實現一級菜單2、動態實現二級菜單 一、一級菜單 在之前的Aside.vue中去實現…

SRIO--IP講解及環回測試

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言一、IP例化文件二、SRIO環回工程搭建三、板級驗證3.1 板級驗證環節3.2 系統所需硬件3.3 ILA波形前言 本章將為大家介紹 “Serial RapidIO Gen2 ”IP 的使用以及配置方法。“Serial RapidIO Ge…

JavaScript入門學(Web APIs)

1.變量聲明 2 DOM介紹 2.1 什么是DOM 2.2 DOM樹 2.3 DOM對象&#xff08;重要&#xff09; 3.DOM&#xff08;文檔對象模型&#xff09;-獲取元素 3.1 獲取匹配的第一個元素 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&…

Canvs的js庫:Fabric.js簡單強大,用于繪制各種圖形

Fabric.js是一個用于創建交互式的HTML5 Canvas應用程序的JavaScript庫。它提供了一個簡單而強大的API&#xff0c;用于在Web瀏覽器中繪制和操作圖形對象。Fabric.js可以用于創建各種圖形應用程序&#xff0c;例如繪圖編輯器、圖像編輯器、流程圖、地圖和數據可視化等。 官網文…

校企合作項目總結

校企合作總結 前言項目框架開發待辦水平越權總結 前言 寒假里小組給了校企合作的項目&#xff0c;分配給我的工作量總共也就兩三套crud&#xff0c;雖然工作很少&#xff0c;但還是從里面學到了很多東西&#xff0c;收獲了大量的實習經驗&#xff0c;在這里總結記錄一下。 項…

FreeRTOS學習筆記——FreeRTOS中斷管理

精華總結&#xff1a; 中斷優先級0為最高&#xff0c;任務優先級0為最低 中斷優先級分組中為方便rtos管理4bit全部設置成搶占優先級 32單片機的中斷管理是由3個寄存器完成&#xff08;名字忽略&#xff0c;具體功能忽略&#xff09;&#xff0c;三個寄存器都是32bit&#xff0c…

微信小程序云開發教程——墨刀原型工具入門(文件設置+編輯組件)

引言 作為一個小白&#xff0c;小北要怎么在短時間內快速學會微信小程序原型設計&#xff1f; “時間緊&#xff0c;任務重”&#xff0c;這意味著學習時必須把握微信小程序原型設計中的重點、難點&#xff0c;而非面面俱到。 要在短時間內理解、掌握一個工具的使用&#xf…

NOC2023軟件創意編程(學而思賽道)python小高組決賽真題

目錄 下載原文檔打印做題: 軟件創意編程 一、參賽范圍 1.參賽組別:小學低年級組(1-3 年級)、小學高年級組(4-6 年級)、初中組。 2.參賽人數:1 人。 3.指導教師:1 人(可空缺)。 4.每人限參加 1 個賽項。 組別確定:以地方教育行政主管部門(教委、教育廳、教育局) 認…

【風格遷移】StyTr2:引入 Transformer 解決 CNN 在長距離依賴性處理不足和細節丟失問題

StyTr2&#xff1a;引入 Transformer 解決 CNN 在長距離依賴性處理不足和細節丟失問題 提出背景StyTr2 組成StyTr2 架構 提出背景 論文&#xff1a;https://arxiv.org/pdf/2105.14576.pdf 代碼&#xff1a;https://github.com/diyiiyiii/StyTR-2 問題&#xff1a; 傳統的神經…

idea中springboot項目創建后追加依賴

springboot項目創建后追加依賴 前言1、安裝插件editstarters設置->插件 2、進入pom.xml 頁面 前言 在項目創建的時候選擇好依賴創建項目&#xff0c;之后追加依賴不是很方便&#xff0c;介紹一個簡單的使用方法&#xff0c;通過editstarters進行添加 1、安裝插件editstart…

在 Ubuntu 終端輸出不同顏色、粗體、下劃線或其他樣式的字體

嗯。調試時總發現自己打印的調試信息太過普通、單調&#xff0c;于是乎…… Notice 要在終端實現字體的特殊樣式&#xff0c;通常通過使用特殊的控制字符來實現&#xff0c;而不是通過某語言本身的功能來實現。 在大多數終端中&#xff0c;可以使用 ANSI 轉義序列來設置字體的…

CleanMyMac X2024測評深度分析與功能全面介紹

一、軟件概述 CleanMyMac X 是一款強大的Mac清理和優化工具&#xff0c;它可以幫助用戶輕松管理和釋放Mac上的空間&#xff0c;優化系統性能&#xff0c;提高運行速度。這款軟件以其直觀的用戶界面和豐富的功能受到了廣大Mac用戶的歡迎。 CleanMyMac X4.14.6全新版下載如下: …

令牌桶算法和漏桶算法各自的應用場景

令牌桶算法和漏桶算法都是流量控制算法&#xff0c;它們在網絡和系統中有著不同的應用場景&#xff0c;具體如下&#xff1a; 令牌桶算法的應用場景&#xff1a; 網絡流量控制&#xff1a; 令牌桶算法廣泛應用于網絡流量控制中&#xff0c;特別是在網絡設備中&#xff0c;如路…

html基礎標簽+Http請求

文章目錄 目錄 文章目錄 前言 一.網址組成 二.HTTP協議解析 Http 請求報文 報文請求方法 報文頭 Cache-Control 常見緩存控制行為 cookie 解析 Http 響應報文 常見狀態碼 三.域名解析(DNS) DNS域名服務器分類 遞歸查詢 迭代查詢 四.端口號 五.路徑信息 六.Https協議 ?對稱…

第一篇【傳奇開心果系列】Python的自動化辦公庫技術點案例示例:深度解讀Pandas庫

傳奇開心果博文系列 系列博文目錄Python的自動化辦公庫技術點案例示例系列 博文目錄前言一、主要特點和功能介紹二、Series 示例代碼三、DataFrame示例代碼四、數據導入/導出示例代碼五、數據清洗示例代碼六、數據選擇和過濾示例代碼七、數據合并和連接示例代碼八、數據分組和聚…

Linux系統管理:虛擬機 Kali Linux 安裝

目錄 一、理論 1.Kali Linux 二、實驗 1.虛擬機Kali Linux安裝準備階段 2.安裝Kali Linux 2. Kali Linux 更換國內源 3. Kali Linux 設置固定IP 4. Kali Linux 開啟SSH遠程連接 5. MobaXterm遠程連接 Kali Linux 三、問題 1.apt 命令 取代哪些 apt-get命令 一、理論…

《OpenScene: 3D Scene Understanding with Open Vocabularies》閱讀筆記1

傳統的3D場景理解方法依賴于帶標簽的3D數據集,用于訓練一個模型以進行單一任務的監督學習。我們提出了OpenScene,一種替代方法,其中模型在CLIP特征空間中預測與文本和圖像像素共同嵌入的3D場景點的密集特征。這種零樣本方法實現了與任務無關的訓練和開放詞匯查詢。例如,為了…

Phoncent博客:探索AI寫作與編程的無限可能

Phoncent博客&#xff0c;一個名為Phoncent的創新AIGC博客網站&#xff0c;于2023年誕生。它的創始人是莊澤峰&#xff0c;一個自媒體人和個人站長&#xff0c;他在網絡營銷推廣領域有著豐富的經驗。莊澤峰深知人工智能技術在內容創作和編程領域的潛力和創造力&#xff0c;因此…

有趣的CSS - 閃爍的鴻星爾克文字招牌效果

大家好&#xff0c;我是 Just&#xff0c;這里是「設計師工作日常」&#xff0c;今天分享的是利用 animation 動畫實現一個閃爍的霓虹燈文字效果。 《有趣的css》系列最新實例通過公眾號「設計師工作日常」發布。 目錄 整體效果核心代碼html 代碼css 部分代碼 完整代碼如下html…