分类预测 | MATLAB实现BiLSTM双向长短期记忆神经网络多特征分类预测

简介: 分类预测 | MATLAB实现BiLSTM双向长短期记忆神经网络多特征分类预测

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机 电力系统

⛄ 内容介绍

为提高心拍的分类效果,研究基于双向长短期记忆(BiLSTM)模型的深度学习算法.首先,采用"双斜率"法对心电信号进行预处理;然后,设计自适应阈值对预处理后的心电信号进行QRS波定位,并依据R波波峰分割截取心拍;最后,采用BiLSTM模型的深度学习算法对获取的心拍形态进行分类.使用MIT-BIH心率失常数据库验证算法有效性,实验结果表明:文中算法对正常或束支传导阻滞(N),室上性异常(S),心室异常(V),融合(F)类型的敏感性分别为98.56%,97.10%,93.33%,79.52%,特异性分别为98.38%,98.08%,98.54%,99.65%;与传统的支持向量机等方法相比,文中算法能够进一步提高心拍分类的正确率.

⛄ 部分代码

%---------------------------------------------------------------------------------------------------------------------

% Copyright (c) 2019 Kyriaki Kostoglou

% PhD Supervisor: Georgios Mitsis, Associate Professor, Bioengineering Department, McGill University, Montreal, Canada

% Biosignals and Systems Analysis Lab

% Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the % % "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, % distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to % the following conditions:

% The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

% The Software is provided "as is", without warranty of any kind.

%---------------------------------------------------------------------------------------------------------------------


%Estimate TV covariance of the MVAR residuals using GARCH models (see Eq.22)


function results=estimate_GARCH(e,metric,ignore,pmax,S)

M=size(e,1);

for m=1:M  

   %Testing different GARCH model orders for time-series m

   count=0;

   md=[];

   aic=[];

   bic=[];

   for q=0:pmax

       for r=1:pmax

           flag=0;

           fprintf('\nFitting GARCH to time-series %d - Testing model orders: [q=%d,r=%d] ',m,q,r)

           Mdl = garch(q,r);

           try

               %The following command may return the following

               %error:"Non-zero degree P requires a non-zero degree Q." is

               %there is no underlying true heteroskedasticity. Therefore

               %we try to catch the error.

               [EstMdl,EstParamCov,logL]  = estimate(Mdl,e(m,:)','Display','off');

               %If it finally goes through then flag is set to 1

               flag=1;

           catch

               %do nothing

           end

           if(flag==1)

               count=count+1;

               md(count,:)=[q r];

               [aic(count),bic(count)] = aicbic(logL,q+r,length(e(m,:)));   %compute AIC/BIC scores based on the estimated GARCH model        

           end

       end

   end

   

   %if aic or bic are nonempty vectors then we select the optimal model order based on the aic or bic scores

   %if aic or bic are empty vectors then it means that there is no real

   %heteroskedasticity in the data to be GARCH modeled

   if(isempty(aic)==0)      

       if(metric==1)

           [mm,ii]=min(aic);

       else

           [mm,ii]=min(bic);

       end

       %Find optimal GARCH model orders by selecting the pair [q,r] with the minimum AIC/BIC score

       fprintf('\nOptimal model order found: [q=%d,r=%d]\n',md(ii,:))

       Mdl = garch(md(ii,1),md(ii,2));

       [EstMdl]  = estimate(Mdl,e(m,:)');

       temp=infer(EstMdl,e(m,:)');

       results.EstMdl{m}=EstMdl;

       %Save TV variance as predicted by the fitted GARCH model for each residual time-series

       results.yGARCH(m,:)=smooth(temp(ignore:end),100);   %smooth the garch variance prediction

       results.hete(m)=1;

   else

       fprintf('\nNo heteroskedasticity detected')

       results.hete(m)=0;

   end

       

end


%Create diagonal TV covariance of the MVAR residuals

newN=size(results.yGARCH,2);

for k=1:newN

   results.SGARCH{k}=zeros(M,M);

   for m=1:M

       if(results.hete(m)==0)

           %if GARCH modeling failed, it means that there is no

           %heteroskedasticity in the residuals and we just use the

           %estimated variance on the whole residual time-series

           results.SGARCH{k}(m,m)=S(m,m);

       else

           %else we use the predicted GARCH TV variance

           results.SGARCH{k}(m,m)=results.yGARCH(m,k);

       end

   end        

end

end




%results is a structure that contains the following:

%results.EstMdl{m}=EstMdl;         %optimum GARCH estimated model for the mth time-series residuals

%results.yGARCH(m,:)               %predicted TV GARCH variance for the mth time-series residuals

%results.SGARCH{k}                 %TV GARCH covariance of the residuals at time point k

%results.hete(m)                   %0 if there is no underlying heteroskedasticity in the data else it is set to 1 and heteroskedasticity was modeled using GARCH models

⛄ 运行结果

⛄ 参考文献

[1]万圣贤, 兰艳艳, 郭嘉丰, et al. 用于文本分类的局部化双向长短时记忆[J]. 中文信息学报, 2017, 31(3):7.

[2]叶良攀. 基于BiLSTM的铁路调度语音识别系统研究[D]. 兰州交通大学.

⛄ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
12月前
|
机器学习/深度学习 传感器 数据采集
MATLAB基于PCA的Indian Pines数据集分类实现
MATLAB基于PCA的Indian Pines数据集分类实现
532 7
|
12月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
730 0
|
12月前
|
机器学习/深度学习 边缘计算 运维
【电能质量扰动】基于ML和DWT的电能质量扰动分类方法研究(Matlab实现)
【电能质量扰动】基于ML和DWT的电能质量扰动分类方法研究(Matlab实现)
316 10
|
12月前
|
安全 网络性能优化 网络虚拟化
网络交换机分类与功能解析
接入交换机(ASW)连接终端设备,提供高密度端口与基础安全策略;二层交换机(LSW)基于MAC地址转发数据,构成局域网基础;汇聚交换机(DSW)聚合流量并实施VLAN路由、QoS等高级策略;核心交换机(CSW)作为网络骨干,具备高性能、高可靠性的高速转发能力;中间交换机(ISW)可指汇聚层设备或刀片服务器内交换模块。典型流量路径为:终端→ASW→DSW/ISW→CSW,分层架构提升网络扩展性与管理效率。(238字)
2516 0
|
12月前
|
机器学习/深度学习 数据采集 资源调度
基于长短期记忆网络定向改进预测的动态多目标进化算法(LSTM-DIP-DMOEA)求解CEC2018(DF1-DF14)研究(Matlab代码实现)
基于长短期记忆网络定向改进预测的动态多目标进化算法(LSTM-DIP-DMOEA)求解CEC2018(DF1-DF14)研究(Matlab代码实现)
491 0
|
11月前
|
机器学习/深度学习 数据采集 存储
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
1239 0
|
机器学习/深度学习 数据采集 编解码
基于深度学习分类的时相关MIMO信道的递归CSI量化(Matlab代码实现)
基于深度学习分类的时相关MIMO信道的递归CSI量化(Matlab代码实现)
477 1
|
12月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
690 2
|
12月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
296 8
|
12月前
|
机器学习/深度学习 缓存 算法
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
908 1

热门文章

最新文章