預測算法|改進粒子群算法優化極限學習機IDM-PSO-ELM

回歸擬合:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

分類

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

本文是作者的預測算法系列的第四篇,前面的文章中介紹了BP、SVM、RF及其優化,感興趣的讀者可以在作者往期文章中了解,這一篇將介紹——極限學習機

過去的幾十年里基于梯度的學習方法被廣泛用于訓練神經網絡,如BP算法利用誤差的反向傳播來調整網絡的權值.然而,由于不適當的學習步長,導致算法的收斂速度非常慢,容易產生局部最小值,因此往往需要進行大量迭代才能得到較為滿意的精度.這些問題,已經成為制約其在應用領域發展的主要瓶頸.

Huang等人[1] 提出了一種簡單高效的單隱層前饋神經網絡學習算法,稱為極限學習機(extremelearning machine,ELM).其典型優勢是訓練的速度非常快,具有訓練速度快、復雜度低的優點,克服了傳統梯度算法的局部極小、過擬合和學習率的選擇不合適等[2]問題,目前被廣泛地應用于模式識別、故障診斷、機器學習、軟測量等領域。

00目錄

1 標準極限學習機ELM

2 代碼目錄

3 ELM的優化實現

4 源碼獲取

5 展望

參考文獻

01 標準極限學習機ELM

1.1 ELM原理

給定一數據集:T={(x1,y1),…,(xl,yl)},其中xi∈Rn,y∈R,i=1,…,l;含有 N 個隱層節點,激勵函數為 G 的極限學習機回歸模型可表示為:在這里插入圖片描述

其中:bi 為第 i 個隱層節點與輸出神經元的輸出權值;ai為輸入神經元與第 i 個隱層節點的輸入權值;bi為第 i 個隱層節點的偏置;h(x)=[G(a1,b1,x1),…,(aN,bN,xN)]稱為隱層輸出矩陣。并且ai,bi在訓練開始時隨機選擇,且在訓練過程中保持不變。輸出權值可以通過求解下列線性方程組的最小二乘解來獲得:在這里插入圖片描述

該方程組的最小二乘解為:在這里插入圖片描述

其中, H+稱為隱層輸出矩陣H的 Moore-Penrose 廣義逆.

1.2 ELM優化

由于 ELM 隨機給定輸入權值矩陣和隱含層偏差,由1.1節中的計算式可知輸出權值矩陣是由輸入權值矩陣和隱含層偏差計算得到的,可能會存在一些輸入權值矩陣和隱含層偏差為 0,即部分隱含層節點是無效的. 因此在某些實際應用中,ELM 需要大量的隱含層節點才能達到理想的精度. 并且 ELM 對未在訓練集中出現的樣本反應能力較差,即泛化能力不足。針對以上問題可利用優化算法和極限學習機網絡相結合的學習算法,即利用優化算法優化選擇極限學習機的輸入層權值和隱含層偏差,從而得到一個最優的網絡[3].

對于ELM優化,以PSO優化ELM為例,其流程如下所示:在這里插入圖片描述

02 代碼目錄

本文以改進的動態多種群粒子群算法優化ELM,并與標準粒子群算法優化ELM和ELM算法進行對比。

改進的動態多種群粒子群優化算法(IDM-PSO)

分類問題:

其中,IDM_PSO_ELM.m、MY_ELM_CLA.m和PSO_ELM.m都是可獨立運行的主程序.而result.m可用于對比這三個算法的效果,若想對比算法,單獨運行這個程序即可。

部分源碼如下:在這里插入圖片描述

回歸擬合問題:在這里插入圖片描述

回歸擬合的程序和分類的類似,這里不再重復。

部分源碼:
在這里插入圖片描述

03 極限學習機及其優化的預測結果對比

3.1 回歸擬合

應用問題為多輸入單輸出問題。

3.1.1 評價指標

