【MATLAB第84期】基于MATLAB的波形叠加极限学习机SW-ELM代理模型的sobol全局敏感性分析法应用

news/2024/7/7 0:36:58

【MATLAB第84期】基于MATLAB的波形叠加极限学习机SW-ELM代理模型的sobol全局敏感性分析法应用

前言

跟往期sobol区别:
1.sobol计算依赖于验证集样本,无需定义变量上下限。
2.SW-ELM自带激活函数,计算具有phi(x)=e^x激活函数的单层神经网络的一阶和总Sobol指数
本篇文章将演示如何实现波形叠加极限学习机SW-ELM来计算示例模型的一阶和总Sobol指数。

共有四个部分:
1.生成训练和验证集
2.构建ELM的参数。要使用多少个基函数?使用什么正则化参数?要测试哪些稀疏化参数?
3.SW-ELM代理构建并执行全局敏感性分析
4.绘图

一、生成训练和验证集

clear all
res = xlsread('数据集.xlsx');

%%  划分训练集和测试集
%temp = randperm(103);
temp=1:103
P_train = res(temp(1: 80), 1: 7)';
T_train = res(temp(1: 80), 8)';
M = size(P_train, 2);

P_test = res(temp(81: end), 1: 7)';
T_test = res(temp(81: end), 8)';
N = size(P_test, 2);

%%  数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);

[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);

%%  转置以适应模型
p_train = p_train'; p_test = p_test';
t_train = t_train'; t_test = t_test';

二、ELM参数设置

model_data.nneurons=500;%隐藏层神经元的数量,即ELM基函数
model_data.lambda=1e-4;%L2正则化参数
p_list=[0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 0.99];%这里列出了所有要测试的稀疏化参数。
p_sz = length(p_list); %要测试的稀疏化参数的数量

ndim = size(p_train,2); %输入维度
s_sz = size(p_train,1);%训练集大小
Xd_train = p_train; Yd_train = t_train;

va_sz = size(p_test,1); % 验证集数量
Xd_valid = p_test; Yd_valid = t_test;

三、SW-ELM代理构建并执行全局敏感性分析

 elm_valid = exp(Xd_valid * W + bias) * beta;
rel(j) = rel(j) + norm(Yd_valid - elm_valid) / norm(Yd_valid); %选择哪一个稀疏化参数最好的相对误差估计
[W,bias,beta] = ELM(Xd_train,Yd_train,model_data);
elm_valid = exp(Xd_valid * W + bias) * beta; 
T_sim2 = mapminmax('reverse', elm_valid, ps_output);
error = norm(T_test' - T_sim2) / norm(T_test'); % SW-ELM误差
[sobolR,sobolT,sig2] = sobol_elm(W,beta,bias); % 最后这个函数计算灵敏度指数

四、绘图

在这里插入图片描述
在这里插入图片描述

五、代码获取

私信回复“84期”即可获取下载链接。


http://lihuaxi.xjx100.cn/news/1907401.html

相关文章

(自适应手机版)英文外贸网站模板 - 带三级子目录

(自适应手机版)英文外贸网站模板 - 带三级子目录 PbootCMS内核开发的网站模板,该模板适用于外贸网站、英文网站类等企业,当然其他行业也可以做,只需要把文字图片换成其他行业的即可; 自适应手机版,同一个后台&#x…

TikTok获客工具定制开发怎么做?

随着社交媒体的兴起,越来越多的企业开始把目光投向了海外市场,而在这个数字化时代,TikTok已经成为了一个备受欢迎的短视频平台,不仅吸引了大量的年轻用户,也成为了许多企业的新宠。 但是,如何在TikTok上获…

mysql:查看尝试连接mysql服务器的次数(包含成功和失败的尝试)

运行命令show global status like Connections;查看尝试连接mysql服务器的次数(包含成功和失败的尝试)。 例如:

云原生系列3-Kubernetes

1、Kubernetes概述 k8s缩写是因为k和s之间有八个字符。k8s是基于容器技术的分布式架构方案。官网:https://kubernetes.io/zh-cn/ Google在 2014年开源了Kubernetes项目,Kubernetes是一个用于自动化部署、扩展和管理容器化应用程序的开源系统。同样类似的…

Windows 文件清理脚本

情况描述 有一台Windows Server服务器,开启FTP用来存储Java应用dump文件,需要定时清理,考虑有两种清理方案: 方案一: 在Linux通过挂载Windows共享目录,cifs 文件系统,通过Shell 脚本 定时任务…

SAP ABAP 报表程序status报错 无法将此项功能指派给按钮解决办法

文章目录 前言解决办法 前言 当我们新建的STATUS自定义按钮太多 导致不能再建新的按钮时会报错 具体看报错消息 解决办法 删除几个标准用不上的就行了

开源免费图床Lychee本地部署搭建个人云图床并公网访问【内网穿透】

文章目录 1.前言2. Lychee网站搭建2.1. Lychee下载和安装2.2 Lychee网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 图床作为图片集中存放的服务网站,可以看做是云存储的一部分,既可…

【ET8框架入门】5.YooAsset和HybridCLR篇

YooAsset简介 YooAsset是一套用于Unity3D的资源管理系统,用于帮助研发团队快速部署和交付游戏。 易于上手:不需要复杂的界面配置,专注于中国开发者的使用体验,可以帮助研发团队快速部署和交付游戏。 功能强大:可以满…