CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理-通道选择(五)

  • 概述
  • 通道选择模型
  • 通道选择
  • LightGBM模块代码
  • LightGBM模型训练

概述

由于癫痫发作时不是整个大脑区域都有相关的反映,因此 EEG 信号在不同的 EEG 通道上有着不同的表现形式。癫痫发作时的 EEG 信号表现也并不是存在于所有的 EEG 通道,如果能设计一种算法来筛选出最能反应患者癫痫发作的 EEG 通道,不仅能减少模型的计算量,还能减少模型的硬件资源开销,同时还能提高癫痫预测的效率。所以在完成癫痫发作的预测任务之前设计一种有效的 EEG 通道选择算法是非常 有必要的。

通道选择模型

EEG 信号在不同患者的不同脑电通道上有着不同的表 现,因此需要对每个患者做单独的优化。如果使用传统的 SVM 等分类模型,将导致 效率异常低下,所以为完成EEG 通道选择任务,此部分使用了并行化能力强, 效率高的 LightGBM 作为分类器。 GBDT(Gradient Boosting Decision Tree)是机器学习领域中一个非常典型的模型, 它主要使用决策树方法对模型进行迭代训练,使得模型参数更新到最优状态,该模型 使用范围广泛,可以用于各种分类与预测任务中,而且它训练得到的模型性能优于一 般的其它类的机器学习模型,除此之外,它还具有很高的训练效率。 LightGBM(Light Gradient Boosting Machine)是机器学习中的一个经典框架,由于 它是 GBDT 的升级版本,所以具有 GBDT 的优点。并行能力强是它最大的优势, 这将会极大的提高模型的收敛速度,使得模型参数很快达到最优。与传统的 SVM 相 比,使用 LightGBM 完成癫痫发作的检测和预测任务,在时间上会提升一半以上,而 且实验的结果还优于 SVM。因此在进行脑电通道选择过程时,使用 LightGBM 来测试通道选择的有效性。

通道选择

使用 LightGBM 作为此部分实验的分类器,将处理好的 EEG 数据输入到LightGBM 模型中进行模型训练和分类,直至保留的 EEG 通道数减少至本次通道缩 减后模型的准确率低于所有通道上模型的准确率,这样就可以得到最终保留的通道。
以chb01患者的数据为例,在通道选择过程中,精度与通道数量变化的关系如下:

从上图中可以看出,在脑电通道数量减少的过程中,模型对不同状态脑电特征 检测的准确率在不断变化中,而且与模型在原始的 18 个脑电通道上的测试结果相比 还有所提升。通道数量减少至 13 个的时候,acc 值达到了最高点,当通道数量减少至 11 个的时候,acc 值低于原始 18 个通道的 acc 值,通道选择算法会在此时停止并保 存通道数量最少的组合。

LightGBM模块代码

def LightGBM_function(X_train, y_train, X_test, y_test, boost_round):lgb_train = lgb.Dataset(X_train, y_train, feature_name = ch)lgb_eval = lgb.Dataset(X_test, y_test, reference=lgb_train)# 参数设置# 迭代次数early_stop_rounds = 100  # 验证数据若在early_stop_rounds轮中未提高,则提前停止params = {'boosting_type': 'gbdt',  # 设置提升类型'objective': 'binary',  # 目标函数'metric': 'acc,auc,binary_logloss',  # 评估函数'num_leaves': 8,  # 叶子节点数'learning_rate': 0.03,  # 学习速率'feature_fraction': 0.5,  # 建树的特征选择比例'bagging_fraction': 0.5,  # 建树的样本采样比例'bagging_freq': 3,  # k 意味着每 k 次迭代执行bagging
#         'num_class': 2}results = {}gbm = lgb.train(params,lgb_train,num_boost_round=boost_round,valid_sets=(lgb_eval, lgb_train),valid_names=('test', 'train'),early_stopping_rounds=early_stop_rounds,evals_result=results,verbose_eval=False )# 模型预测y_pred = gbm.predict(X_test)AUC = gbm.best_score
#     ACC = accuracy_score(y_test, y_pred)print("AUC:{:.2f}".format(AUC['test']['auc']))# 模型评估lgb.plot_metric(results, metric='auc')plt.savefig("指标图/lgbm/"+file[:5]+"_auc.png", bbox_inches = 'tight')
#     lgb.plot_metric(results, metric='acc')lgb.plot_metric(results, metric='binary_logloss')plt.savefig("指标图/lgbm/"+file[:5]+"_loss.png", bbox_inches = 'tight')plt.show()return y_pred

LightGBM模型训练

model = LightGBM_function(d_train,l_train,d_test,l_test,100)


接下来缩减通道,直至保留的 EEG 通道数减少至本次通道缩 减后模型的准确率低于所有通道上模型的准确率,这样就可以得到最终保留的通道。这样便可以在不损失预测精度的前提下 有效缩减参与训练的 EEG 通道数量,从而达到减少计算量、降低硬件资源开销的目 的。

CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理-通道选择(五)相关推荐

  1. CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理-癫痫发作预测(六)

    CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理-癫痫发作预测(六) 导入需要的包 各功能模块 数据集导入 模型训练 训练结果 保存模型 测试结果 导入需要的包 import numpy as np ...

  2. CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理(二)

    主要内容 1.数据提取 2.制作数据样本-数据分快 3.过程展示 1.数据提取 本次教程以chb01患者的数据为例: 首先提取该患者的eeg数据: 在数据提取中就完成滤波:(0~50Hz) from ...

  3. CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理-2D-CNN(四)

    主要内容 1.数据提取 2.提取过程 1.数据提取 本次教程做适用于整体数据集上的处理工作,以不同的的处理代码展示整体的数据处理! 本次数据处理教程是没有做STFT变换,之间将提取的数据变换为适合2D ...

  4. 手把手教你EEG脑电数据预处理-操作篇

    目录 导入数据 对数据进行初步认识 电极定位 移除无用电极 重参考 重采样 滤波 分段和基线校正 插值坏导 ICA 剔除ICA成分 剔除坏段 目视检查法 保存数据 本分享为脑机学习者Rose整理发表于 ...

  5. 手把手教你EEG脑电数据预处理-原理篇

    目录 0. EEG data 1. 定位通道数据 2. 删除无用数据 3.滤波 4.分段 5.基线校正 6. 重参考 7. 降低采样率 8. 插值坏导 9. 独立主成分分析 10. 剔除坏段 本分享为 ...

  6. Analyzer脑电数据处理步骤

    Analyzer脑电数据处理步骤 1 简化版流程 2 详细版流程 2.1 设置数据路径的workspace 2.2 转换参考(New Reference 2.3 滤波(Filters) 2.4 ICA ...

  7. Python中FIR滤波和STFT滤波对比(MNE脑电数据处理)

    在脑电数据处理中滤波是很重要的一个步骤,直接影响后面的特征提取等计算流程.在之间写的博客中有过介绍(https://blog.csdn.net/zhoudapeng01/article/details ...

  8. EEG脑电公开数据库大盘点

    不做实验能否发表论文?答案当然是肯定的.对于刚进入EEG领域的同学来说,利用网上公开的EEG数据库练练手,顺便发表一些论文是个不错的选择.公开数据库对于促进科学研究的快速发展意义重大,公开数据的建立可 ...

  9. arduino eeg脑电模块_应用深度学习EEGNet来处理脑电信号

    本分享为脑机学习者Rose整理发表于公众号:脑机接口社区(微信号:Brain_Computer).QQ交流群:903290195 EEGNet论文 EEGNet简介 脑机接口(BCI)使用神经活动作为 ...

最新文章

  1. FIELD-SYMBOLS详解
  2. 关于界面软件测试点,电子商务网站--界面测试的测试点
  3. C#项目开发系统开发进度-第X组-xxx(简单)
  4. 第三次学JAVA再学不好就吃翔(part40)--import关键字
  5. VS 如何修改C++编译标准
  6. 莫兰迪色rgb颜色表_企业风险评价,(SCL)安全检查表,Excel工作表
  7. 大学专业:这4个计算机类专业很受欢迎,毕业后薪资待遇高?
  8. 实现WinForm窗体的美化(借助第三方控件)
  9. 微软发布 PowerToys 首个预览版,重启的 Windows 工具集
  10. 城乡规划转到计算机专业行吗,哪些大学城乡规划专业有博士点
  11. 玻尿酸市场价格有很多,你是赚了还是亏了?
  12. 如何进入DOS系统及常用DOS命令总结
  13. 第三方支付对接-支付宝支付接入教程
  14. HTML5和CSS3的一些小总结
  15. Android Room的使用
  16. 小程序数据获取限制问题解决
  17. java虚拟机系列:java虚拟机内存模型
  18. vue.config.js中lintOnSave配置
  19. 【控制工程基础】五、线性反馈系统的稳定性
  20. linux命令行下读取u盘内容_Linux拷贝U盘文件(命令行)

热门文章

  1. 以假乱真的AI美女,有着让人羡慕的好身材
  2. 行业追踪,2023-07-04,受特斯拉中报影响,汽车零部件放量强势拉升,不调整
  3. std::any用法示例
  4. mysql 无符号填充零_MySQL无符号、填充零
  5. Error inflating class android.support.v17.leanback.widget.PlaybackControlsRowView
  6. 干货分享丨高效SQL语句编写-Oracle Code 2019中云和恩墨CTO杨廷琨的分享
  7. 这些Excel学会了,你做账的效率将大大提高
  8. ncnn报null pointer dereference异常
  9. 【喜报】“深度强化学习实验室“与“南栖仙策“达成战略合作
  10. Metasploit的简单木马免杀技术及后渗透面临的问题