当前位置: 首页 > news >正文

【MATLAB第104期】基于MATLAB的xgboost的敏感性分析/特征值排序计算(针对多输入单输出回归预测模型)

【MATLAB第104期】基于MATLAB的xgboost的敏感性分析/特征值排序计算(针对多输入单输出回归预测模型)

因matlab的xgboost训练模型不含敏感性分析算法,本文通过使用single算法,即单特征因素对输出影响进行分析,得出不同特征变量对应的权重。

一、数据部分代码

%%  导入数据
res = xlsread('数据集.xlsx');%%  划分训练集和测试集
temp = randperm(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);

二、敏感性分析部分代码

%%  敏感性分析
serdata.ft = p_test';%测试集输入
userdata.target = t_test';%测试集输出
nSel = size(p_test,1);%选择的特征数量 ,可以小于等于变量特征数
mtds = {@regression_ftSel_single};% single方法
nMtd = length(mtds);%方法数量
for iMtd = 1:nMtd[ftRank,ftScore,errs] = mtds{iMtd}(p_train',t_train',p_test,t_test);	%仅在训练集上选择特征end
A=[[1:nSel]',errs'];
B2=A;[W] = B2(:,2)';
for i=1:size(W,2)WW(1,i)=(1./W(1,i))./sum(1./W);
endfigure()
bar(WW)
xlabel('特征变量')
%set(gca,'XTickLabel',{'x1','x2','x3'})
xlabel("影响因素");ylabel("敏感度");
title('敏感性分析')

三、运行效果

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

训练集数据的R2为:0.99952
测试集数据的R2为:0.90306
训练集数据的MAE为:0.061008
测试集数据的MAE为:1.9449
训练集数据的MBE为:0.001729
测试集数据的MBE为:-0.54221

四、代码获取

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

http://www.lryc.cn/news/337216.html

相关文章:

  • C语言程序与设计——工程项目开发
  • 【Java核心技术】第6章 接口
  • 【Java探索之旅】从输入输出到猜数字游戏
  • 【动态规划】【01背包】Leetcode 1049. 最后一块石头的重量 II
  • 2023 年上海市大学生程序设计竞赛 - 四月赛
  • 别让这6个UI设计雷区毁了你的APP!
  • 继承【C/C++复习版】
  • 题目 2694: 蓝桥杯2022年第十三届决赛真题-最大数字【暴力解法】
  • 【C语言】- C语言字符串函数详解
  • 如何实现小程序滑动删除组件+全选批量删除组件
  • 基于SSM+Jsp+Mysql的农产品供销服务系统
  • ​​​​网络编程学习探索系列之——广播原理剖析
  • 小程序开发SSL证书下载和安装
  • 医疗图像分割 | 基于Pyramid-Vision-Transformer算法实现医疗息肉分割
  • 蓝桥杯 每日2题 day5
  • [ 云计算 | AWS 实践 ] Java 应用中使用 Amazon S3 进行存储桶和对象操作完全指南
  • 循环单链表算法库
  • WPS二次开发系列:Gradle版本、AGP插件与Java版本的对应关系
  • 绿联 安装MariaDB数据库用于Seatable服务
  • Spark, Storm, Flink简介
  • 【攻防世界】mfw(.git文件泄露)
  • 递归神经网络(Recursive Neural Networks)
  • 【leetcode面试经典150题】29.三数之和(C++)
  • ThinkPHP审计(1) 不安全的SQL注入PHP反序列化链子phar利用简单的CMS审计实例
  • Centos中一些有趣的命令
  • elementUI2
  • Python 爬虫基础——http请求和http响应
  • 【Hadoop】Hive导入导出数据指南
  • Mybatis 执行批量插入
  • vivado 使用基本触发器模式