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


相关文章
|
9月前
|
传感器 机器学习/深度学习 算法
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
219 0
|
9月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
624 0
|
9月前
|
机器学习/深度学习 数据采集 算法
【信号识别】识别半监督粗糙模糊拉普拉斯特征图(Matlab代码实现)
【信号识别】识别半监督粗糙模糊拉普拉斯特征图(Matlab代码实现)
134 0
|
9月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
217 8
|
9月前
|
算法 数据挖掘 区块链
基于遗传算法的多式联运车辆路径网络优优化研究(Matlab代码实现)
基于遗传算法的多式联运车辆路径网络优优化研究(Matlab代码实现)
255 2
|
8月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
319 0
|
9月前
|
机器学习/深度学习 传感器 算法
【表面粗糙度】基于粒子群PSO算法优化-BP神经网络的表面粗糙度研究(Matlab代码实现)
【表面粗糙度】基于粒子群PSO算法优化-BP神经网络的表面粗糙度研究(Matlab代码实现)
365 7
|
9月前
|
机器学习/深度学习 数据采集 资源调度
基于长短期记忆网络定向改进预测的动态多目标进化算法(LSTM-DIP-DMOEA)求解CEC2018(DF1-DF14)研究(Matlab代码实现)
基于长短期记忆网络定向改进预测的动态多目标进化算法(LSTM-DIP-DMOEA)求解CEC2018(DF1-DF14)研究(Matlab代码实现)
369 0
|
9月前
|
机器学习/深度学习 算法 数据可视化
PINN物理信息神经网络用于求解二阶常微分方程(ODE)的边值问题研究(Matlab代码实现)
PINN物理信息神经网络用于求解二阶常微分方程(ODE)的边值问题研究(Matlab代码实现)
459 6
|
9月前
|
机器学习/深度学习 传感器 分布式计算
基于模糊RBF神经网络轨迹跟踪研究(Matlab代码实现)
基于模糊RBF神经网络轨迹跟踪研究(Matlab代码实现)
317 1

热门文章

最新文章