超酷!分解+熵值+降维+对比故障诊断!EEMD-MPE-KPCA-GRU、EEMD-MPE-GRU、EEMD-PE-GRU模型

文摘   2024-11-04 21:32   广东  

读完需要

6
分钟

速读仅需 2 分钟

请尊重原创劳动成果
转载请注明本文链接
及文章作者:机器学习之心

点击阅读原文或复制以下链接到浏览器获取文章完整源码和数据:
https://mbd.pub/o/bread/mbd-Z5WXk5Zs

摘要:分解+熵值+降维+对比!超酷故障诊断!EEMD-MPE-KPCA-GRU、EEMD-MPE-GRU、EEMD-PE-GRU模型

1

   

基本介绍

EEMD-MPE-KPCA-GRU(集合经验模态分解-多尺度排列熵-核主元分析-门控循环单元)用于故障识别、诊断(Matlab完整源码和数据)运行环境matlab2023b
1.所用数据集为西安交通大学轴承故障数据集4个故障类别分别为
35HZCage(122条样本)35HZOuter race(123条样本)37.5HZOuter race(161条样本)40HZOuter race(114条样本)
选取每个故障的水平信号并截取前2000个信号点,即共520条样本每条样本长度为2000
更换数据后运行顺序main1EEMD.m、main2KPCA.m、main3EEMD_MPE_KPCA_GRU.m
2.程序流程
(1)对520条样本分别采用EEMD进行分解通过判定所有分解信号样本熵值,并重构为高中低3个频段信号
(2)对高中低信号分解进行多尺度排列熵计算并合成,最后得到每条样本的特征向量
(3)对每条样本特征向量进行kpca降维
(4)将数据导入至GRU进行分类/故障识别
3.对照组
eemd-pe-gru、eemd-mpe-gru
精度对比有分类散点图、混淆矩阵、精确率、召回率、调和平均数


参考文献


2

   

2.1

数据集

   

   

2.2

运行效果


   

完整代码链接:https://mbd.pub/o/bread/mbd-Z5WXk5Zs

也可扫描二维码:

3


   

部分源码



%% 清空环境变量warning off % 关闭报警信息close all % 关闭开启的图窗clear % 清空变量clc % 清空命令行
%% EEMD-PEload ('eemddata','X1','X2')load('kpcadata','Y')
data = X1;%%生成pe数据集%输入输出数据input=data(:,1:end-1); %data的第一列-倒数第二列为特征指标output=data(:,end); %data的最后面一列为标签类型
N=length(output); %全部样本数目testNum=0.2*N; %设定测试样本数目trainNum=N-testNum; %计算训练样本数目
%训练集、测试集P_train = input(1:trainNum,:)';T_train =output(1:trainNum)';P_test =input(trainNum+1:trainNum+testNum,:)';T_test =output(trainNum+1:trainNum+testNum)';num_class = length(unique(data(:, end))); % 类别数(Excel最后一列放类别)

t_train = categorical(T_train)';t_test = categorical(T_test )';
% 数据归一化[p_train, ps_input] = mapminmax(P_train, 0, 1);p_test = mapminmax('apply', P_test, ps_input );% 格式转换for i = 1 : trainNum pp_train{i, 1} = p_train(:, i);end
for i = 1 : testNum pp_test{i, 1} = p_test(:, i);end
% 创建网络numFeatures = size(P_train, 1); % 特征维度numResponses = num_class;
layers = [ ... sequenceInputLayer(numFeatures) % 输入层  Layer(150, 'OutputMode', 'last')         reluLayer % Relu 激活层 fullyConnectedLayer(numResponses) % 全连接层数等于分类数 softmaxLayer % 损失函数层 classificationLayer]; % 分类层
% 参数设置checkpointPath = pwd;options = trainingOptions('adam', ... % 优化算法Adam 'MaxEpochs', 200, ... % 最大训练次数 'GradientThreshold', 1, ... % 梯度阈值 'InitialLearnRate', 0.03, ... % 初始学习率 'LearnRateSchedule', 'piecewise', ... % 学习率调整 'LearnRateDropPeriod', 200, ... % 训练700次后开始调整学习率 'LearnRateDropFactor',0.2, ... % 学习率调整因子 'ExecutionEnvironment', 'cpu',... % 训练环境 'Verbose', 0, ... % 关闭优化过程 'Plots', 'training-progress'); % 画出曲线

4

   

其他代码

嗯,细心的你会发现:https://mbd.pub/o/slowtrain/work

博客专家认证,机器学习领域创作者,2023博客之星TOP50,主做机器学习和深度学习时序、回归、分类、聚类和降维等程序设计和案例分析科研课题模型定制/横向项目模型仿真/职称学术论文辅导/模型程序讲解均可联系本人唯一QQ1153460737(其他均为盗版,注意甄别

技术交流群:购买博主任意代码或分享博主博文到任意三方平台后即可添加博主QQ进群


机器学习之心HML
机器学习和深度学习时序、回归、分类和聚类等程序设计与案例分析,CSDN博主机器学习之心,知乎、B站同名,由于博主公众号名称被别人占用,故加了HML,此号是官方账号,其余打着本人旗号做事本人概不负责,本人QQ1153460737。
 最新文章