【MATLAB第98期】基于MATLAB的MonteCarlo蒙特卡罗结合kriging克里金代理模型的全局敏感性分析模型(有目标函数)

news2024/12/23 20:32:30

【MATLAB第98期】基于MATLAB的Monte Carlo蒙特卡罗结合kriging克里金代理模型的全局敏感性分析模型(有目标函数)【更新中】


PS:因内容涉及较多,所以一时半会更新不完
后期会将相关原理,以及多种功能详细介绍。
麻烦点赞收藏,及时获取更新消息。

引言

在前面几期,介绍了局部敏感性分析法和sobol全局敏感性分析模型,本期介绍基于MATLAB的MonteCarlo蒙特卡罗结合kriging克里金代理模型全局敏感性分析方法。

往期文章:

【MATLAB第31期】基于MATLAB的降维/全局敏感性分析/特征排序/数据处理回归问题MATLAB代码实现(持续更新)
【MATLAB第32期】【更新中】基于MATLAB的降维/全局敏感性分析/特征排序/数据处理分类问题MATLAB代码实现
【MATLAB第63期】基于MATLAB的改进敏感性分析方法IPCC,拥挤距离与皮尔逊系数法结合实现回归与分类预测
【MATLAB第64期】【保姆级教程】基于MATLAB的SOBOL全局敏感性分析模型运用(含无目标函数,考虑代理模型)

一、Kriging克里金模型

克里金模型讲解参考博主:
steelDK
傻傻虎虎

克里金(Kriging)模型是一种基于空间相关性的插值方法,通过建立半变异函数来描述空间相关性,并利用已知观测点的数值和空间位置来预测未知点的数值。常用于地质、地理和环境科学等领域。
克里金模型的基本原理是通过建立半变异函数来描述空间相关性。半变异函数可以测量两个点之间的相似性程度,它表示两个点之间的数值差异随距离增加而变化的速率。常见的半变异函数包括指数模型、高斯模型和球模型等。克里金模型在应用时有如下假设条件:
(1)、克里金法假设所有数据之间都服从n维的正态分布。
(2)、无偏。
————————————————

克里金模型优点:
1.精度高
Kriging模型通过对已有数据的空间相关性进行建模,能够较准确地估计未观测点的数值,尤其适用于连续变量的插值。
2.不受外部影响
Kriging模型不仅仅依赖于周围点的数值,还考虑了点之间的空间相关性。因此,它对异常值和局部波动有较好的免疫性,能够提供相对稳定的估计结果。
3.提供不确定性估计
Kriging模型不仅能够给出点估计值,还能给出估计的不确定性。通过计算协方差函数,可以得到预测值的方差和置信区间,提供了对预测结果的可靠性评估。

克里金模型缺点:
1.数据需满足空间相关性
Kriging模型的建立基于变量的空间相关性,因此,如果数据的空间相关性很弱或不存在,模型可能不适用。此外,Kriging模型对于大数据量的计算需求较高。
2.对模型参数的选择敏感
Kriging模型的结果受到模型参数的影响,包括半方差函数的参数和拟合方法等。选择合适的参数值对于结果的准确性很重要,但也较为困难。
3.不适用于非线性插值
Kriging模型是一种线性插值方法,对于非线性、非正态的数据拟合效果较差。在这种情况下,可能需要使用其他插值方法。
4.计算复杂度较高
Kriging模型在进行预测时需要计算协方差矩阵的逆矩阵,这一过程的计算复杂度较高,尤其是当数据量较大时会增加计算的困难度。

二、蒙特卡洛模拟

(1)评价指标

评价指标包括:一阶影响指数S,总效应指数ST,与sobol评价方法一致。

*一阶影响指数S:*显示由各个输入变量的方差产生的因变量的方差,根据一阶影响指数可以量化单个变量对模型的敏感程度

总效应指数ST:显示由每个输入变量的方差及其与其他输入变量的相互作用而产生的因变量的方差。

其中直方图按总效应指数ST排序。因变量对具有最高总效应指数ST的输入变量最敏感。

