问题标签 [overfitting-underfitting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
89 浏览

validation - 当验证准确性发生变化时,提前停止的效果如何

我正在构建一个用于未来预测的时间序列模型,该模型由 2 个 BILSTM 层和一个密集层组成。我总共有 120 种产品来预测它们的价值。而且我有一个相对较小的数据集(为期 2 年的每月数据 => 最多 24 个时间步长)。因此,如果我查看整体验证准确性,我会得到:

在此处输入图像描述

在每个时期,我将模型权重保存到内存中,以便将来随时加载任何模型。

当我查看不同产品的验证准确性时,我得到了以下信息(这大致是针对一些产品的):

在此处输入图像描述

对于这个产品,我可以使用 epoch ~90 保存的模型来预测这个模型吗?

在此处输入图像描述

以及以下产品,我可以使用 epoch ~40 保存的模型进行预测吗?

在此处输入图像描述

我在作弊吗?请注意,产品种类繁多,购买行为也各不相同。对我来说,遵循这个策略,相当于训练了 120 个模型(给定 120 种产品),同时为每个模型提供更多数据作为奖励,希望每个产品都能取得更好的成绩。我在做一个公平的假设吗?

任何帮助深表感谢!

0 投票
1 回答
198 浏览

python - 30 类的 LSTM,严重过拟合,不能超过 76% 的测试准确率

如何将职位描述分类到各自的行业?

我正在尝试使用 LSTM 对文本进行分类,特别是将职位描述转换为行业类别,不幸的是,到目前为止我尝试过的事情只产生了 76% 的准确率。

使用 LSTM 对 30 多个类别的文本进行分类的有效方法是什么?

我尝试了三种选择

型号_1

Model_1 的测试准确率达到 65%

  • 嵌入维度 = 80

  • 最大序列长度 = 3000

  • 纪元 = 50

  • 批量大小 = 100

用于多类分类的 LSTM 架构

图像表示模型_1的测试列车损失图


型号_2

Model_2 测试准确率达到 64%

图片代表Model_2的LSTM架构

模型_2的Test-Train损失图


型号_3

Model_3 测试准确率达到 76%

图片代表model_3的LSTM架构

我想知道如何提高网络的准确性。

0 投票
2 回答
106 浏览

python - Keras CNN 立即过拟合,而不是数据集问题

一直在尝试构建一个 CNN 来对 MFCC 数据进行分类,但该模型立即过拟合。

数据:

  • 18 000 个文件(80% 训练,20% 测试)
  • 5 个标签

数据中的 5 个类别都是等量的。这个模型的创建是为了处理比 18k 更多的文件,所以我被告知要尽我所能减少网络,这可能会有所帮助。

将过滤器从 (3,3) 减少到 (1,1),尝试减少隐藏神经元数量甚至减少层数量。我只是卡住了,有人有什么想法吗?

无论发生什么,在使用测试数据测量准确度时,我的准确度都不会高于 60-65%。

型号代码:

型号总结:

MFCC 示例 (192x192)

模型精度

模型损失

0 投票
1 回答
56 浏览

python - 我们是否总是检查验证准确性和损失以确定过度拟合?

有大量文章描述过拟合,以及如何解决它们。一般定义是

过拟合可以通过检查准确性和损失等验证指标来识别。当模型受到过度拟合的影响时,验证指标通常会增加,直到它们停滞或开始下降。在上升趋势中,模型会寻求良好的拟合,当实现时,会导致趋势开始下降或停滞。

问题:我们是否应该只考虑验证准确度和损失来确定过拟合?

就我而言,我正在使用 IEMOCAP 数据集,我的最终指标如下所示。

混淆指标是这样的,

当我将它与其他实验结果进行比较时,这种混淆指标似乎很好。但是我的准确率和损失图清楚地显示了过度拟合。

模型损失 模型损失

模型精度 准确性

那么如何判断过拟合呢?我们还要考虑哪些其他参数?

0 投票
0 回答
42 浏览

python - 在使用简单的 RNN 层拟合模型时,我每次都达到 37.62% 的 val_accuracy 上限。为什么会这样?

使用 keras simpleRNN 层,我正在撞墙。我还有另外两个模型,一个只有完全连接的 Dense 层,一个使用 LSTM,它按预期工作,所以我认为问题不是数据处理。

对于上下文,我使用的是 tf.keras reuters 数据集,该数据集是标记化的,输出数据由我分类的 46 个可能的标签组成。

数据的外观和处理方式 数据的外观和处理方式

下面是模型代码。

我正在使用以下参数进行拟合

拟合这个模型,val_accuracy 始终为 0,3762,val_loss 为 ~3,4。从图中可以清楚地看到这个“天花板”:

图表

我尝试过的事情:更改超级参数,更改输入数据形状,尝试不同的优化器。

任何提示表示赞赏,谢谢。并感谢帮助编辑我的帖子以使其更易于理解的人:)

