锦上添花!特征选择+深度学习:mRMR-CNN-BiGRU-Attention故障识别模型!特征按重要性排序!最大相关最小冗余!
适用平台:Matlab2023版及以上
特征选择方法:"最大相关最小冗余"(Maximal Relevance and Minimal Redundancy,简称MRMR)是一种用于特征选择的方法。该方法旨在找到最相关的特征集,同时最小化特征之间的冗余,以提高模型的性能和泛化能力。我们将该特征选择方法应用于CNN-BiGRU-Attention故障识别模型上,构建的mRMR-CNN-BiGRU-Attention故障识别模型目前还没人写哦。

在具体的数学表达上,最大相关最小冗余方法通常通过优化某个相关性度量和冗余度量的组合来实现。最常用的相关性度量是皮尔逊相关系数,而冗余度量通常使用互信息或方差。通过调整特征子集中每个特征的权重,可以实现最大化相关性和最小化冗余。

这个方法的优势在于它不仅关注特征与目标变量的关系,还考虑了特征之间的相互关系,以避免选择高度相关的特征,从而减少模型的过拟合风险,增强模型的可解释性。
用mRMR选择5个最重要的特征作为RMR-CNN-BiGRU-Attention故障识别模型的输入:

创新点:
-
特征选择优化: mRMR特征选择的方法,通过最大化特征与目标变量的相关性,同时最小化特征之间的冗余,给特征变量的选择提供有效依据,提高模型的可解释性。
-
时序-空间特征结合:CNN通过卷积层可以有效地捕捉输入故障波形中的局部特征,如脉冲、振动或其它突变。而GRU则能够学习序列中的长期依赖关系,捕捉全局特征,提高了对故障波形中复杂特征的提取能力。
-
故障前后特征:BiGRU双向记忆单元对时间序列进行特征提取,捕捉时间上相邻的特征,同时考虑故障前后所包含的特征。
-
多头自注意力机制:自注意力层被嵌入到BiGRU层后,自注意力层用于捕捉故障波形中的全局依赖关系,自注意力机制允许网络在学习时动态地调整各个采样点的权重,以便更好地捕捉长期依赖和全局模式,实现各特征的重点强化。
程序数据集格式:
数据格式:一行为一个故障样本也可以看成一个故障波形,最后一列表示该样本所属的故障类别,即故障类别标签。

程序结果:


模型结构和测试集的混淆矩阵:
精确率是混淆矩阵的最下面一行,召回率是混淆矩阵的最右边一列

-
精确率:指模型在预测为正类别的样本中,实际为正类别的样本所占的比例。它衡量的是模型在正类别的预测中的准确性。
-
召回率:指实际为正类别的样本中,模型成功预测为正类别的样本所占的比例。它衡量的是模型对正类别样本的覆盖能力。
训练集和测试集的散点图:

程序展示准确率、精确率、召回率、F1分数等计算结果:

训练的精确度及损失曲线:

