回歸預測 | MATLAB實現CNN-LSSVM卷積神經網絡結合最小二乘支持向量機多輸入單輸出回歸預測

回歸預測 | MATLAB實現CNN-LSSVM卷積神經網絡結合最小二乘支持向量機多輸入單輸出回歸預測

目錄

    • 回歸預測 | MATLAB實現CNN-LSSVM卷積神經網絡結合最小二乘支持向量機多輸入單輸出回歸預測
      • 預測效果
      • 基本介紹
      • 程序設計
      • 參考資料

預測效果

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

在這里插入圖片描述

基本介紹

回歸預測 | MATLAB實現CNN-LSSVM卷積神經網絡結合最小二乘支持向量機多輸入單輸出回歸預測
CNN-LSSVM卷積神經網絡結合最小二乘支持向量機(Least Squares Support Vector Machine,LSSVM)的多輸入單輸出回歸預測原理,主要基于CNN的特征提取能力和LSSVM的回歸預測能力。以下是該方法的詳細原理:

一、CNN的特征提取原理
CNN是一種前饋神經網絡,特別適用于處理圖像數據,但也可以用于其他類型的時序數據或具有局部特征的數據。其核心原理包括卷積和池化兩個主要操作:

卷積層:通過卷積運算提取輸入數據的局部特征。卷積運算使用多個卷積核(濾波器)對輸入數據進行滑動,計算每個局部區域的加權和,生成特征圖(Feature Map)。每個卷積核代表一種特征提取器,通過訓練學習得到合理的權值,用于檢測輸入數據中的特定特征。
池化層:對特征圖進行降維處理,減少計算量并防止過擬合。池化操作通過選取每個池化窗口內的最大值或平均值,進一步簡化特征圖。
經過多個卷積層和池化層的處理后,CNN能夠從輸入數據中提取出有用的特征向量,這些特征向量將作為后續回歸任務的輸入。

二、LSSVM的回歸預測原理
LSSVM是對經典支持向量機(SVM)的一種改進,以等式約束代替原來的不等式約束,將經驗風險改為偏差的二次方,通過求解一組線性方程來代替經典SVM中復雜的二次優化問題。其回歸預測原理如下:

非線性映射:借助非線性映射將原空間映射到高維特征空間,并在此空間構造最優決策函數。
模型訓練:使用訓練集數據訓練LSSVM模型,調整模型參數以最小化預測誤差。在訓練過程中,LSSVM通過最小化損失函數(即預測值與實際值之間的差異的平方和)來擬合數據。
回歸預測:訓練完成后,使用LSSVM模型對新輸入的數據進行回歸預測,輸出一個連續的輸出值。
三、CNN-LSSVM結合原理
在CNN-LSSVM模型中,CNN負責從輸入數據中提取特征向量,而LSSVM則負責利用這些特征向量進行回歸預測。具體結合原理如下:

數據預處理:首先,對輸入數據進行預處理,包括數據清洗、歸一化等步驟,以確保數據的完整性和準確性。
特征提取:將預處理后的數據輸入CNN模型,通過多個卷積層和池化層提取出有用的特征向量。
特征向量輸入:將CNN提取的特征向量作為LSSVM的輸入。
模型訓練與預測:使用訓練集數據訓練LSSVM模型,并使用測試集數據評估模型的預測性能。訓練完成后,可以使用訓練好的模型對新輸入的數據進行回歸預測。

程序設計

  • 完整代碼:MATLAB實現CNN-LSSVM卷積神經網絡結合最小二乘支持向量機多輸入單輸出回歸預測
