欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python模型训练效果没有优化_LSTM模型训练效果好,但测试结果较差,不能看出拟合过度...

发布时间:2025/3/21 python 61 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python模型训练效果没有优化_LSTM模型训练效果好,但测试结果较差,不能看出拟合过度... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

以下是我的数据:

我有500个录音(任意分成训练,验证和测试集)。每个记录包含一定数量的行,每一行对应一个1s的EEG片段,换句话说,每个记录的长度等于一个EEG信号的长度(s)。每行包含22个通道*22个时间/频率特征=484个特征+输出标签(0或1)。在

所以我想执行二进制分类。在

正如许多论文(看this good paper)所建议的那样,对于每一个记录,我创建长度为look_back的序列,以便在预测每个标签时考虑到“周围”片段的特征。代码如下:def create_dataset(feat,targ, look_back=1):

semi_window=math.floor(look_back/2)

dataX, dataY = [], []

for i in range(semi_window,len(targ)-semi_window):

a = feat[i-semi_window:(i+semi_window+1), :]

dataX.append(a)

dataY.append(targ[i])

return np.array(dataX), np.array(dataY)

此函数返回大小为(samples, look_back=time_steps, features=484)的三维数组。在

为了处理不平衡的类,我测试了make_imbalance函数以删除实例以保持每个类的实例数不变,以及在loss函数中考虑到不平衡的class_weight参数。在

所以,我使用了一个LSTM模型,并使用earlystup回调参数,在验证精度没有增加给定容差的情况下停止。在

这是我的完整模型:

^{pr2}$

我得到的结果是:

训练混淆矩阵显著,但验证矩阵和测试矩阵较差。。。在

我想这并不过分,因为我的模型尺寸很小(一层,…)。此外,我认为这个模型是恰当的,因为它能够很好地区分(巨大)训练集上的数据。。。在

那么,怎么了?在

NB:我说的是,我对经典的Keras前馈神经网络也有同样的问题

编辑:以下是我绘制学习曲线时得到的结果:

你可以看到的是,训练精度仍然很高,而验证精度(实际上橙色曲线应该是“验证”)仍然很低。。。在

编辑:我尝试使用XGBoost和SVM分类器,但是我无法得到结果(仍然是相同的行为)

编辑:我试着洗牌数据看看。我得到了很好的结果,但这有点像海市蜃楼。。。事实上,我有来自相同记录的数据(不完全相同,但非常接近)在训练和验证集。。。有点作弊。当我向模特展示一张全新的唱片时,它崩溃了。。。所以,我还没有找到解决办法

总结

以上是生活随笔为你收集整理的python模型训练效果没有优化_LSTM模型训练效果好,但测试结果较差,不能看出拟合过度...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。