问题标签 [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 投票
1 回答
260 浏览

python - 如何在使用 EfficientNet 时防止过拟合/欠拟合

我是 python 新手,所以对于我的大学期末项目,我使用 EfficientNet 将成熟棕榈油分为 4 类。我总共有 5852 个训练数据(每个 1463 个)和 132 个测试数据(每个 33 个)。我使用了来自互联网的代码。但结果远非好。我已经添加了 layers.dropout 以防止/避免欠拟合。我还使用 imagenet 进行迁移学习。有什么解决方案可以改善结果吗?

编辑:我已经将我的代码从 conv_base.trainable = False 更改为 conv_base.trainable = True。但我觉得结果还是不好

这是我的完整代码:https ://drive.google.com/file/d/1OeiSA23xmF5ceq19aqc1l20mlT3Uxocs/view?usp=sharing

这是我的结果

模型精度

模型损失

0 投票
0 回答
17 浏览

neural-network - CNN 使用一层过拟合

我是神经网络的新手。我正在用 keras 构建一个 CNN 神经网络。但它已经过拟合了一层。所以训练的准确率是 1,但在测试/验证中是 30% 的准确率。即使我引入更多层并添加 dropout,它也无济于事。另外,CNN 怎么可能已经过拟合了一层?一层不能降低复杂度,因为一层是最小的

0 投票
1 回答
136 浏览

tensorflow - TensorFlow 对象检测 API 过拟合

我在以下教程的帮助下使用 Tensoflow 对象检测 API 创建树检测器:https ://www.youtube.com/watch?v=a1br6gW-8Ss

我的问题是模型过度拟合了训练集。我怎样才能避免它?我的训练集由 130 张图像组成,图像中平均标记了 4 棵树。共有7种。我使用的模型是:在 COCO 数据集上预训练的“Faster R-CNN ResNet50 V1 640x640”..(链接如下) https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/ tf2_detection_zoo.md 在教程中使用以下模型“EfficientDet D0 512x512”,但该模型也过拟合了我的数据集,所以我尝试使用“Faster R-CNN ResNet50 V1 640x640”。

我用来减少过拟合的技术是

  1. 辍学(率=0.675)
  2. 数据增强(random_crop)
  3. 低学习率(learning_rate_base: .008 , total_steps: 25000 .warmup_learning_rate: .0001)
  4. 原始图像尺寸为 860x860,我将它们调整为 tp 640x640 并在 xml 中更改了边界框坐标。

我应该在模型配置中添加或更改什么以避免过度拟合?

这是我的模型配置文件:

0 投票
1 回答
40 浏览

scikit-learn - gridsearchCV - 每个参数组合的随机数据

我正在使用 gridsearchCV 来确定模型超参数:

但是,我相信我遇到了一些过度拟合的问题: 结果

我想对每个参数组合下的数据进行洗牌,有什么办法吗?目前,通过 k-fold 交叉验证,正在为每个参数组合k-fold评估相同的验证数据集,因此过度拟合正在成为一个问题。

0 投票
1 回答
41 浏览

python - 我的模型是过拟合还是欠拟合?.如何从这个损失曲线中识别它?

我创建了一个基于 mobileNet 架构的模型来对图像进行分类。我使用了 209222 张图像进行训练和 40000 张图像进行验证。在我训练模型后,损失曲线如下所示。这个模型是过拟合还是欠拟合?或者由于验证和训练损失曲线彼此更接近并且在某个点之后它们是平坦的,我可以把它作为一个好的模型吗?我在下面附上了我的损失曲线。 损失曲线

0 投票
0 回答
61 浏览

performance - 使用 CARET 在随机森林中调整 max_depth

我正在 R 上用 Caret 包构建一个随机森林method = "rf"。我看到每种类型的随机森林caret似乎只调整mtry了为每棵树随机选择的特征数量。我不明白为什么max_depth每棵树都不是可调参数(如购物车)?在我看来,这是一个可以限制过拟合的参数。例如,我的 rf 在训练数据上似乎比测试数据更好:

如您所见,我的模型明显过度拟合。但是,我尝试了很多不同的方法来处理这个问题,但没有任何效果。我在测试数据上的准确率总是 0.7,而在火车数据上的准确率总是 0.95。这就是我想优化其他参数的原因。

我无法分享我的数据来重现这一点。

0 投票
0 回答
40 浏览

python - 自动检测回归模型的过拟合

我正在尝试使用机器学习来估算系列缺失的数据。

我一直在用 python 测试一些自动 ML 库来试验这个项目(到目前为止:dablFLAMLauto-sklearnAutoKeras)。

我知道以“经典”方式检测过度拟合的方法:那就是在调整模型的同时绘制测试/训练指标。但是在我的情况下,我想到了我不能使用它的两个原因:

  • 首先,出于物理考虑,我希望调整多个模型(至少一千个);
  • 其次,自动机器学习库返回“即用型”模型(有或没有某种日志);所有指标评估都是在后台完成的。

然后我选择拆分我的数据集并比较训练/测试样本上的分数(r2 + rmse)并在以下情况下拒绝模型:

  • 均方根误差 (test+train) 优于 serie 的标准差;
  • r2_train < .7;
  • r2_test / r2_train < .8。

注意:第一个测试是我在自动化背景下唯一能想到的测试(即将 rmse 与以与污染物相同单位表示的一个测量值相匹配)。也许有更好的行动方案,在这种情况下,我愿意接受建议。

话虽如此,这些准则并没有阻止我的算法呈现那种结果(我为法语的图例和轴标题道歉......:Y轴上是预测,X轴上是真实值; 图例中的“entraînement”对应于训练集):

pH 残留物

如您所见,该模型不是一个好的模型。我什至不确定这是否属于通常的过拟合问题,但该模型显然已经过训练以记住两个值(大约 5.7pH 和 7.4pH)。 (我可以完全理解为什么在查看原始数据集后会出现这些结果:不止一个 autoML 库导致了这些异常......但这不是重点)。

有没有办法在自动化过程中丢弃这些模型?我可以很容易地增加用于 r2 和 rmse 的阈值来丢弃这个模型;但我不相信它会允许每个这样的模型被丢弃......

0 投票
0 回答
63 浏览

performance - Catboost 过拟合训练数据,但测试性能提高

我在一个由 41k 观察和约 60 个特征组成的数据集上训练 catboost。该数据集是一个纵向系列(9 年),在空间上分布。目前我只是使用数据的随机重采样,忽略空间和时间依赖性。使用 5 折 CV 进行模型选择,一些数据用作外部测试/保留集。

我使用 catboost 获得的最佳结果是使用以下 hps:

mtry=37,min_n = 458,tree_depth = 10,学习率 = 0.05

训练 AUC = .962

内部验证 AUC = .867

外部测试 AUC = .870

训练和测试 AUC 之间的差异很大,这表明过度拟合。

相反,第二个 hp 配置减少了训练集和测试集之间的差异,但测试性能也会降低。

mtry=19,min_n = 976,tree_depth = 8,学习率 = 0.0003

训练 AUC = .846

内部验证 AUC = .841

外部测试 AUC = .836

我很想使用第一个 hps 配置,因为它在测试集上给了我最好的结果。另一方面,第二个结果对我来说似乎更稳健,因为训练和测试性能非常相似。此外,第二个结果可能更接近我使用空间或时间阻塞重采样策略可以获得的“真实”性能。

那么我的问题是我应该关注训练集和测试集之间的差异,还是只要测试性能不降低(过度拟合后果)我不应该关心它并选择第一个 hps 配置?

0 投票
1 回答
50 浏览

pytorch - 当标签为 logits 时,应如何创建 WeightedRandomSampler 的权重以进行对象检测?

我一直在尝试使用 CNN 对 VOC2007 数据集进行分类。数据集存在不平衡,多个图像具有“人”类,而所有其他类的图像很少,我的模型一直受到过度拟合的影响。为了过度采样,我一直在我的数据加载器中使用 WeightedRandomSampler。

这并没有给我一个平衡的数据集。我确定我的代码有问题,这不是必须为 coco 数据集创建权重的方式。但我不确定应该怎么做。应该如何为以 logits 作为标签的数据集创建权重。如何对具有 20 个类的 coco 图像数据集执行过采样?任何帮助将非常感激。

0 投票
1 回答
130 浏览

r - 在训练数据上过度拟合,同时仍然改进验证数据

我正在用 R 中的 XGBoost 拟合一个二元分类模型。我的数据集有 30 万个观察值,有 3 个连续预测变量和 1 个单热编码因子变量,有 90 个级别。因变量y是真或假。

我已经进行了随机子采样以找到最佳超参数。对于每个设置,我都做了 5 倍(分组)CV。下面的超参数设置导致 5 倍估值数据折叠的平均 AUC 最高:

接下来,我在下面的 XGBoost 模型拟合中使用了这些超参数设置:

我以这种方式可视化了评估日志:

在此处输入图像描述

我得出结论,该模型对训练数据过度拟合,因为 AUC 在 200 次迭代后接近 1。同时,该模型仍在验证数据上进行改进。一方面,我会得出结论,500 次迭代后的模型不是一个好的模型,因为它在训练数据上过度拟合。另一方面,该模型在验证数据上具有最高的 AUC。

如果该模型在训练数据上过度拟合(如上所示)是否是最佳模型,或者我是否应该进一步调整以使模型对训练数据的过度拟合较少(在验证数据上具有相似甚至略低的 AUC)?

谢谢!