部分代码:
%% 分析数据
num_class = length(unique(res(:, end))); % 类别数(Excel最后一列放类别)
num_dim = size(res, 2) - 1; % 特征维度 公众号:创新优化及预测代码
num_res = size(res, 1); % 样本数(每一行,是一个样本)
num_size = 0.7; % 训练集占数据集的比例
res = res(randperm(num_res), :); % 打乱数据集(不打乱数据时,注释该行)
flag_conusion = 1; % 标志位为1,打开混淆矩阵(要求2018版本及以上)%% 设置变量存储数据
P_train = []; P_test = [];
T_train = []; T_test = [];%% 划分数据集
for i = 1 : num_classmid_res = res((res(:, end) == i), :); % 循环取出不同类别的样本mid_size = size(mid_res, 1); % 得到不同类别样本个数mid_tiran = round(num_size * mid_size); % 得到该类别的训练样本个数P_train = [P_train; mid_res(1: mid_tiran, 1: end - 1)]; % 训练集输入T_train = [T_train; mid_res(1: mid_tiran, end)]; % 训练集输出P_test = [P_test; mid_res(mid_tiran + 1: end, 1: end - 1)]; % 测试集输入T_test = [T_test; mid_res(mid_tiran + 1: end, end)]; % 测试集输出
end%% 数据转置
P_train = P_train'; P_test = P_test';
T_train = T_train'; T_test = T_test';%% 得到训练集和测试样本个数
M = size(P_train, 2);
N = size(P_test , 2);%% 数据归一化
[P_train, ps_input] = mapminmax(P_train, 0, 1);
P_test = mapminmax('apply', P_test, ps_input);t_train = categorical(T_train)';
t_test = categorical(T_test )';%% 数据平铺 公众号:创新优化及预测代码
% 将数据平铺成1维数据只是一种处理方式
% 也可以平铺成2维数据,以及3维数据,需要修改对应模型结构
% 但是应该始终和输入层数据结构保持一致
p_train = double(reshape(P_train, num_dim, 1, 1, M));
p_test = double(reshape(P_test , num_dim, 1, 1, N));%% 构造CNN-BiGRU-Attention网络
lgraph = layerGraph();% 添加层分支 公众号:创新优化及预测代码
% 将网络分支添加到层次图中。每个分支均为一个线性层组。
tempLayers = [imageInputLayer([numComponents 1 1],"Name","imageinput")convolution2dLayer([2 1],16,"Name","conv_1")batchNormalizationLayer("Name","batchnorm_1")reluLayer("Name","relu_1")maxPooling2dLayer([2 1],"Name","maxpool_1")flattenLayer("Name","flatten")];
lgraph = addLayers(lgraph,tempLayers);tempLayers = gruLayer(128,"Name","gru");
lgraph = addLayers(lgraph,tempLayers);tempLayers = [FlipLayer("flip3")gruLayer(128,"Name","gru_1")];
lgraph = addLayers(lgraph,tempLayers);
相关文章:
锦上添花!特征选择+深度学习:mRMR-CNN-BiGRU-Attention故障识别模型!特征按重要性排序!最大相关最小冗余!
适用平台:Matlab2023版及以上 特征选择方法:"最大相关最小冗余"(Maximal Relevance and Minimal Redundancy,简称MRMR)是一种用于特征选择的方法。该方法旨在找到最相关的特征集,同时最小化特征…...
C++ QT入门2——记事本功能实现与优化(事件处理+基本控件)
C QT入门2——记事本功能优化(事件处理基本控件) 一、记事本功能优化编码乱码问题QComboBox下拉控件QString、string、char * 间的数据转化编码问题解决整合 光标行列值显示记事本打开窗口标题关闭按钮优化—弹窗提示快捷键设计 二、☆ QT事件处理事件处…...
《Lua程序设计》-- 学习10
环境(Environment) 具有动态名称的全局变量 全局变量的声明 由于Lua语言将全局变量存放在一个普通的表中,所以可以通过元表来发现访问不存在全局变量的情况。 正如前面所提到的,我们不允许值为nil的全局变量,因为值为…...
Linux内核编译-ARM
步骤一、下载源码及交叉编译器后解压 linux kernel官网 ARM GCC交叉编译器 步骤二、安装软件 sudo apt-get install ncurses-dev sudo apt-get install flex sudo apt-get install bison sudo apt install libgtk2.0-dev libglib2.0-dev libglade2-dev sudo apt install libs…...
开源编辑器:ONLYOFFICE文档又更新了!
办公软件 ONLYOFFICE文档最新版本 8.0 现已发布:PDF 表单、RTL、单变量求解、图表向导、插件界面设计等更新。 什么是 ONLYOFFICE 文档 ONLYOFFICE 文档是一套功能强大的文档编辑器,支持编辑处理文本文档、电子表格、演示文稿、可填写的表单、PDF&#…...
第3章 文件类型和目录结构
第3章 文件类型和目录结构 在这这章之前我们先学习一个前面使用过的命令 ls 查看文件ls 命令格式: [rootbogon redhat]# ls --helpUsage: ls [OPTION]... [FILE]...List information about the FILEs (the current directory by default).Sort entries alphabeti…...
前端构建变更:从 webpack 换 vite
现状 这里以一个 op (内部运营管理用)项目为例,从 webpack 构建改为 vite 构建,提高本地开发效率,顺便也加深对 webpack 、 vite 的了解。 vite 是前端构建工具,使用 一系列预配置进行rollup 打包&#x…...
记录基于Vue.js的移动端Tree树形组件
目录 一、Liquor Tree 入门 : Development Component Options 组件选项 Structure 结构 二、vue-treeselect Introduction 介绍 Getting Started 入门 Vue 树形选择器( Vue tree select )组件在搭建 Vue 的 app 中特别常用,Vue tree select 除了简单的树形结构…...
Vue中嵌入原生HTML页面的方法
在Vue中嵌入原生HTML页面通常可以通过组件或页面的方式来完成。下面将详细说明如何通过组件方式实现这个功能,并提供一个简单的代码示例。 方法说明 创建原生HTML页面:首先,你需要创建一个原生HTML页面,这个页面可以是一个独立的…...
17 # 类型检查机制:类型保护
例子: enum Type {Strong,Week }class Java {helloJava(){console.log(hello Java);} }class JavaScript {helloJavaScript(){console.log(hello JavaScript);} }function getLanguage(type: Type){let lang type Type.Strong ? new Java() : new JavaScript();…...
Vulnhub-RIPPER: 1渗透
文章目录 一、前言1、靶机ip配置2、渗透目标3、渗透概括 开始实战一、信息获取二、rips的使用三、获取密码文件四、日志审查五、提权 一、前言 由于在做靶机的时候,涉及到的渗透思路是非常的广泛,所以在写文章的时候都是挑重点来写,尽量的不饶…...
幻兽帕鲁自建服务器:可以使用香港服务器吗?
随着网络技术的发展,越来越多的游戏爱好者选择通过自建服务器来享受游戏的乐趣。幻兽帕鲁作为一款备受喜爱的游戏,也有不少玩家想要自建服务器进行游戏。而在选择服务器地点时,很多玩家会想到使用香港服务器。那么,是否可以使用香…...
Revisiting image pyramid structure for high resolution salient object detection
accv2022的技术,在我测评的数据集上确实要明显好于basnet,rembg等一众方法。 1.Introduction 使用LR数据集训练的方法通过调整输入尺寸可以在HR图像上产生不错的结果。本文主要关注仅使用LR数据集进行训练以产生高质量的HR预测。HR的有效感受野ERFs和LR…...
中移(苏州)软件技术有限公司面试问题与解答(7)—— kmalloc与vmalloc的区别与联系及使用场景
接前一篇文章:中移(苏州)软件技术有限公司面试问题与解答(0)—— 面试感悟与问题记录 本文参考以下文章: kmalloc与vmalloc如何选择 Vmalloc与kmalloc的区别 特此致谢! 本文对于中移…...
微服务-微服务Alibaba-Nacos 源码分析 (源码流程图)
客户端流程 客户端心跳与实例往服务端注册...
后端性能优化的一些总结
目录 1、背景 2、优化实现 2.1查询数据表速度慢 2.2调别人接口速度慢 2.3导入速度慢、 2.4导出速度慢的做出介绍 2.5统计功能速度慢 3、总结 1、背景 系统上线后,被用户反应系统很多功能响应时长很慢。用户页面影响速度有要求,下面针对查询数据表…...
【升级openssl1.1.1t报错libssl.so.1.1: cannot open shared object file】
升级openssl报错: openssl vesion openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory 编译安装openssl1.1.1t当执行openssl version的时候,报上述错误,将编译到的…...
CVE-2024-0352 likeshop v2.5.7文件上传漏洞分析
本次的漏洞研究基于thinkPHP开发开的一款项目..... 漏洞描述 Likeshop是Likeshop开源的一个社交商务策略的完整解决方案,开源免费版基于thinkPHP开发。Likeshop 2.5.7.20210311及之前版本存在代码问题漏洞,该漏洞源于文件server/application/api/contr…...
JAVA处理类似饼状图占比和100%问题,采用最大余额法
前言: 在做数据统计报表的时候,有两种方式解决占比总和达不到100%或者超过100%问题。 第一种方式是前端echart图自带的算分框架。 第二种方式是java后端取处理这个问题。 现存问题: 前端不通过饼状图的方式去展示各个分类的占比累加和为100%问…...
MATLAB矩阵的操作(第一部分)
矩阵的基本知识 矩阵概念 矩阵(Matrix)在数学中是一个由复数或实数组成的矩形阵列,其元素按照行和列排列。矩阵的定义可以形式化地描述为: 一个 m 行 n 列的矩阵是一个有序的数表,其中包含 m*n 个数,可以…...
Gradio界面定制化:为DAMO-YOLO WebUI添加导出检测结果CSV功能
Gradio界面定制化:为DAMO-YOLO WebUI添加导出检测结果CSV功能 1. 项目背景与需求 如果你用过那个基于DAMO-YOLO的手机检测WebUI,可能会发现一个问题:检测结果只能看,不能存。 每次上传图片,系统会告诉你检测到了几个…...
从WHL文件到集成开发:Windows系统下PySide2的完整部署指南
1. 为什么选择PySide2开发Windows GUI应用 用Python开发图形界面程序有很多选择,但PySide2绝对是Windows平台下最值得推荐的工具之一。作为Qt官方绑定的Python库,PySide2不仅功能强大,还能免费商用。我最早接触PySide2是在一个工业控制项目里…...
SlopeCraft终极指南:如何轻松将任何图片转换为Minecraft立体地图画
SlopeCraft终极指南:如何轻松将任何图片转换为Minecraft立体地图画 【免费下载链接】SlopeCraft Map Pixel Art Generator for Minecraft 项目地址: https://gitcode.com/gh_mirrors/sl/SlopeCraft 你是否曾梦想将心爱的照片、动漫角色或艺术作品搬进Minecra…...
570-‘基于坠落机制改进的混沌麻雀算法SSACD‘在23个标准测试函数上可直接运行Matlab语言
570-基于坠落机制改进的混沌麻雀算法SSACD在23个标准测试函数测试可直接运行 Matlab语言 改进点如下: 1.首先,引入Sinusoidal混沌映射和变尺度混沌策略对种群进行初始化,提高种群多样性使算法具备跳出局部最优解的能力 2.其次,引入…...
Bilibili-Evolved:B站个性化定制与增强工具完全指南
Bilibili-Evolved:B站个性化定制与增强工具完全指南 【免费下载链接】Bilibili-Evolved 强大的哔哩哔哩增强脚本 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibili-Evolved 你是否也曾遇到这样的困扰?深夜刷B站时,惨白的界面刺得…...
GIL消失后的混沌现场:共享对象修改异常、原子性丢失、引用计数溢出,一文收全7种致命报错及防御代码模板
第一章:GIL消失后的并发危机全景图当CPython的全局解释器锁(GIL)真正消失,Python将首次具备原生、安全的多线程并行执行能力。但这并非一劳永逸的性能飞跃,而是一场系统级并发范式的重构风暴——内存模型、对象生命周期…...
ESP32 BLE MTU 协商实战:从原理到手机端配置优化
1. 理解BLE MTU协商的核心概念 第一次接触BLE开发时,我也被MTU这个概念搞得一头雾水。简单来说,MTU(Maximum Transmission Unit)就像快递包裹的尺寸限制 - 它决定了每次传输能携带多少数据。在BLE通信中,默认的MTU只有…...
网络工程师的日常:一次搞定eNSP中MSTP+VRRP的‘坑’与优化技巧
eNSP实战:MSTPVRRP组网中的典型故障排查与性能调优 凌晨两点,当我在eNSP模拟器中第三次看到"VRRP state transition to Backup"的日志时,咖啡杯已经见底。这个典型的双核心企业网架构本该在半小时内完成配置,却因为MSTP…...
Zynq AXI DMA实战:从零配置S_AXIS_S2MM到M_AXIS_MM2S的完整数据流(Vivado 2023版)
Zynq AXI DMA实战:从零配置S_AXIS_S2MM到M_AXIS_MM2S的完整数据流(Vivado 2023版) 在嵌入式系统开发中,高效的数据传输往往是性能瓶颈所在。Zynq系列SoC凭借其独特的ARM处理器与FPGA可编程逻辑的紧密结合,为高性能数据…...
PyRadiomics环境配置全攻略:从依赖冲突到稳定运行的系统化解法
PyRadiomics环境配置全攻略:从依赖冲突到稳定运行的系统化解法 【免费下载链接】pyradiomics Open-source python package for the extraction of Radiomics features from 2D and 3D images and binary masks. Support: https://discourse.slicer.org/c/community/…...