输入变量的总效应指数ST和一阶影响指数S之间的差异可以衡量该输入与其他输入变量之间相互作用的效果。

(2)参数

克里金参数:

%*regr:回归模型的函数句柄。
%*corr:相关函数的函数句柄。
%*theta:相关函数参数。
%*beta:广义最小二乘估计。
%*gamma:相关系数。
%*sigma2:过程方差的最大似然估计。
%*S:按比例设计的场地。
%*Ssc:设计参数的比例因子。
%*Ysc:设计坐标的比例因子。
%*C:相关矩阵的Cholesky因子。
%*Ft:不相关回归矩阵。
%*G:根据QR因子分解:Ft=Q*G'。

使用MCGSA函数蒙特卡罗进行全局灵敏度分析,即使用蒙特卡罗模拟计算个体效应和总效应(仿照Sobol方差计算)。其中,四个参数包括(func、str、bounds、npop):
输入参数:

  1. func是代理结构
  2. str是字符串标识代理项
  3. bounds是定义用于拟合代理项的输入空间的矩阵(第一行和第二行分别是下限和上限)
  4. npop是蒙特卡罗样本的数量(npop一般大于5000)

输出参数:

  1. output是指分析结果(结构变量):

其中,individual :个体效应矩阵结构(一阶影响指数S)
total:总效应矩阵结构(总效应指数ST)。

三、全局敏感性分析(有目标函数)

有目标函数情况下,可以直接结合MonteCarlo蒙特卡罗模拟进行全局敏感性分析,参考第64期sobol方法。本文仅介绍有目标函数情况下如何调用克里金模型。

VarMin=[0 0 0];%各个参数下限
VarMax=[10  10 10];%各个参数上限
bounds=[VarMin;VarMax]
 % 创建DoE
   dim       = 3;% 优化变量数量
   numpop = 20;%采样点个数,也就是参数水平数 ,取大了好,比如4000,但慢
    X = LHS(numpop, dim,bounds);% 拉丁超立方抽样

通过使用平移传播算法(TPA)生成拉丁超立方体设计。目标是在不使用形式优化的情况下获得最优(或接近最优)拉丁超立方体设计。该过程需要最少的计算工作量,并且结果实际上是实时提供的。该算法利用点位置模式,基于PHIp准则(最大距离准则的变体)进行最优拉丁超立方体设计。由一个或多个点组成的小构建块(称为SEED)用于通过在超空间中的简单平移来重新创建这些模式。在TPA的开发过程中进行的研究发现:
(i)随着维度的增加,PHIp的分布倾向于降低值;
(ii)通过TPA获得的拉丁超立方体设计代表了高达中等尺寸的最佳拉丁超立方体的有吸引力的替代方案。得出的结论是,对于多达六个维度(无论点密度如何),所提出的拉丁超立方体设计提供了最优拉丁超立方体的计算上廉价的估计。设计的每一行代表一个运行(或示例)。设计变量被规范化,使得超立方体点的值在0和1之间。
参考文献: Viana FAC, Venter G, and Balabanov V, “An algorithm for fast optimal Latin hypercube design of experiments,” International Journal for Numerical Methods in Engineering, Vol. 82 (2), pp. 135-156, 2010 (DOI:10.1002/nme.2750).

%X= sobolset(dim);%或者参考64期sobol抽样方法。 

% 目标函数响应
for i=1:numpop
Y(i,:) = myfun(X(i,:)); %
end

