【MATLAB第119期】基于MATLAB的KRR多輸入多輸出全局敏感性分析模型運用(無目標函數,考慮代理模型)

【MATLAB第119期】基于MATLAB的KRR多輸入多輸出全局敏感性分析模型運用(無目標函數,考慮代理模型)

下一期研究SHAP的多輸入多輸出敏感性分析方法

一、SOBOL(無目標函數)

(1)針對簡單線性數據及非線性數據,用函數擬合得到公式,隨后思路與上面一致。
(2)無法擬合得到公式, 即復雜非線性函數,需要通過借用機器學習模型,作為訓練學習模型(黑箱子模型)
本文具體研究攻克第二種情況
有個前提(模型擬合性較好,對應數據較好)
即訓練學習模型, 訓練集和測試集擬合效果很棒。
如果擬合效果差,SOBOL分析結果一定存在較大誤差。
本文選用多輸入多輸出模型KRR,效果好且比BP穩定。

1.運行思路

A、設定KRR代理模型和變量上下限(6個變量,2個因變量,維度D=6)
(1).選用KRR模型作為代理模型*
代理模型講究運行效率快、精度高、模型簡單 ,適用于多輸入多輸出,與BP訓練效果進行對比
(2).數據設置:常用的案例數據 ,103*8 ,前6列代表輸入變量, 最后2列代表因變量。

(3).選用模型后,幾個點需要注意:
(1)數據固定,即訓練樣本/測試樣本固定, 所代表的模型評價才夠穩定。

(2)使用固定算子函數代碼(神經網絡代理模型是必要的) ,即開頭代碼為: rng default 或者rng(M)等 ,M根據實際測試效果確定。可固定輸出結果,保證運行結果一致。此一致代表此刻你打開的matlab, 在不關閉情況下每次運行結果一致。跟matlab版本有關,系統版本,以及電腦有關。

(3)最為關鍵的一點 ,變量的上下限不能超過案例數據的上下限,為了保證模型的普適性和有效性!!!
比如案例數據的訓練樣本中, X1-X6的最小值為:
[137 0 0 160 4.40000000000000 708]
X1-X6的最大值為:
[374 193 260 240 19 1049.90000000000]
那么你的sobol序列生成的數據也只能在這個范圍,才能保證代理模型的有效性。
(4)生成樣本的數量當然以多為好, 但不能跟案例數據樣本數量差距太大,減少偶然性。
(5)代理模型效果
KRR:
在這里插入圖片描述

=== 輸出1評價指標 ===
訓練集: R2=0.9975, MAE=2.0306, MBE=-0.0019
測試集: R2=0.9887, MAE=4.5770, MBE=-0.7719

=== 輸出2評價指標 ===
訓練集: R2=0.9969, MAE=0.3082, MBE=-0.0001
測試集: R2=0.9937, MAE=0.4756, MBE=0.0310

BP:
在這里插入圖片描述

=== 輸出1評價指標 ===
訓練集: R2=0.9901, MAE=5.0527, MBE=1.4881
測試集: R2=0.9813, MAE=5.4096, MBE=-0.8009

=== 輸出2評價指標 ===
訓練集: R2=0.9728, MAE=1.0644, MBE=0.1991
測試集: R2=0.9416, MAE=1.3128, MBE=0.1372

%% 設定:給定參數個數和各個參數的范圍
D=6;% 6個參數
M=D*2;%
nPop=400;% 采樣點個數,跟訓練樣本數量大概一致
VarMin=[137	0	0	160	4.40000000000000	708];%各個參數下限
VarMax=[374	193	260	240	19	1049.90000000000];%各個參數上限

B、生成sobol序列樣本數據

1、 生成多組N*M(即N行12列)的樣本矩陣p。用自帶函數sobolset生成。
p= sobolset(M)

2、 篩選nPop*M(即400行12列)的樣本矩陣R。

for i=1:nPop% 選取前nPop行被上下限空間處理后的樣本r=p(i,:);r=VarMin+r.*(VarMax-VarMin);R=[R; r]; 
end

C、R樣本拆分變換(提高樣本豐富度)

1.將矩陣的前D列設置為矩陣A,后D列設置為B列,在我們的例子中就是矩陣m的前6列設置為矩陣A,后6列設置為矩陣B。

A=R(:,1:D);% 每行代表一組參數,其中每列代表每組參數的一個參數;行數就代表共有幾組參數
B=R(:,D+1:end);

2.構造nPopDD_out的矩陣ABi(i = 1,2,…,D),即用矩陣B中的第i列替換矩陣A的第i列,以本體為例:

AB = zeros(nPop, D, D_out)  % 400*600*2

AB=
在這里插入圖片描述

經過這三步我們構造了A、B、AB1、AB2這五個矩陣,這樣我們就有4 * nPop組輸入數據,因此我們將有4 * nPop的Y1、Y2值。將上述的數據帶入函數 ,這里詳細的計算過程就不描述了。根據輸入我們得出對應的Y1、Y2值矩陣。
D、計算所有樣本對應的Y值