為了驗證所建模型的準確性和精度,分別采用均方根差(Root Mean Square Error,RMSE) 、平均絕對百分誤差( Mean Absolute Percentage Error,MAPE)和平均絕對值誤差( Mean Absolute Error,MAE) 作為評價標準。在這里插入圖片描述

式中 Yi 和Y ^ i分別為真實值和預測值; n 為樣本數。

3.1.2 仿真結果
在這里插入圖片描述
在這里插入圖片描述

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

可以看出,優化是有效的。

3.2 分類

3.2.1 評價指標

為驗證模型準確率,本文從混淆矩陣、準確率、精確率、召回率、F1-score這些方面進行衡量。

1、混淆矩陣

混淆矩陣是一種可視化工具,混淆矩陣的每一列代表的是預測類別,其總數是分類器預測為該類別的數據總數,每一行代表了數據的真實類別,其總數是該類別下的數據實例總數。主對角線的元素即為各類別的分類準確的個數,通過混淆矩陣能夠直觀地看出多分類模型的分類準確率。

2、準確率

最為簡單判斷 SVM 多分類效果的方法就是用以下公式進行準確率r 的計算
在這里插入圖片描述

其中 ncorrect代表正確分類的樣本個數, N代表測試集中的樣本總數。

3、精確度

精度計算的是正類預測正確的樣本數,占預測是正類的樣本數的比例,公式如下
在這里插入圖片描述

其中,TP表示的是正樣本被預測為正樣本的個數,FP表示的是負樣本被預測為 正樣本的個數。

4、召回率

召回率計算的是預測正類預測正確的樣本數,占實際是正類的樣本數的比例,公式如下:
在這里插入圖片描述

其中, FN 表示的是正樣本被判定為負樣本的個數。

5、F1-score

F1- score是精度和召回率的調和平均值, F1- score越高說明模型越穩健,計算公式為
在這里插入圖片描述

6、宏平均(macro-averaging)

宏平均(macro-averaging)是指所有類別的每一個統計指標值的算數平均值, 也就是宏精確率(macro - precision),宏召回率( macro -recall ),宏 F1 值 (macro- F1 score),其計算公式如下:
在這里插入圖片描述

3.2.2 仿真結果
在這里插入圖片描述

在這里插入圖片描述

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

在這里插入圖片描述

對于分類問題仍然有效,需要注意的是因為某些類別并沒有存在預測值,因此由精確率和F1的計算式可知會出現NaN。

04 源碼獲取

關注作者或私信

05 展望

本文介紹了應用改進的動態多種群粒子群算法優化ELM的案例,同樣也可以采用作者前面提到過的麻雀算法等,同時,極限學習機因其在處理大規模數據時出現的無法收斂等問題,出現了核極限學習機、多核極限學習機、深度極限學習機等變體,作者后續也會更新這些算法的實現。

參考文獻

[1]Huang G B,Zhu Q Y,Siew C K. Extreme learning machine:A new learning scheme of feedforward neural networks//Proceedings of the 2004 1EEE International Joint Conferenceon Neural Networks. Budapest,Hungary,2004:985-990

[2]FAN Shu-ming,QIN Xi-zhong,JIA Zhen-hong,et al.Time series forecasting based on ELM improved layered ensemble architecture[J].Computer Engineering and Design,2019,40(7):1915-1921.

[3]王杰,畢浩洋.一種基于粒子群優化的極限學習機[J].鄭州大學學報(理學版),2013,45(01):100-104.

另:如果有伙伴有待解決的優化問題(各種領域都可),可以發我,我會選擇性的更新利用優化算法解決這些問題的文章。

如果這篇文章對你有幫助或啟發,可以點擊右下角的贊(? ??_??)?(不點也行),若有定制需求,可私信作者。

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

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

相關文章

分布式 - 消息隊列Kafka:Kafka 消費者消息消費與參數配置