**A、设定目标函数(3个变量,即维度D=3)** 
Y=X1^2+2*X2+X3-1
```matlab
y=x(1)^2+2*x(2)+x(3)-1;

B、设定变量上下限

VarMin=[0 0 0];%各个参数下限
VarMax=[10  10 10];%各个参数上限

C、建立克里金模型

训练集输入输出建立:

X = lhsdesign(numpop, dim);% 拉丁超立方抽样
       
    %X= sobolset(dim);%或者参考64期sobol抽样方法。 
 % 目标函数响应
for i=1:numpop
 Y(i,:) = myfun(X(i,:)); %
end

模型拟合:

opt  = krigingtrain(X, Y);
 kopt = krigingfit(opt );

D、设定MC参数

npop = 200; %蒙特卡罗模拟的点数
sv=‘LHS’% 选择对应的抽样方法,比如LHS

E、生成样本矩阵
基本与64期sobol一致

% 创建A矩阵
Xa = rand(npop, dim);
Xa = SV(Xa, [zeros(1,dim); ones(1,dim)], bounds);

% 创建B矩阵
Xb = rand(npop, dim);
Xb = SV(Xb, [zeros(1,dim); ones(1,dim)], bounds);
通过将B的第i列替换为A的第i行,为每个输入变量生成C矩阵
% 创建C矩阵
C = zeros(npop,dim,dim);
for c1 = 1 : dim
    C(:,:,c1)  = Xb;
    C(:,c1,c1) = Xa(:,c1);
end

F、GSA分析

output = MCGSA(func, str, Xa, Xb)

一阶影响指数S值、总效应指数ST值计算公式:

在这里插入图片描述
var方差函数为matlab自带

绘图:

在这里插入图片描述

四、代码获取

1.阅读首页置顶文章
2.关注CSDN
3.根据自动回复消息,回复“98期”以及相应指令,即可获取对应下载方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1508333.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CMU 10-414/714: Deep Learning Systems --hw0

hw0 宏观上的步骤: softmax loss: 实现softmax loss代码 概念 softmax就是将结果映射到0~1之间,且所有结果相加为1(概率形式)cross-entropy loss就是计算 p ( x ) log ⁡ q ( x ) p(x)\log {q(x)} p(x)logq(x),此值可用于衡量实际输出与期望输出的距离,进而衡量预测模…

分支需求管理方式

此文为上一篇文章的后续 我们来回顾一下,现在,你的小组负责的系统,有主干分支,每次新的需求,你都从主干(formal)拉取分支(dev-日期-需求名)进行修改,自测通过后,合并至测试分支(test)进行提测&a…

【内推】新风口-大模型独角兽公司minimax

先上内推链接: MiniMax社招内推码: AK3XEJ6 投递链接: https://vrfi1sk8a0.jobs.feishu.cn/s/iFY5WFgE 岗位:前端、后端、算法,基础架构都有,大量hc 公司介绍: 国内同时拥有文本、语音、视觉三种基础大模型能力的创业…

不要在代码中随便使用try...catch了

前言 📫 大家好,我是南木元元,热爱技术和分享,欢迎大家交流,一起学习进步! 🍅 个人主页:南木元元 目录 背景 js中的try...catch try...catch运行机制 js的事件循环机制 try...c…

动态代理以及Retrofit的原理

代理模式) 首先什么是代理模式? 代理模式就是通过引入代理对象去帮助真实对象完成一些事情,防止直接访问目标对象给系统带来不必要的复杂性。 代理模式一般分为三个角色: 抽象角色: 指代理对象和真实对象对外提供的…

等保2.0 测评 linux服务器加固 基本安全配置手册

1.删除系统特殊的的用户帐号: 禁止所有默认的被操作系统本身启动的且不需要的帐号,当你第一次装上系统时就应该做此检查,Linux提供了各种帐号,你可能不需要,如果你不需要这个帐号,就移走它,你有的帐号越多,就越容易受到攻击。 #为删除你系统上的用户,用下面的命令:…

Python中的并发编程:多线程与多进程的比较【第124篇—多线程与多进程的比较】

Python中的并发编程:多线程与多进程的比较 在Python编程领域中,处理并发任务是提高程序性能的关键之一。本文将探讨Python中两种常见的并发编程方式:多线程和多进程,并比较它们的优劣之处。通过代码实例和详细的解析,…

【C++庖丁解牛】STL之vector容器的介绍及使用 | vector迭代器的使用 | vector空间增长问题

📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 目录 1.1 vector的介绍2 v…

【数据结构:树与堆】向上/下调整算法和复杂度的分析、堆排序以及topk问题

文章目录 1.树的概念1.1树的相关概念1.2树的表示 2.二叉树2.1概念2.2特殊二叉树2.3二叉树的存储 3.堆3.1堆的插入(向上调整)3.2堆的删除(向下调整)3.3堆的创建3.3.1使用向上调整3.3.2使用向下调整3.3.3两种建堆方式的比较 3.4堆排…

基于Spring Boot+ Vue的房屋租赁系统

末尾获取源码作者介绍:大家好,我是墨韵,本人4年开发经验,专注定制项目开发 更多项目:CSDN主页YAML墨韵 学如逆水行舟,不进则退。学习如赶路,不能慢一步。 目录 一、项目简介 二、开发技术与环…

水电站泄洪闸预警系统技术改造项目方案

一、工期安排 2024年1月10日至1月30日,共20天,水电站泄洪闸预警系统建设项目主要以计划工作任务为依据开展并控制工期。 二、预警系统建设项目 水电站泄洪闸预警系统技术改造项目实施内容主要是在每个确定后的预警广播站点采用基础开挖预制地笼浇筑混凝…

【Python】一文详细介绍 plt.rcParamsDefault 在 Matplotlib 中的原理、作用、注意事项

【Python】一文详细介绍 plt.rcParamsDefault 在 Matplotlib 中的原理、作用、注意事项 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程…

GeoPy1.1 地理数据处理入门

原作者:Damon 高校教师,中科院 GIS 博士 本文为原文章基础上,加上自己以及GPT4.0的总结整理而来 原活动链接 目录 前言小练习:求一周的平均温度小练习:将文件夹下的文件路径都打印出来:小练习&#xff1a…

ManualResetEvent 在线程中的使用C#

ManualResetEvent 用于表示线程同步事件,可以使得线程等待信号发射之后才继续执行下一步,否则一直处于等待状态中。 ManualResetEvent 的常用方法 构造函数ManualResetEvent(bool); ManualResetEvent manualResetEvent new ManualResetEvent(false…

医疗健康机器人_血压血糖血氧中医AI远程医疗定制方案

为人们提供了更加便捷、全面的健康管理服务,开发一款智能医疗健康机器人产品,为用户提供了多项便捷的服务,包括多体征检测、在线问诊、预约挂号、在线购药、健康科普教育等。这些服务构成了从疾病咨询到问诊再到健康管理的闭环,使…

系统学习c++类和对象——深度理解默认成员函数

前言:类和对象是面向对象语言的重要概念。 c身为一门既面向过程,又面向对象的语言。 想要学习c, 首先同样要先了解类和对象。 本节就类和对象的几种构造函数相关内容进行深入的讲解。 目录 类和对象的基本概念 封装 类域和类体 访问限定符…

ICLR 2024 | Meta AI提出ViT寄存器结构,巧妙消除大型ViT中的伪影以提高性能

论文题目:Vision Transformers Need Registers 论文链接:https://arxiv.org/abs/2309.16588 视觉Transformer(ViT)目前已替代CNN成为研究者们首选的视觉表示backbone,尤其是一些基于监督学习或自监督学习预训练的ViT&a…

前端实现生成图片并批量下载,下载成果物是zip包

简介 项目上有个需求,需要根据表单填写一些信息,来生成定制的二维码图片,并且支持批量下载二维码图片。 之前的实现方式是直接后端生成二维码图片,点击下载时后端直接返回一个zip包即可。但是项目经理说后端实现方式每次改个东西…

elasticsearch(学习笔记)(分布式搜索引擎)(黑马)(kibana操作)

一、索引库操作 索引库就类似数据库表,mapping映射就类似表的结构。 我们要向es中存储数据,必须先创建“库”和“表”。 1、mapping映射属性 mapping是对索引库中文档的约束,常见的mapping属性包括: type:字段数据类型…

树莓派安装Nginx服务搭建web网站结合内网穿透实现公网访问本地站点

文章目录 1. Nginx安装2. 安装cpolar3.配置域名访问Nginx4. 固定域名访问5. 配置静态站点 安装 Nginx(发音为“engine-x”)可以将您的树莓派变成一个强大的 Web 服务器,可以用于托管网站或 Web 应用程序。相比其他 Web 服务器,Ngi…