for i=1:nPopYA(i)=myfun(A(i,:));  %A矩陣對應的YA值YB(i)=myfun(B(i,:));%B矩陣對應的YB值for j=1:DYAB(i,j)=myfun(AB(i,:,j));%YAB矩陣對應的YAB值end
end

[YA YB YAB1 YAB2 ]組合起來
依次各列數據代表YA YB YAB1 YAB2 值

E、一階影響指數S值、總效應指數ST值計算

1.計算公式:
在這里插入圖片描述
var方差函數為matlab自帶

2.一階影響指數S值

VarX=zeros(D,1);% S的分子
S=zeros(D,1);
VarY=var([YA;YB],1);% S的分母。 計算基于給定的樣本總體的方差(EXCEL var.p())
for i=1:Dfor j=1:nPopVarX(i)=VarX(i)+YB(j)*(YAB(j,i)-YA(j));endVarX(i)=1/nPop*VarX(i);S(i)=VarX(i)/VarY;  %一階影響指數
end

3.總效應指數ST值

for i = 1:Dfor k = 1:D_outsum_term = 0;for j = 1:nPopsum_term = sum_term + (YA(j, k) - AB(j, i, k))^2;endST0(i, k) = (1/(2*nPop)) * sum_term / VarY(k);end
end

4.SOBOL模型分析

(1) KRR
在這里插入圖片描述

(2)BP
在這里插入圖片描述
KRR和BP結果有一些出入,可見代理模型的重要性,

三、代碼獲取

1.閱讀首頁置頂文章
2.關注CSDN
3.根據自動回復消息,回復“119期”以及相應指令,即可獲取對應下載方式。

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

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

相關文章

Linux常用文件目錄命令

瀏覽目錄命令: ls 、pwd目錄操作命令:cd、mkdir、rmdir瀏覽文件命令:cat、more、less、head、tail文件操作命令:cp、rm、mv、find、grep、tar 瀏覽目錄命令 ls ? 命令名稱:ls ? 命令英文原意:list ? …

PIN碼vs密碼,電腦登錄的快捷鍵你用對了嗎?

你是否也遇到過這樣的窘境:信心滿滿地輸入電腦開機密碼,屏幕卻無情地提示“密碼錯誤”。仔細一看,才發現登錄界面悄悄地變成了要求輸入“PIN碼”。這種因為混淆了PIN碼和賬戶密碼而導致的開機失敗,相信不少朋友都碰到過。 PIN碼作…

【大模型科普】AIGC技術發展與應用實踐(一文讀懂AIGC)

