數學建模:MATLAB極限學習機解決回歸問題

一、簡述

極限學習機是一種用于訓練單隱層前饋神經網絡的算法,由輸入層、隱藏層、輸出層組成。

基本原理:

輸入層接受傳入的樣本數據。

在訓練過程中隨機生成從輸入層到隱藏層的所有連接權重以及每個隱藏層神經元的偏置值,這些參數在整個訓練過程中不會被修改。

前向傳播:輸入數據通過已設定的權重和偏置傳遞給隱藏層,經過激活函數處理后產生隱藏層的輸出。

在得到隱藏層輸出后,需找到從隱藏層到輸出層的最佳權重。隱藏層到輸出層的映射可以視為一個線性系統,通過最小二乘法方法求解該線性系統的最優解。

利用廣義逆矩陣計算隱藏層到輸出層的連接權重,使得最后的輸出結果盡可能接近目標值。

下面matlab代碼使用極限學習機對光譜數據進行回歸分析,對樣本數據進行預測。?

二、代碼

clear 
clc%導入數據
load spectra_data.mat%隨機產生訓練集和測試集
temp = randperm(size(NIR, 1));
% 訓練集
train_x = NIR(temp(1:50), :)';
train_y = octane(temp(1:50), :)';
% 測試集
test_x = NIR(temp(51:end), :)';
test_y = octane(temp(51:end), :)';
N = size(test_x, 2);%對訓練集和測試集進行歸一化處理
%訓練集
[train_X, inputps] = mapminmax(train_x);
test_X = mapminmax('apply', test_x, inputps);
%測試集
[train_Y, outputps] = mapminmax(train_y);
test_Y = mapminmax('apply', test_y, outputps);%訓練極限學習機模型
%傳入的第三個參數為隱藏層神經元的數量
%傳入的第四個參數表示激活函數的類型,'sig'表示用sigmoid函數作為隱藏層神經元的激活函數
%傳出參數:IW表示輸入權重;B表示隱藏層偏置;LW表示輸出權重;TF表示轉換函數;TYPE表示模型的類型
[IW, B, LW, TF, TYPE] = elmtrain(train_X, train_Y, 30, 'sig', 0);%測試
sim_Y = elmpredict(test_X, IW, B, LW, TF, TYPE);%對測試集預測結果進行反歸一化處理
sim_y = mapminmax('reverse', sim_Y, outputps);%用mse函數求出均方誤差
E = mse(sim_y - test_y);%繪圖
figure(1)
plot(1:N, test_y, 'r-*', 1:N, sim_y, 'b:o')
grid on
legend('真實值','預測值')
xlabel('樣本編號')
ylabel('辛烷值')

三、運行結果

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

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

相關文章

Android15音頻進階之定位混音線程丟幀問題(一百零八)

簡介: CSDN博客專家、《Android系統多媒體進階實戰》一書作者 新書發布:《Android系統多媒體進階實戰》?? 優質專欄: Audio工程師進階系列【原創干貨持續更新中……】?? 優質專欄: 多媒體系統工程師系列【原創干貨持續更新中……】?? 優質視頻課程:AAOS車載系統+…

_ 為什么在python中可以當變量名

在 Python 中,_(下劃線)是一個有效的變量名,這主要源于 Python 的命名規則和一些特殊的使用場景。以下是為什么 _ 可以作為變量名的原因和常見用途: --- ### 1. **Python 的命名規則** Python 允許使用字母&#xff…

Electron+Vite+React+TypeScript開發問題手冊

ElectronViteReactTypeScript跨平臺開發全問題手冊 一、開發環境配置類問題 1.1 依賴安裝卡頓(國內網絡環境) 問題現象:執行npm install時卡在node-gyp編譯或Electron二進制包下載階段 解決方案: # 配置國內鏡像源 npm config …

【計算機網絡入門】初學計算機網絡(七)

