当前位置: 首页 > news >正文

基于小波分析和机器学习(SVM,KNN,NB,MLP)的癫痫脑电图检测(MATLAB环境)

癫痫是一种由大脑神经元突发性异常放电导致的大脑功能性障碍疾病。据世界卫生组织统计,全球约有7000万人患有癫痫。癫痫患者在发病时呈现肌肉抽搐、呼吸困难、意识丧失等症状。由于癫痫发作的偶然性,患者极有可能在高空、驾驶、游泳等危险情况下发病并丧失意志从而产生意外事故与伤害,并带来不良社会和经济影响。据统计,癫痫患者过早死亡的几率比健康人高出近3倍。医学研究表明,癫痫虽然无法被完全治愈,但是可以通过药物、电刺激或者手术等治疗手段来控制发病。通过建立癫痫预测模型,在发病之前进行警报,可以留给患者足够的时间采取防范和治疗措施,这将显著提高癫痫患者的生活质量。

在脑电图EEG的辅助下,医生结合患者临床表现对癫痫病情进行诊断。脑电图中的脑电信号记录着脑神经细胞自发电生理活动。癫痫患者发病时脑电图上会呈现出棘波、尖波、棘慢波等癫痫特征波,医生可借助特征波进行病情诊断。脑电图用于癫痫研究已经有70多年的历史,在过去的十年中,研究热点逐渐由癫痫检测向癫痫预测转变。尽管在之前的研究中,有大量传统机器学习算法用于建立癫痫预测模型,但都面临需要手动提取特征、泛化性较差等问题。神经网络算法具有自动提取特征、变体多等诸多优点,可适用于处理海量脑电信号的场景。

鉴于此,基于一种基于小波分析和机器学习(支持向量机,朴素贝叶斯,k最近邻,多层神经网络)的癫痫脑电图检测方法,运行环境为MATLAB 2018,部分代码如下:

%% design wavelet
wname='db4';
nLevel=4;
[a,d]=swt(data,nLevel,wname);
figure(2);
subplot(nLevel+1,2,[1 2]);
plot(Time,data(1,:)); ylabel('Epilepsy EEG');
ylabel('\muV','FontSize',12,'FontWeight','bold','FontName','Times New Roman');
title('Epilepsy EEG(seizures & Non-seizures)','FontName','Times New Roman','FontSize',12,'FontWeight','bold');
grid on;grid minor;
c=2;
for i=1:nLevelc=c+1;subplot(nLevel+1,2,c);plot(Time,a(i,:),'c');ylabel(['a_{' num2str(i) '}'],'FontSize',12,'FontWeight','bold','FontName','Times New Roman');grid on;grid minor;if c==9xlabel('Time(Sec)','FontSize',12,'FontWeight','bold','FontName','Times New Roman'); endc=c+1;subplot(nLevel+1,2,c);plot(Time,d(i,:),'r');ylabel(['d_{ ' num2str(i) '}'],'FontSize',12,'FontWeight','bold','FontName','Times New Roman');grid on;grid minor;if c==10xlabel('Time(Sec)','FontSize',12,'FontWeight','bold','FontName','Times New Roman'); end%完整代码:https://mbd.pub/o/bread/mbd-Yp2Ul5dpend

图片

图片

图片

图片

工学博士,担任《Mechanical System and Signal Processing》《中国电机工程学报》《控制与决策》等期刊审稿专家,擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

相关文章:

  • Day04:CSS 进阶
  • Ubuntu18.04 OpenSSH升级
  • IT行业的现状与未来发展趋势:从云计算到量子计算的技术变革
  • 猫头虎 解析:为什么AIGC在国内适合做TOB,在国外适合做TOC?
  • 【数据结构与算法 经典例题】相交链表
  • 【java程序设计期末复习】chapter7 内部类和异常类
  • C++STL---string知识汇总
  • Elasticsearch的复制功能
  • C#解析xml文件
  • K8s的kubectl的基本操作
  • C语言中的操作符
  • 二叉树——经典练习题
  • 【Linux-中断】
  • K8S认证|CKA题库+答案| 13. sidecar 代理容器日志
  • Qt中的网络编程(Tcp和Udp)详解 及 实现
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • C++类中的特殊成员函数
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • FineReport中如何实现自动滚屏效果
  • Js基础知识(四) - js运行原理与机制
  • Kibana配置logstash,报表一体化
  • laravel with 查询列表限制条数
  • 力扣(LeetCode)965
  • 区块链分支循环
  • 通过几道题目学习二叉搜索树
  • 微信小程序:实现悬浮返回和分享按钮
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​LeetCode解法汇总518. 零钱兑换 II
  • #Lua:Lua调用C++生成的DLL库
  • #Ubuntu(修改root信息)
  • #单片机(TB6600驱动42步进电机)
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (不用互三)AI绘画工具应该如何选择
  • (九十四)函数和二维数组
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (三十)Flask之wtforms库【剖析源码上篇】
  • .net core 连接数据库,通过数据库生成Modell
  • .NET Core中如何集成RabbitMQ
  • .NET实现之(自动更新)
  • .Net下的签名与混淆
  • .Net中的集合
  • ?.的用法
  • @property @synthesize @dynamic 及相关属性作用探究
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网
  • [20171106]配置客户端连接注意.txt
  • [Angular] 笔记 6:ngStyle
  • [AR Foundation] 人脸检测的流程
  • [C++打怪升级]--学习总目录
  • [CISCN 2019华东南]Web11
  • [CSS]浮动
  • [Linux基础开发工具---vim]关于vim的介绍、vim如何配置及vim的基本操作方法