【作者主頁】Francek Chen 【專欄介紹】 ? ? ?人工智能與大模型應用 ? ? ? 人工智能(AI)通過算法模擬人類智能,利用機器學習、深度學習等技術驅動醫療、金融等領域的智能化。大模型是千億參數的深度神經網絡(如ChatGPT&…

Spring是如何解決Bean的循環依賴:三級緩存機制

1、什么是 Bean 的循環依賴 在 Spring框架中,Bean 的循環依賴是指多個 Bean 之間?互相持有對方引用?,形成閉環依賴關系的現象。 多個 Bean 的依賴關系構成環形鏈路,例如: 雙向依賴:Bean A 依賴 Bean B,同時 Bean B 也依賴 Bean A(A?B)。鏈條循環: Bean A → Bean…

XXE漏洞知識

目錄 1.XXE簡介與危害 XML概念 XML與HTML的區別 1.pom.xml 主要作用 2.web.xml 3.mybatis 2.XXE概念與危害 案例:文件讀取(需要Apache >5.4版本) 案例:內網探測(雞肋) 案例:執行命…

02-性能方案設計

需求分析與測試設計 根據具體的性能測試需求,確定測試類型,以及壓測的模塊(web/mysql/redis/系統整體)前期要與相關人員充分溝通,初步確定壓測方案及具體的性能指標QA完成性能測試設計后,需產出測試方案文檔發送郵件到項目組&…

STL優先級隊列的比較函數與大堆小堆的關系

STL中的priority_queue&#xff08;優先級隊列&#xff09;通過比較函數來確定元素的優先級順序&#xff0c;從而決定其內部是形成大堆還是小堆。以下是關鍵點總結&#xff1a; 默認行為與大堆&#xff1a; 默認情況下&#xff0c;priority_queue使用std::less<T>作為比較…

React---day11

14.4 react-redux第三方庫 提供connect、thunk之類的函數 以獲取一個banner數據為例子 store&#xff1a; 我們在使用異步的時候理應是要使用中間件的&#xff0c;但是configureStore 已經自動集成了 redux-thunk&#xff0c;注意action里面要返回函數 import { configureS…

OD 算法題 B卷【反轉每對括號間的子串】

文章目錄 反轉每對括號間的子串 反轉每對括號間的子串 給出一個字符串s&#xff0c; 僅含有小寫英文字母和英文括號’(’ ‘)’&#xff1b;按照從括號內到外的順序&#xff0c;逐層反轉每對括號中的字符串&#xff0c;并返回最終的結果&#xff1b;結果中不能包含任何括號&am…

如何做好一份技術文檔?從規劃到實踐的完整指南

如何做好一份技術文檔&#xff1f;從規劃到實踐的完整指南 &#x1f31f; 嗨&#xff0c;我是IRpickstars&#xff01; &#x1f30c; 總有一行代碼&#xff0c;能點亮萬千星辰。 &#x1f50d; 在技術的宇宙中&#xff0c;我愿做永不停歇的探索者。 ? 用代碼丈量世界&…

css的定位(position)詳解:相對定位 絕對定位 固定定位

在 CSS 中&#xff0c;元素的定位通過 position 屬性控制&#xff0c;共有 5 種定位模式&#xff1a;static&#xff08;靜態定位&#xff09;、relative&#xff08;相對定位&#xff09;、absolute&#xff08;絕對定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…

詳細講解Flutter GetX的使用

Flutter GetX 框架詳解&#xff1a;狀態管理、路由與依賴注入 GetX 是 Flutter 生態中一款強大且輕量級的全功能框架&#xff0c;集成了狀態管理、路由管理和依賴注入三大核心功能。其設計理念是簡潔高效&#xff0c;通過最小的代碼實現最大的功能&#xff0c;特別適合快速開發…

【大模型:知識庫管理】--Dify接入RAGFlow 知識庫

ragflow的官方文檔&#xff1a; HTTP API 接口 |抹布流 --- HTTP API | RAGFlow 接著前文&#xff0c;我們已經創建了知識庫&#xff0c;那么如何才能使用它呢&#xff1f; 當然也是通過網絡API的形式去調用它。本文將講解兩種方式&#xff1a; Dify調用python源碼調用 目錄…

Vue 模板配置項深度解析

Vue 模板配置項深度解析 在 Vue 組件開發中&#xff0c;template 是定義組件視圖結構的核心配置項。作為 Vue 專家&#xff0c;我將全面解析模板的各個方面&#xff0c;幫助你掌握高效構建 Vue 組件的藝術。 一、模板基礎概念 1. 模板的本質 聲明式渲染&#xff1a;描述 UI…

基于深度哈希與圖索引的十億級圖像近重復檢測系統

引言 在上一篇文章中,我們介紹了基于Vision API和SimHash的億級圖像去重方案。本文將更進一步,探討如何應對十億級圖像庫的近重復檢測挑戰,提出一種結合深度哈希學習與圖索引的創新架構。該系統在多個關鍵指標上比傳統方法提升顯著: 檢測精度提升:mAP@100達到0.92(傳統方…

Python開發基礎手語識別(基礎框架版)

一、前期準備 想要實現這些&#xff0c;首先就是要模擬出來一個大致的框架&#xff0c;方便后續開展&#xff0c;下面的就是隨便寫的一個框架&#xff0c;大家湊合看看就行&#xff0c;基本上是這個意思&#xff1a; from tkinter import *w Tk() w.title("手語識別&am…

React從基礎入門到高級實戰:React 實戰項目 - 項目一:在線待辦事項應用

React 實戰項目&#xff1a;在線待辦事項應用 歡迎來到本 React 開發教程專欄的第 26 篇&#xff01;在之前的 25 篇文章中&#xff0c;我們從 React 的基礎概念逐步深入到高級技巧&#xff0c;涵蓋了組件、狀態、路由和性能優化等核心知識。這一次&#xff0c;我們將通過一個…

1991-2024年上市公司個股換手率數據

1991-2024年上市公司個股換手率數據 1、時間&#xff1a;1991-2024年 2、來源&#xff1a;上海證券交易所和深圳證券交易所 3、指標&#xff1a;證券代碼、交易年份、開始日期、截止日期、年換手率(流通股數)(%)、年換手率(總股數)(%)、日均換手率(流通股數)(%)、日均換手率…

RAID存儲技術概述

1 數據存儲架構 數據存儲架構是對數據存儲方式、存儲設備及相關組件的組織和規劃&#xff0c;涵蓋存儲系統的布局、數據存儲策略等&#xff0c;它明確數據如何存儲、管理與訪問&#xff0c;為數據的安全、高效使用提供支撐。 1.1 存儲系統 存儲系統是計算機的重要組成部分之…

LRU 和 DiskLRU實現相冊緩存器

我是寫Linux后端的&#xff08;golang、c、py&#xff09;&#xff0c;后端緩存算法通常是指的是內存里面的lru、或diskqueue&#xff0c;都是獨立使用。 很少有用內存lru與disklru結合的場景需求。近段時間研究android開發&#xff0c;里面有一些設計思想值得后端學習。 寫這…