【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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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;里面有一些设计思想值得后端学习。 写这…