锦上添花!特征选择+深度学习:mRMR-CNN-BiGRU-Attention故障识别模型!特征按重要性排序!最大相关最小冗余!

news2024/11/17 4:46:49

适用平台: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_class
    mid_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);

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

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

相关文章

[UI5 常用控件] 06.Splitter,ResponsiveSplitter

文章目录 前言1. Splitter1.1 属性 2. ResponsiveSplitter 前言 本章节记录常用控件Splitter,ResponsiveSplitter。主要功能是分割画面布局。 其路径分别是: sap.ui.layout.Splittersap.ui.layout.ResponsiveSplitter 1. Splitter 1.1 属性 orientation &#x…

Meta开源大模型LLaMA2的部署使用

LLaMA2的部署使用 LLaMA2申请下载下载模型启动运行Llama2模型文本补全任务实现聊天任务LLaMA2编程Web UI操作 LLaMA2 申请下载 访问meta ai申请模型下载,注意有地区限制,建议选其他国家 申请后会收到邮件,内含一个下载URL地址,…

【python】绘制爱心图案

以下是一个简单的Python代码示例,它使用turtle模块绘制一个代表爱和情人节的心形图案。 首先,请确保计算机上安装了Python和turtle模块。然后,将以下代码保存到一个.py文件中,运行它就可以看到爱心图案的绘制过程。 import turt…

【ArcGIS微课1000例】0101:删除冗余节点或折点

文章目录 一、实验描述二、实验数据三、实验过程1. 手动删除2. 简化线工具四、注意事项一、实验描述 矢量数据获取通常来源于手动或者ArcScan自动采集,其基本存储方式就是记录每个要素的点坐标,如点要素就是一个坐标、线要素由多个点要素连接形成。当某段线要素被过多的节点…

【webpack】优化提升

webpack优化提升 安装webpack相关内容向下兼容游览器-babel/polyfill进一步优化babel/polyfill模块联邦-共享模块如何提升构建性能通用环境下1,webpack更新到最新版本2,将loader应用于最少数量的必要模块3,引导(每个额外的loader/…

pr如何导出mp4格式视频?手把手教你

PR是一款强大的视频编辑软件,广泛应用于电影、电视制作以及各类创意视频项目。在完成编辑后,将项目导出为MP4格式视频是常见的需求,因为MP4是一种通用且高度兼容的视频格式,适用于多个平台和设备。pr如何导出mp4格式视频&#xff…

分享69个节日PPT,总有一款适合您

分享69个节日PPT,总有一款适合您 69个节日PPT下载链接:https://pan.baidu.com/s/1Y3tf2bStj595B2GD3v0dBQ?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易。…

记录一下esp32模组固件开发流程

现在的esp32开发环境非常简单,参考如下: dl.espressif.cn/dl/esp-idf/ 在上面的链接中选择合适的版本进行安装,安装后环境自带源文件、编译连接工程脚本、图形化配置脚本、编译器、烧录调试工具。 这里我选择安装在C盘,C:\Espr…

Redis核心技术与实战【学习笔记】 - 17.Redis 缓存异常:缓存雪崩、击穿、穿透

概述 Redis 的缓存异常问题,除了数据不一致问题外,还会面临其他三个问题,分别是缓存雪崩、缓存击穿、缓存穿透。这三个问题,一旦发生,会导致大量的请求积压到数据库。若并发量很大,就会导致数据库宕机或故…

网络安全大赛

网络安全大赛 网络安全大赛的类型有很多,比赛类型也参差不齐,这里以国内的CTF网络安全大赛里面著名的的XCTF和强国杯来介绍,国外的话用DenCon CTF和Pwn2Own来举例 CTF CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相…

GUI编程..

1.GUI(Graphical User Interface 图形用户界面) 所谓GUI 指的是在计算机中采用图形方式展示用户的界面 在GUI之前采用的是字符界面 有了GUI之后 采用的则是图形界面 2.Java的GUI编程方案 常见的有四种 3.Swing 1.实现一个窗口 public class Main{public static void ma…

第二证券:北向资金连续第五日净流入,茅台、工行、五粮液等获加仓

沪指低收险守2700点关口,北向资金接连5日净流入。 2月5日,A股三大股指团体低开,三大股指均创阶段性新低后反弹,创业板指午后首先翻红且一度涨超3%,深成指和沪指也相继转涨。但商场做多情绪欠安,沪深股指重…

K8S之Namespace的介绍和使用

Namespace的理论和实操 Namespace理论说明Namespace实操创建、查看命名空间使用ResouceQuota 对Namespace做资源限额更多ResouceQuota 的使用 Namespace理论说明 命名空间定义 K8s支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间&…

深入理解Netty及核心组件使用—下

目录 ChannelHandler ChannelHandler 接口 ChannelInboundHandler 接口 ChannelHandler 的适配器 Handler 的共享和并发安全性 资源管理和 SimpleChannelInboundHandler Bootstrap ChannelInitializer ChannelOption ChannelHandler ChannelHandler 接口 从开发人员的…

国产工业三防平板丨加固手持平板丨国产化加固平板有何优势?

随着科技的不断发展,三防产品已经逐渐成为人们生活、工作和娱乐中必不可少的一部分。而国产三防平板产品也在不断崛起,逐渐获得了消费者的认可和喜爱。相较于国外的三防平板产品,国产三防平板产品在技术和价格等方面具有一定的优势&#xff0…

游戏服务器租赁多少钱1个月?一年费用

2024年更新腾讯云游戏联机服务器配置价格表,可用于搭建幻兽帕鲁、雾锁王国等游戏服务器,游戏服务器配置可选4核16G12M、8核32G22M、4核32G10M、16核64G35M、4核16G14M等配置,可以选择轻量应用服务器和云服务器CVM内存型MA3或标准型SA2实例&am…

转融通业务是什么?好处和弊端是什么?

转融通业务是指证券金融公司借入证券、筹得资金后,再转借给证券公司,为证券公司开展融资融券业务提供资金和证券来源,包括转融券业务和转融资业务两部分。从证券金融公司角度看,向证券公司提供资金和证券供其开展融资融券业务&…

*s是什么意思

&s是地址,*是指针,*&s是指指向&s地址的指针; j *&s 就是 j s的意思。 例如:readRawData( (char *)& rowCount, sizeof(qint16)); //读取文本流中的行数到rowCount、列数到colCount qint16 rowCount, col…

【成品论文】2024美赛B题完整成品论文23页+3小问matlab代码+数据集汇总

2024 年美国大学生数学建模竞赛(2024 美赛)B 题: 2024 MCM 问题 B: 搜寻潜水艇 题目翻译: Maritime Cruises Mini-Submarines (MCMS)是一家总部位于希腊的公司,专门制造能够携 带人类到达海洋最深处的潜水艇。潜水艇是…

电脑虚拟内存怎么设置?1分钟快速增加内存!

“我电脑里的内存好像不太够用,因此,我想在电脑里增加一些虚拟内存。不知道我应该怎么操作呢?有什么比较简单的此操作方法吗?” 虚拟内存是计算机系统内存管理的一种技术,它为程序提供了一个比实际物理内存更大的内存空…