分类预测 | 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电子书和数学建模资料


相关文章
|
16天前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
102 0
|
16天前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
|
24天前
|
机器学习/深度学习 传感器 分布式计算
基于模糊RBF神经网络轨迹跟踪研究(Matlab代码实现)
基于模糊RBF神经网络轨迹跟踪研究(Matlab代码实现)
|
16天前
|
机器学习/深度学习 编解码 并行计算
【创新未发表!】基于BKA算法优化-BP、HO算法优化-BP、CP算法优化-BP、GOOSE算法优化-BP、NRBO算法优化-BP神经网络回归预测比较研究(Matlab代码)
【创新未发表!】基于BKA算法优化-BP、HO算法优化-BP、CP算法优化-BP、GOOSE算法优化-BP、NRBO算法优化-BP神经网络回归预测比较研究(Matlab代码)
|
9天前
|
算法 计算机视觉
【MPDR & SMI】失配广义夹角随输入信噪比变化趋势、输出信干噪比随输入信噪比变化趋势研究(Matlab代码实现)
【MPDR & SMI】失配广义夹角随输入信噪比变化趋势、输出信干噪比随输入信噪比变化趋势研究(Matlab代码实现)
|
9天前
|
编解码 人工智能 算法
【采用BPSK或GMSK的Turbo码】MSK、GMSK调制二比特差分解调、turbo+BPSK、turbo+GMSK研究(Matlab代码实现)
【采用BPSK或GMSK的Turbo码】MSK、GMSK调制二比特差分解调、turbo+BPSK、turbo+GMSK研究(Matlab代码实现)
|
9天前
|
机器学习/深度学习 编解码 并行计算
【改进引导滤波器】各向异性引导滤波器,利用加权平均来实现最大扩散,同时保持图像中的强边缘,实现强各向异性滤波,同时保持原始引导滤波器的低低计算成本(Matlab代码实现)
【改进引导滤波器】各向异性引导滤波器,利用加权平均来实现最大扩散,同时保持图像中的强边缘,实现强各向异性滤波,同时保持原始引导滤波器的低低计算成本(Matlab代码实现)
|
8天前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
|
9天前
|
传感器 机器学习/深度学习 算法
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
|
8天前
|
机器学习/深度学习 传感器 算法
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
87 14

热门文章

最新文章