CNN无法预测癫痫发作状态 复现论文准确率仅50%求解决方案
限制频谱图Y轴聚焦低频是必要的优化项,但仅靠这一步无法解决准确率卡在50%左右的问题,需要从预处理、窗口逻辑、模型训练三个维度同步调整,具体方案如下:
1. 频谱图预处理调整
你当前的频谱图生成逻辑存在较多冗余信息,会干扰CNN特征提取:
- 裁剪无效高频:EEG有效生理信号集中在0.570Hz区间,你当前采样率256Hz,`scipy.signal.spectrogram`默认输出0128Hz的全频段,无用的高频噪声占了近一半图面,直接添加
plt.ylim(0, 70)即可过滤冗余信息。 - 去除图像边距:你当前直接用
matplotlib导出的频谱图会带有默认留白边距,并非纯频谱内容,添加如下代码完全消除边距:
plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
- 优化色阶与通道:优先使用灰度图(
cmap='gray')替代jet色阶,输入从3通道改为单通道,既减少冗余计算,也能避免色阶带来的伪特征干扰。 - 验证去噪逻辑:建议先跑无小波去噪的基线模型,再对比加去噪后的效果,当前使用的db6硬阈值去噪很可能过滤掉了癫痫检测最关键的棘波、尖波特征,反而降低特征区分度。
2. 窗口生成逻辑修正
当前窗口采样逻辑存在标签分布偏移问题:
- 统一重叠率:发作期窗口重叠率设为2秒、间期窗口重叠率为0的设置,会导致两类样本的时间相关性差异极大,相当于只对发作期做了数据增强,模型会学到有偏的特征,需统一两类样本的重叠率。
- 增加边界校验:需添加逻辑确保生成的窗口完全落在对应标签的时间区间内,避免出现窗口一半为发作期、一半为间期的标签错误样本,这类脏数据会严重拉低模型准确率。
3. 模型与训练配置优化
从训练日志看模型处于欠拟合状态,可做如下调整:
- 替换大卷积核:将6×6卷积核替换为3×3小卷积核堆叠,更适配频谱图的局部纹理特征,同时减少参数量降低过拟合风险。
- 调整学习率:当前0.0001的学习率过低,可先上调至0.001训练10轮,观察loss下降速度和准确率提升情况。
- 优化全连接层:将卷积后的
Flatten替换为全局平均池化层,减少全连接层的参数量,避免过拟合;如果是4分类任务需先验证数据集的类别平衡性,若存在类别倾斜需添加类别权重或做针对性数据增强。
内容的提问来源于stack exchange,提问作者Drageild07
相关产品推荐
相关产品推荐