%%  清空環境變量
warning off             % 關閉報警信息
close all               % 關閉開啟的圖窗
clear                   % 清空變量
clc  %% 導入數據
data =  readmatrix('day.csv');
data = data(:,3:16);
res=data(randperm(size(data,1)),:);    %此行代碼用于打亂原始樣本,使訓練集測試集隨機被抽取,有助于更新預測結果。
num_samples = size(res,1);   %樣本個數% 訓練集和測試集劃分
outdim = 1;                                  % 最后一列為輸出
num_size = 0.7;                              % 訓練集占數據集比例
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);%  數據歸一化
[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);%%  數據平鋪for i = 1:size(P_train,2)trainD{i,:} = (reshape(p_train(:,i),size(p_train,1),1,1));
endfor i = 1:size(p_test,2)testD{i,:} = (reshape(p_test(:,i),size(p_test,1),1,1));
endtargetD =  t_train;
targetD_test  =  t_test;numFeatures = size(p_train,1);layers0 = [ ...

參考資料

[1] https://blog.csdn.net/kjm13182345320/article/details/128267322?spm=1001.2014.3001.5501
[2] https://blog.csdn.net/kjm13182345320/article/details/128234920?spm=1001.2014.3001.5501

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

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

相關文章

slam學習筆記7---狀態量求導相關數學公式

前言:本來打算只是歸納一下數學求導相關公式,后面也寫了旋轉求導相關內容,哈哈。感覺有點發散把握不住呀。水平有限,歡迎評論區點出。 一、基本初等函數求導公式 ( C ) ′ 0 , C (C)0,C (C)′0,C為常數 ( x μ ) ′ μ x μ ?…

32單片機串口數據接收、空閑IDLE中斷詳解

一、前提說明 一開始寫單片機程序的時候不太清楚空閑中斷這個東西,每次用串口接收數據,都要再開一個定時器,在定時器內進行倒計時,每次接收數據就重置計時時間,計時結束就觸發中斷,再判斷所有接收的數據&am…

深入探討 Go 中的高級表單驗證與翻譯:Gin 與 Validator 的實踐之道20241223

深入探討 Go 中的高級表單驗證與翻譯:Gin 與 Validator 的實踐之道 在現代后端開發中,表單驗證是保證數據完整性和服務穩定性的核心環節。如何優雅、高效地實現表單驗證,同時提供人性化的錯誤提示,是每位開發者的必修課。在本文中…

掌握 Ansys ACP 中的參考方向:簡化復雜的復合材料設計

概括 在復合材料分析領域,精度至關重要,尤其是在定義纖維方向和鋪層時。Ansys ACP(Ansys Composite PrepPost)提供了強大的工具來建立參考方向,這是實現精確結構模擬的關鍵步驟。在本博客中,我們將揭開在 …

Vue2學習(一)——Vue簡介、Vue指令與指令修飾符

一、Vue簡介 Vue是一套用于構建用戶界面的漸進式框架。 所謂漸進式就是循序漸進,不一定非得把Vue中的所有API都學完才能開發Vue,可以學一點開發一點。 Vue2官網地址:https://v2.cn.vuejs.org/ Vue3官網地址:https://cn.vuejs…

Redis--通用命令學習

目錄 一、引言 二、基礎命令 1.set 2.get 3.keys 3.1 keys ? 3.2 keys * 3.3 keys [abe] 3.4 keys [^] 3.5 keys [a-b] 4.exists 5.delete 6.expire 7.ttl 8.type 三、Redis中的過期策略(面試題) 1.惰性刪除 2.定期刪除 …

Linux程序設計(第四版)| 學習筆記

上次學習Linux相關內容還是上學的時候為了應付考試,最近有項目涉及Linux,重新學習以下。 很多年前關于Linux的總結 一、入門 1.概念 (1) UNIX 1)定義:指的是一種遵循特定規范的計算機操作系統。 2)特點:簡單性、集中性、可重用…

PostgreSQL 的歷史

title: PostgreSQL 的歷史 date: 2024/12/23 updated: 2024/12/23 author: cmdragon excerpt: PostgreSQL 是一款功能強大且廣泛使用的開源關系型數據庫管理系統。其歷史可以追溯到1986年,當時由加州大學伯克利分校的一個研究團隊開發。文章將深入探討 PostgreSQL 的起源、…

Ubuntu22.04 LTS 安裝nvidia顯卡驅動