其他两个模型的图表,处理相同的数据:

仅密集层

密集图

长短期记忆体

LSTM 图

0 投票
1 回答
413 浏览

tensorflow - 验证损失没有减少(张量流)

首先,对不起我的英语,

我在使用 tensorflow 的项目中遇到问题,我必须编写一个字典(英语--> 德语),我知道要找出问题所在并不容易:/ 它正在杀死我,我在这里为任何问题。谢谢

输入:

  1. 输入:

形状为 (16, 14, 128) :

-batch -单词数(1<words<13)并使用函数映射数据集,该数据集在序列之前用一些不同的填充值填充每个英语嵌入序列,以便每个序列的长度为 13

128 之后

  1. 输入_德语

形状 (16,14) 带有“ <start> ”和“ <end> ”标记到开头和结尾

验证损失的问题:

这里周一代码:

0 投票
0 回答
39 浏览

keras - 无法通过减少层数、增加Dropout或增加学习率来防止CNN模型过拟合

我想使用 CNN 制作一个图像分类器。数据集中有两种类型的图像:男性和女性。总共有 2300 张图像,其中 20% 用于验证。问题是我的模型由于过度拟合而根本不好(我认为这就是问题所在),但我无法弄清楚为什么我的模型过度拟合如此糟糕(请打开下图的链接。y 的最大值是 3.5)这是我用来进行双分类预测的 keras 模型

我通常会得到这种结果

0 投票
1 回答
60 浏览

python - 泰坦尼克号数据集过度拟合:能有那么多吗?

我有点困惑,因为我正在训练一个模型,该模型在训练数据上产生大约 88% 的 CV 分数,而在我提交后,相同的模型在测试数据上表现不佳(分数为 0.75)。准确率下降 12 点不可能都是由于过度拟合,不是吗?有任何想法吗?你在你的模型/提交中遇到过这样的差距吗?

有关模型和结果,请参见随附的图像。

################################################# ########

准确率:88.13% (2.47%)

0 投票
1 回答
390 浏览

python - 如何使用 XGboost 进行微调

我正在尝试为 Mercedes Greener Manufacturing 数据集建立一个通用模型。所以,我正在尝试使用 XGBoost Regressor 来达到同样的效果。我使用了一个 1-100 的循环作为训练测试集的种子,以便获得更好的采样。我使用 PCA 将尺寸减小到 8 。

如何使用 xgboost 进行微调,以免我得到过拟合的模型?

输出

0 投票
0 回答
62 浏览

python - 是过拟合还是数据泄露问题?

我在个性化数据集上应用了 Sklearn DecisionTreeClassifier() 来执行二进制分类(0 类和 1 类)。

最初课程不平衡,我尝试使用以下方法平衡它们:

因此,我的数据集与第 1 类的 186404 个样本和第 2 类的 186404 个样本平衡。训练样本为:260965,测试样本为:111843 我计算了使用的准确度sklearn.metrics,得到了下一个结果:

因此,我在测试和训练阶段都获得了 100% 的准确率,我确信结果是异常的,尽管我在拆分数据之前已经对数据进行了洗牌,但我无法理解这是过度拟合还是数据泄漏。然后我决定使用

我得到了下一个数字,但我无法解释:

在此处输入图像描述

我尝试了另外两种分类算法:Logistic Regression 和 SVM,我得到了下一个测试准确率:分别为 99,84 和 99,94%。

更新 在我的原始数据集中,我映射了 4 个分类列,然后使用下一个代码:

在使用 RandomUnderSampler 对我的原始数据进行欠采样以获得类平衡后,我将数据拆分为训练和测试数据集 train_test_split 的 sklearn

任何想法都可能对我有帮助!