机器学习常识 4: 分类问题的训练与测试

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

摘要: 本贴以最为典型的分类问题为例, 描述训练与测试.

1. 基本概念

上午来了 60 个患者, 根据他们的各项检测指标 (即数据), 主治医生给出了诊断结论 (如是否患病, 以及患哪种病), 但不会告诉实习生诊断的方法. 实习生根据这 60 条数据, 归纳总结出了诊断模型 (方法), 这是一个从数据中学习的过程. 下午来了 40 个患者, 根据他们的各项检测指标, 以及自己的诊断模型, 实习生给出了诊断结论. 主治医生比对实习生的结论与标准答案, 对实习生的学习能力进行评价. 例如, 实习生弄错了 5 个, 则其错误率为 5/40 = 12.5%, 准确率则为 87.5%.
几个相关术语:

  • 上午 60 条数据是主治医生给定的, 因此称为训练集.
  • 下午 40 条数据是用于考实习生的, 因此称为测试集.
  • 让计算机作为实习生, 就称为 机器学习.
  • 由于主治医生 (supervisor) 给定了训练集的所有标签, 因此称为监督学习 (supervised learning).

2. 训练、测试的不同方案

  • 第 1 部分描述的方案称为训练集与测试集划分方案 (split-in-two).

不同学习方法可能对于不同的训练数据的适应性也不同, 例如, 使用 1-60 号训练, 61-100 号测试的时候, A 学习器优于 B 学习器; 但使用 41-100 号训练, 1-40 号测试的时候, B 优于 A. 为弥补这种数据集划分导致的不公平, 可以使用如下方式:

  • 多次随机划分训练集与测试集 (random splitting). 将 split-in-two 重复 10 次, 每次随机进行训练集与测试集的划分. 获得 10 个错误率后, 可以求其均值与方差. 这是论文结果中 82. 5 ± 0.4 82.5_{\pm 0.4} 82.5±0.4 这类准确率的来历.
  • 交叉验证 (cross validation). 数据集中有 100 条数据. 将其分为 5 份, 即每份 20 条数据. 每次选择其中 4 份 (即 80 数据) 进行训练, 其它 1 份 (即 20 条数据) 进行测试. 这样, 所有的数据都被测试过一次. 这种方案被称为 5 折交叉验证 (5 folds cross validation, 5-cv).
  • 留一法 (leave-one-out). 这是交叉验证的极端情况. 将数据分为 100 份, 即每份只有一条数据. 这种方式最为公平, 但也最为耗时, 因为要训练-测试 100 次.

另一种极端的方案被称为使用训练集进行测试 (use training set). 主治医生给了实习生 100 条带标签的数据, 实习生学习到诊断模型后, 使用它对这同样的100 条数据进行分类. 这也是有意义的.

3. 拟合能力与泛化能力

本节的内容从逻辑上来说, 应该归于上一节末尾. 但它们太重要了, 以至于我不得单独使用一节.

  • 当测试集与训练集相同时, 考查的是模型的拟合能力.
    很多机器学习模型本质上从输入数据到输出标签的一个函数 (映射). 从理论上讲, 训练的过程, 就是从函数簇中选择对训练数据拟合得最好的那个函数. 从实践上讲, 训练就是构造该函数的过程.
  • 当测试集与训练集不同时, 考查的是模型的泛化能力. 提升泛化能力 (更好地为其他就诊者服务) 才是机器学习的真正目的.

如果实习生在老师教的那些样本上表现非常好, 但在新的样本上表现比较差, 就是产生了 过拟合 (over-fitting).
如何防止过拟合, 适当降低拟合能力以获得更好的泛化能力, 是机器学习的核心.

4. 验证集

数据集中有 100 条数据. 其中 70 条构成训练集, 20 条作为验证集, 10 条作为测试集. 根据训练集获得一个模型, 在验证集中看效果, 如果不行的话, 就再构建另一个模型, 直到获得满意的模型. 最终仍然在测试集上评估预测模型性能.
如果有些超参数 (与预测模型相关, 如 k k kNN 的 k k k 值, 只有在后面讲了), 则可以通过验证集来调整.
可以通过如下例子进行理解:

  • 训练集相当于平时的例题, 直接提供标准答案.
  • 验证集相当于平时的习题/测验题, 做完题后给你看标准答案.
  • 测试集相当于高考题, 只会告诉你考分, 不需要告诉你答案.

5. 其它说明

  • 测试集仅仅是对模型的预测能力进行一定的评估. 现实生活中, 用于预测的数据, 我们很可能永远得不到标准答案.
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: 机器学习