準備跑老師給定的Github上的多模態源碼,但是用了這么久ubuntu還沒有嘗試過安裝nvidia驅動,好在也是一次成功,于是記錄下來。 借鑒的是Ubuntu22.04安裝顯卡驅動(高速、避錯版)-CSDN博客這篇文章,按照流程來基本沒有問題,不過個人覺得有些步驟比較冗余,所以記錄下來 主要…

WPS工具欄灰色怎么辦

WPS離線不登錄,開啟工具欄等相關功能 當你在使用WPS的過程中,若因網絡問題或其他特殊原因,導致無法登錄使用WPS時,可根據以下步驟開啟離線兼容模式,開啟此模式后,可在未登錄的狀態下,激活并使用…

國標GB28181-2022平臺EasyGBS:安防監控中P2P的穿透方法

在安防監控領域,P2P技術因其去中心化的特性而受到關注,尤其是在遠程視頻監控和數據傳輸方面。P2P技術允許設備之間直接通信,無需通過中央服務器,這在提高效率和降低成本方面具有明顯優勢。然而,P2P技術在實際應用中也面…

Mac Android studio 升級LadyBug 版本,所產生的bug

當Build 出現,這樣的文字以后: Your build is currently configured to use incompatible Java 21.0.3 and Gradle 7.3.3. Cannot sync the project. We recommend upgrading to Gradle version 8.9. The minimum compatible Gradle version is 8.5. …

com.google.common.collect.ImmutableList$SerializedForm

今天AndroidStudio安裝了個2021版本的,gradle用了7.3.3,創建項目后控制臺總是有這樣一個錯誤: Unable to load class com.google.common.collect.ImmutableList$SerializedForm. This is an unexpected error. Please file a bug containing…

Docker部署Sentinel

一、簡介 是什么:面向分布式、多語言異構化服務架構的流量治理組件 能干嘛:從流量路由、流量控制、流量整形、熔斷降級、系統自適應過載保護、熱點流量防護等多個維度來幫助開發者保障微服務的穩定性 官網地址:https://sentinelguard.io/zh-c…

HTMLCSSJavaScriptDOM 之間的關系?

一、HTML 中文名:超文本標記語言 英文名:HyperText Markup Language HTML是一種用來結構化Web網頁及其內容的標記語言。 HTML 由一系列的元素組成,這些元素可以用來包圍不同部分的內容,使其以某種方式呈現或者工作。 圖Ⅰ 每…

Hadoop集群(HDFS集群、YARN集群、MapReduce?計算框架)

一、 簡介 Hadoop主要在分布式環境下集群機器,獲取海量數據的處理能力,實現分布式集群下的大數據存儲和計算。 其中三大核心組件: HDFS存儲分布式文件存儲、YARN分布式資源管理、MapReduce分布式計算。 二、工作原理 2.1 HDFS集群 Web訪問地址&…

位運算符、標記位傳參

位運算符: 位運算符作用于操作數的位(bit)。 按位與(&)對應位都為1時結果為1 int a 5; // 0101 int b 3; // 0011 int result a & b; // 0001 按位或(|)對應位至少有一個為1時結…

施耐德變頻器ATV320系列技術優勢:創新與安全并重

在工業自動化領域,追求高效、安全與智能已成為不可阻擋的趨勢。施耐德變頻器ATV320系列憑借其強大的設計標準和全球認證,成為能夠幫助企業降低安裝成本,提高設備性能的創新解決方案。 【全球認證,品質保障】ATV320 系列秉持施耐德…

項目練習:element-ui的valid表單驗證功能用法

文章目錄 一、情景說明二、代碼實現 一、情景說明 一般表單提交的時候,都要對表單數據進行前段驗證。 比如登陸表單提交。 二、代碼實現 package.json "element-ui": "2.15.14",main.js 引用ElementUI import ElementUI from element-ui; i…

【es6復習筆記】Symbol 類型及其應用(9)

一、Symbol 簡介 Symbol 是 JavaScript 中的一種基本數據類型,它表示唯一的標識符。Symbol 的主要目的是防止屬性名沖突,尤其是在多個代碼庫或模塊中共享對象時。Symbol 值可以用作對象的屬性名,這樣可以確保屬性名是唯一的,不會…