目錄 1. 滑動窗口機制 2. 停止等待協議(S-W) 2.1 滑動窗口機制 2.2 確認機制 2.3 重傳機制 2.4 為什么要給幀編號 3. 后退N幀協議(GBN) 3.1 滑動窗口機制 3.2 確認機制 3.3 重傳機制 4. 選擇重傳協議(SR&a…

《Python實戰進階》No 8:部署 Flask/Django 應用到云平臺(以Aliyun為例)

第8集:部署 Flask/Django 應用到云平臺(以Aliyun為例) 2025年3月1日更新 增加了 Ubuntu服務器安裝Python詳細教程鏈接。 引言 在現代 Web 開發中,開發一個功能強大的應用只是第一步。為了讓用戶能夠訪問你的應用,你需…

GitLab Pages 托管靜態網站

文章目錄 新建項目配置博客添加 .gitlab-ci.yml其他配置 曾經用 Github Pages 來托管博客內容,但是有一些不足: 在不科學上網的情況下,是沒法訪問的,或者訪問速度非常慢代碼倉庫必須是公開的,如果設置為私有&#xff0…

TVbox蜂蜜影視:智能電視觀影新選擇,簡潔界面與強大功能兼具

蜂蜜影視是一款基于貓影視開源項目 CatVodTVJarLoader 開發的智能電視軟件,專為追求簡潔與高效觀影體驗的用戶設計。該軟件從零開始編寫,界面清爽,操作流暢,特別適合在智能電視上使用。其最大的亮點在于能夠自動跳過失效的播放地址…

形象生動講解Linux 虛擬化 I/O

用現實生活的比喻和簡單例子來解釋 Linux 虛擬化 I/O,就像給朋友講故事一樣。 虛擬化 I/O 要解決什么問題? 想象你有一棟大房子(物理服務器),想把它分割成多個小公寓(虛擬機)出租。每個租客&…

Java內存管理與性能優化實踐

Java內存管理與性能優化實踐 Java作為一種廣泛使用的編程語言,其內存管理和性能優化是開發者在日常工作中需要深入了解的重要內容。Java的內存管理機制借助于垃圾回收(GC)來自動處理內存的分配和釋放,但要實現高效的內存管理和優…

代碼隨想錄算法訓練營第三十天 | 卡碼網46.攜帶研究材料(二維解法)、卡碼網46.攜帶研究材料(滾動數組)、LeetCode416.分割等和子集

代碼隨想錄算法訓練營第三十天 | 卡碼網46.攜帶研究材料(二維解法)、卡碼網46.攜帶研究材料(滾動數組)、LeetCode416.分割等和子集 01-1 卡碼網46.攜帶研究材料(二維) 相關資源 題目鏈接:46. 攜…

nvidia驅動更新,centos下安裝openwebui+ollama(非docker)

查看centos內核版本 uname -a cat /etc/redhat-release下載對應的程序(這個是linux64位版本通用的) https://cn.download.nvidia.cn/tesla/550.144.03/NVIDIA-Linux-x86_64-550.144.03.run cudnn想辦法自己下一下,我這里是12.x和11.x通用的…

【AIGC系列】4:Stable Diffusion應用實踐和代碼分析

AIGC系列博文: 【AIGC系列】1:自編碼器(AutoEncoder, AE) 【AIGC系列】2:DALLE 2模型介紹(內含擴散模型介紹) 【AIGC系列】3:Stable Diffusion模型原理介紹 【AIGC系列】4&#xff1…

51單片機-串口通信編程

串行口工作之前,應對其進行初始化,主要是設置產生波特率的定時器1、串行口控制盒中斷控制。具體步驟如下: 確定T1的工作方式(編程TMOD寄存器)計算T1的初值,裝載TH1\TL1啟動T1(編程TCON中的TR1位…

Windows 10 遠程桌面連接使用指南

目錄 一、引言 二、準備工作 1、確認系統版本 2、服務器端設置 三、客戶端連接 1、打開遠程桌面連接程序 2、輸入連接信息 3、輸入登錄憑證 4、開始使用遠程桌面 四、移動端連接(以 iOS 為例) 1、下載安裝應用 2、添加遠程計算機 3、進行連接…

spring boot打包插件的問題

在spring boot項目中聲明了 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build> 執行mvn clean package&…

R語言+AI提示詞:貝葉斯廣義線性混合效應模型GLMM生物學Meta分析

全文鏈接&#xff1a;https://tecdat.cn/?p40797 本文旨在幫助0基礎或只有簡單編程基礎的研究學者&#xff0c;通過 AI 的提示詞工程&#xff0c;使用 R 語言完成元分析&#xff0c;包括數據處理、模型構建、評估以及結果解讀等步驟&#xff08;點擊文末“閱讀原文”獲取完整代…

iOS UICollectionViewCell 點擊事件自動化埋點

iOS 中經常要進行埋點&#xff0c;我們這里支持 UICollectionViewCell. 進行自動化埋點&#xff0c;思路&#xff1a; 通過hook UICollectionViewCell 的setSelected:方法&#xff0c; 則新的方法中執行埋點邏輯&#xff0c;并調用原來的方法 直接上代碼 implementation UICol…

課程《MIT Introduction to Deep Learning》

在Youtubu上&#xff0c;MIT Introduction to Deep Learning (2024) | 6.S191 共8節課&#xff1a; (1) MIT Introduction to Deep Learning (2024) | 6.S191 (2) MIT 6.S191: Recurrent Neural Networks, Transformers, and Attention (3) MIT 6.S191: Convolutional Neural N…

Docker 學習(一)

一、Docker 核心概念 Docker 是一個開源的容器化平臺&#xff0c;允許開發者將應用及其所有依賴&#xff08;代碼、運行時、系統工具、庫等&#xff09;打包成一個輕量級、可移植的“容器”&#xff0c;實現 “一次構建&#xff0c;隨處運行”。 1、容器&#xff08;Container…

007 訂單支付超時自動取消訂單(rabbitmq死信隊列 mybatis)

文章目錄 死信隊列RabbitMQ 配置類 RabbitMQConfig.java生產者 OrderTimeoutProducer.java消費者 OrderTimeoutConsumer.java應用配置 application.ymlpom.xml 依賴實體類 Order.java&#xff08;不變&#xff09;Mapper 接口 OrderMapper.java&#xff08;不變&#xff09;服務…