文章目錄 1. Kafka 消費者消費消息01. 創建消費者02. 訂閱主題03. 輪詢拉取數據 2. Kafka 消費者參數配置01. fetch.min.bytes02. fetch.max.wait.ms03. fetch.max.bytes04. max.poll.records05. max.partition.fetch.bytes06. session.timeout.ms 和 heartbeat.interval.ms07.…

使用 pyodbc 解析chrome瀏覽器導出的書簽并保存到 Microsoft Access 數據庫

使用 wxPython 和 pyodbc 解析書簽并保存到 Microsoft Access 數據庫的示例博客: 本篇博客介紹了如何使用 wxPython 和 pyodbc 庫創建一個簡單的應用程序,用于解析 HTML 文件中的書簽并將其保存到 Microsoft Access 數據庫中。通過這個示例,您…

【Sklearn】基于梯度提升樹算法的數據分類預測(Excel可直接替換數據)

【Sklearn】基于梯度提升樹算法的數據分類預測(Excel可直接替換數據) 1.模型原理2.模型參數3.文件結構4.Excel數據5.下載地址6.完整代碼7.運行結果1.模型原理 梯度提升樹(Gradient Boosting Trees)是一種集成學習方法,用于解決分類和回歸問題。它通過將多個弱學習器(通常…

ONNX版本YOLOV5-DeepSort (rknn版本已經Ready)

目錄 1. 前言 2. 儲備知識 3. 準備工作 4. 代碼修改的地方 5.結果展示 1. 前言 之前一直在忙著寫文檔,之前一直做分類,檢測和分割,現在看到跟蹤算法,花了幾天時間找代碼調試,看了看,展示效果比單純的檢…

手寫代碼-前端面試

GitHub:手寫代碼集合

HTTP響應狀態碼大全:從100到511,全面解析HTTP請求的各種情況

文章目錄 前言一、認識響應狀態碼1. 什么是HTTP響應狀態碼2. Http響應狀態碼的作用3. 優化和調試HTTP請求的建議 二、1xx 信息響應1. 認識http信息響應2. 常見的信息響應狀態碼 三、2xx 成功響應1. 認識HTTP成功響應2. 常見的成功響應狀態碼 四、3xx 重定向1. 認識http重定向2.…

【javascript】isNaN(‘2-1‘)結果為什么是true

在JavaScript中,isNaN函數用于檢查一個值是否為NaN(非數字)。當給定的值無法被解析為數字時,isNaN函數會返回true。 因此,使用isNaN(‘2-1’)進行判斷時,2-1’是一個字符串,它包含一個減號&…

github ssh配置

1、生成公鑰 用下面的命令生成公鑰 ssh-keygen -t rsa -b 4096 -C 郵箱 生成的公鑰默認在文件夾 ~/.ssh/ 下的 id_rsa.pub 2、在github配置本地的公鑰 先復制本地公鑰文件中的內容 cat ~/.ssh/id_rsa.pub 打開github的settings > SSH and GPG keys > new SSH key …

QT如何打包

目錄 1.windeployqt工具 2.工具位置 3.使用方法 4.注意事項 Qt Creator 默認以動態鏈接的方式生成可執行文件,該文件無法獨立運行,必須為其提供所需的動態鏈接庫。也就是說,只分享 Qt Creator 生成的可執行文件是不行的,必須將…

nginx部署時http接口正常,ws接口404

可以這么配置 map $http_upgrade $connection_upgrade {default upgrade; close; }upstream wsbackend{server ip1:port1;server ip2:port2;keepalive 1000; }server {listen 20038;location /{ proxy_http_version 1.1;proxy_pass http://wsbackend;proxy_redirect off;proxy…

C語言,malloc使用規范

malloc 是 C 語言中用于分配內存的函數。它的名稱是“memory allocation”的縮寫。malloc 是在 <stdlib.h> 頭文件中定義的。 malloc 的基本語法是&#xff1a; void* malloc(size_t size); 其中 size_t是要分配的字節數。如果分配成功&#xff0c;malloc返回一個指向分配…

什么是字體堆棧(font stack)?如何設置字體堆棧?

聚沙成塔每天進步一點點 ? 專欄簡介? 什么是字體堆棧&#xff08;Font Stack&#xff09;&#xff1f;? 如何設置字體堆棧&#xff1f;? 寫在最后 ? 專欄簡介 前端入門之旅&#xff1a;探索Web開發的奇妙世界 記得點擊上方或者右側鏈接訂閱本專欄哦 幾何帶你啟航前端之旅 …

【卷積神經網絡】卷積,池化,全連接

隨著計算機硬件的升級與性能的提高&#xff0c;運算量已不再是阻礙深度學習發展的難題。卷積神經網絡&#xff08;Convolution Neural Network&#xff0c;CNN&#xff09;是深度學習中一項代表性的工作&#xff0c;CNN 是受人腦對圖像的理解過程啟發而提出的模型&#xff0c;其…

【分類討論】CF1674 E

Problem - E - Codeforces 題意&#xff1a; 思路&#xff1a; 樣例&#xff1a; 這種分類討論的題&#xff0c;主要是去看答案的最終來源是哪幾種情況&#xff0c;這幾種情況得不重不漏 Code&#xff1a; #include <bits/stdc.h>#define int long longusing i64 lon…

淺談5G技術會給視頻監控行業帶來的一些變革情況

5G是第五代移動通信技術&#xff0c;能夠提供更高的帶寬和更快的傳輸速度&#xff0c;這將為視頻技術的發展帶來大量機會。隨著5G技術的逐步普及與商用&#xff0c;人們將能夠享受到更加流暢的高清視頻體驗&#xff0c;并且5G技術還擁有更低的延遲和更高的網絡容量。這些優勢不…

2023牛客暑期多校訓練營9-B Semi-Puzzle: Brain Storm

2023牛客暑期多校訓練營9-B Semi-Puzzle: Brain Storm https://ac.nowcoder.com/acm/contest/57363/B 文章目錄 2023牛客暑期多校訓練營9-B Semi-Puzzle: Brain Storm題意解題思路代碼 題意 解題思路 歐拉定理 a b ≡ { a b % φ ( p ) g c d ( a , p ) 1 a b g c d ( a ,…

GBU812-ASEMI新能源專用整流橋GBU812

編輯&#xff1a;ll GBU812-ASEMI新能源專用整流橋GBU812 型號&#xff1a;GBU812 品牌&#xff1a;ASEMI 封裝&#xff1a;GBU-4 恢復時間&#xff1a;&#xff1e;50ns 正向電流&#xff1a;80A 反向耐壓&#xff1a;1200V 芯片個數&#xff1a;4 引腳數量&#xff…

Linux系統調試——valgrind內存泄露檢測

代碼可能存在內存泄露怎么辦&#xff1f; 使用valgrind可以對代碼進行內存泄露檢測。 valgrind下載安裝 下載&#xff1a;https://www.valgrind.org/downloads/ 安裝&#xff1a; 1、tar –jxvf valgrind-3.21.0.tar.bz2 2、cd valgrind-3.21.0 3、./configure --prefix/ho…

elementUI date-picker 日期格式轉為 2023/08/08格式

<el-form-item label"基線日期:" prop"baselineDate"><el-date-pickertype"date"v-model"form.baselineDate"placeholder"選擇日期"format"yyyy/MM/dd"change"(date, type) > changeTime(date, …

Springboot 實踐(7)springboot添加html頁面,實現數據庫數據的訪問

前文講解&#xff0c;項目已經實現了數據庫Dao數據接口&#xff0c;并通過spring security數據實現了對系統資源的保護。本文重點講解Dao數據接口頁面的實現&#xff0c;其中涉及頁面導航欄、菜單欄及頁面信息欄3各部分。 1、創建html頁面 前文講解中&#xff0c;資源目錄已經…