cnn 验证集 参与训练吗_如何正确使用机器学习中的训练集、验证集和测试集?...

本文介绍了如何正确使用训练集、验证集和测试集,强调了在同一测试集上对比不同模型的重要性。训练集用于模型学习,验证集用于超参数调整,测试集用于评估模型的泛化能力。混淆验证集和测试集的结果会导致对比无效,违反了机器学习中的公平性和可重复性原则。文章以高考为比喻,深入浅出地解释了这三个集合的用途和相互关系。
摘要由CSDN通过智能技术生成

76ec0cb8d6c8717c72231cec3482bc07.png

训练集、验证集和测试集,林林总总的数据集合类型,到底该怎么选、怎么用?看过这篇教程后,你就能游刃有余地处理它们了。

问题

审稿的时候,不止一次,我遇到作者错误使用数据集合跑模型准确率,并和他人成果比较的情况。

他们的研究创意有的很新颖,应用价值较高,工作可能也做了着实不少。

但因对比方法错误,得出来的结果,不具备说服力。几乎全部都需要返工

这里,我帮你梳理一下,该怎么使用不同的数据集合:

  • 训练集(training set)
  • 验证集(validation set)
  • 测试集(test set)

目的只有一个——避免你踩同样的坑

其实这个问题,咱们之前的教程文章,已有涉及。

《如何用 Python 和深度迁移学习做文本分类?》一文中,我曾经给你布置了一个类似的问题。

在文章的末尾,我们对比了当时近期研究中, Yelp 情感分类的最佳结果。

下表来自于:Shen, D., Wang, G., Wang, W., Min, M. R., Su, Q., Zhang, Y., … & Carin, L. (2018). Baseline needs more love: On simple word-embedding-based models and associated pooling mechanisms. arXiv preprint arXiv:1805.09843.

cfa23700fa3c6def3d89cc64354efe13.png

注意这里最高的准确率(Accuracy)数值,是 95.81 。

我们当时的模型,在验证集上,可以获得的准确率,是这个样子的:

7df6c4600f85e6b596db2f67550e7899.png

97.28%,着实不低啊!

于是我问你:

咱们这种对比,是否科学?

当时的答案是什么?

这么久过去了,又看了那么多新的教程和论文,你的答案发生变化了吗?

现在咱们公布一下答案吧。

不科学

为什么?

因为对比方法有问题。

方法

原文中有这样一句:

这里数据集只提供了训练集和“测试集”,因此我们把这个“测试集”当做验证集来使用。

作为演示,数据集咱们想怎么用,就可以怎么用。

甚至你把测试集拿来做训练,然后在训练集上跑测试,都没有人管。

但是写学术论文,声称你的模型优于已有研究,却绝不能这么草率。

注意,比较模型效能数值结果时,你只能拿不同的模型,在同样的测试集上面比。

测试集不同,当然不可以。

但模型A用测试集,模型B用验证集(与A的测试集数据完全一致)比,可以吗?

很多人就会混淆了,觉得没问题啊。既然数据都一样,

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个比较复杂的任务,需要多个步骤。我将尽可能详细地解释每个步骤。首先,我们需要准备一些数据,包括滚动轴承的振动数据和标签(表示故障发生的间)。然后,我们使用迁移学习来训练一个深度学习模型,该模型可以根据振动数据来判断轴承是否发生故障。 以下是详细的步骤: 1. 准备数据集 我们需要收集一些轴承振动数据,最好是从真实的机器设备获取的数据。这些数据应该包括振动信号和标签,标签表示故障发生的间。将数据集划分成训练集验证集测试集,通常采用 80/10/10 的比例划分。确保训练集测试集包含各种不同类型的故障,以便我们的模型可以学习到不同类型的故障模式。 2. 数据归一化和标准化 在训练深度学习模型之前,我们需要对数据进行归一化和标准化处理。归一化是将数据缩放到统一的范围内,通常是 0 到 1 或 -1 到 1。标准化是将数据缩放到均值为 0,方差为 1 的标准正态分布。这两种处理方式可以提模型的训练效果和泛化能力。 3. 迁移学习模型 由于轴承故障诊断是一个相对较小的数据集,我们可以使用迁移学习来训练模型。迁移学习是指使用在大型数据集上预先训练好的模型(如 ImageNet)来初始化模型的权重。这样可以加速模型的训练,并提模型的准确性。 4. 构建模型 我们可以使用卷积神经网络(CNN)来构建深度学习模型。CNN 是一种特殊的神经网络,可以有效地处理图像、音频和间序列数据。在本例,我们可以使用卷积层来提取特征,然后使用全连接层来进行分类。 5. 训练模型 我们可以使用 Keras 或 TensorFlow 等框架来训练模型。在训练过程,我们应该使用训练集验证集来监控模型的准确性和过拟合情况。如果发现模型出现过拟合,可以使用正则化技术来缓解这个问题,如 L1 和 L2 正则化、Dropout 等。 6. 测试模型 在测试集测试模型,并计算模型的准确率、精度、召回率等指标。如果模型的表现不好,可以尝试调整模型的参数,或者增加数据量、调整数据集划分等。如果模型表现良好,则可以将其部署到生产环境进行实轴承故障诊断。 希望以上内容对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值