zoukankan      html  css  js  c++  java
  • 【小白学PyTorch】2 浅谈训练集和测试集

    文章目录:

    经验误差与过拟合

    关键词:错误率(error rate),精度(accuracy)

    • 错误率好理解,就是m个样本中,a个样本分类错误,则错误率E = a/m 。
    • 精度 就是 1-E。 其实很简单,但是为什么我还要提一提呢,因为机器学习里还有很多相关名词,例如:准确率,召回率,精确度等等,所以希望大家能清楚认识。

    关键词:经验误差(empirical error)

    • 在训练集上,预测输出与样本的真实输出之间的差异(差异!)称为经验误差或训练误差。

    关键词:泛化误差(generalization)

    • 在新样本上的误差称为泛化误差。

    关键词:过拟合(overfitting)

    • 刚接触机器学习时候,就碰到过拟合这个很抽象的词, 当时是说的曲线拟合 。曲线拟合其实就是一个过程。该过程是通过实际曲线上的一些样本点(成为训练样本),经过一个模型训练,得到一条预测曲线。(敲黑板:拟合就是一个过程)。那么过拟合就是,拟合过头了,预测曲线非常好的适合训练样本,然而对实际曲线的其他样本不太适合。 推广一下到分类器(模型)上就是,训练好的分类器对训练样本很好的分类,但是对测试样本的分类结果很糟糕。
      有过拟合当然有欠拟合啦,欠拟合可以认为是该分类器学习能力太差,连在训练样本上都没有很好的分类,更不要说在测试样本上了。

    评估方法

    关键词:留出法(hold-out)

    • 怎么将给定的数据集划分为训练集和测试集呢?常用的方法在这里有介绍。首先介绍的是留出法,其实这种方法在国内教材和论文中最常见,就是把数据集D划分为两个互斥的集合,其中一个是训练集,一个是测试集。书中给出的参考划分比例是,训练集66.6%~80%。

    关键词:交叉验证法(cross validation)

    • 交叉验证法是竞赛中或者比较正式的实验中用得比较多。什么是交叉验证呢? 其实就是将数据集D划分为k个大小相同的互斥的子集,然后用k-1个子集作为训练,剩下那一个子集作为测试。这样就需要训练k个模型,得到k个结果,再取平均即可。这样的方法通常成为“k折交叉验证”。书中还给出了k的参考值,:5,10,20。

    关键词:自助法(bootstrapping)

    • 第一次听说自助法,也从没在文献中看到过,自助法主要是用于小样本!缺点是容易引入估计偏差。具体操作是这样的,对于m个样本的数据集D,每次随机挑选D中的一个样本放到D’中,挑m次,经过计算D中有大约36.8%(≈1/e)的样本未出现在D’中,这样用D’作为训练集,DD’(“”表示集合减法)作为测试集。自助法又称为可重复采样,有放回采样。(第二次看到这个方法的时候,发现,这不就是bagging抽样数据集的方法嘛,只是这里作为划分训练集和测试机的方法。)

    关键词:训练集(train set)、验证集(valid set)、测试集(test set)

    • 一开始接触机器学习只知道训练集和测试集,后来听到了验证集这个词,发现验证集和之前所认识的测试集的用法是一样的,一直就把验证集和测试集给混淆了。

    首先需要知道的是,在工程应用中,最终提交给客户的模型是用尽数据集D中的m个样本训练的模型。也就是说,我们的测试集最终还是要用来训练模型的。之前有说到数据集D划分为训练集和测试集,训练集就是用来训练模型,测试集是用来估计模型在实际应用中的泛化能力,而验证集是用于模型选择和调参的。
    因此,我个人的理解是在研究过程中,验证集和测试集作用都是一样的,只是对模型进行一个观测,观测训练好的模型的泛化能力。而当在工程应用中,验证集应该是从训练集里再划分出来的一部分作为验证集,用来选择模型和调参的。当调好之后,再用测试集对该模型进行泛化性能的评估,如果性能OK,再把测试集输入到模型中训练,最终得到的模型就是提交给用户的模型。

    举例
    举个高三学生高考的例子吧,

    • 训练集 就是 平时的作业,习题册等
    • 验证集 就是 一模、二模、三模的试题
    • 测试集 就是 高考试题

    训练集是给学生进行学习的,提高学生的能力;验证集是用来检验学生的学习方法,学习方向,学习方式,是否正确;测试集是最终考察学生的成绩如何。

    不过幸运的是,我们有多次“高考”的机会,只不过,我们不能去分析高考的试题,因为测试集仅仅作为一个验证。

    一般来说,当验证集和测试集具有同分布的时候(即模拟题和高考题几乎一样的时候),在模拟考能拿650分,那么在真实考高中也会在650分左右。

    人不可傲慢。
  • 相关阅读:
    财务自由之路--笔记
    Spring Cloud微服务笔记(一)微服务与云概念
    Java8新特性----Stream
    Docker操作笔记(四)使用网络
    Docker操作笔记(三)数据管理
    Docker操作笔记(二)容器
    Docker操作笔记(一)使用镜像
    信息化领域热词分类分析及解释
    假期第二周总结
    假期第一周总结
  • 原文地址:https://www.cnblogs.com/PythonLearner/p/13587142.html
Copyright © 2011-2022 走看看