跳到主要内容
返回课程

第 3 周 · 第 2 课 · 45-55 分钟

训练并测试一个分类器

弄清为什么要用分类器从没训练过的照片来检验它,并用一个公平测试集上的准确率来衡量它的表现。

材料
在网页浏览器中打开的这节课 · 纸和笔,或者一个记事应用 · 本课中展示的内置带标签测试集
本课
进行中

会自动保存在这台设备上

你将能够做到

  • 说明为什么要用另外的、没参与训练的照片来测试分类器。
  • 用「预测正确数除以预测总数」来计算准确率。
  • 读懂各类别准确率,并找出最弱的那个类别。
  • 说明为什么单一的总体准确率会掩盖某个薄弱类别。

想一想

一个分类器把每一张训练照片都答对了。制作它的人说它「完美无缺」。可当它遇到全新的照片时,却错了一大堆。他们衡量它的方式出了什么问题?

想一想「背下答案」和「真正学会规律」之间的区别。

做个预测

预测一下:如果一个分类器在猫、狗、兔子上的总体准确率是 90%,你觉得它在这三个类别上的表现同样好吗?

准确率
分类器答对的频率,通常是预测正确的数量除以预测总数,以百分比表示。
各类别准确率
分别针对每个类别测出的准确率,让你看清分类器擅长哪些类别、又在哪些类别上吃力。
测试集
一组带标签、被单独留出且从未用于训练的照片,用来公平地检验分类器面对新图像时的表现。
训练集
分类器在接受测试之前,用来学出各种规律的那些带标签照片。

为什么要用分类器从没训练过的照片来测试

分类器是从训练集里学习的。如果你之后又拿同样这些照片去测试它,它可能仅仅因为把它们背下来就显得很出色,就像一个提前看过考题的学生。那个分数根本说明不了它面对新照片时表现如何。

所以我们会另外保留一个测试集:一批带标签、留出不用于训练的照片。用分类器没见过的照片来测试,才是衡量它是否真正学到规律的公平方式。

  • 用 800 张宠物照片训练,再用另外 200 张不同的宠物照片测试。
  • 训练分数高而测试分数低,是「死记硬背」的警示信号。
  • 测试照片也必须带标签,你才能核对每一个预测。

准确率:分类器答对的频率

准确率是最简单的分数:预测正确的数量除以预测总数,写成百分比。如果分类器在 100 张测试照片中答对 90 张,它的准确率就是 90%。

准确率容易理解,所以特别常用。但一个数字一次性把所有情况都概括了,因此它也可能掩盖问题,而各类别准确率正是为此而生。

  • 50 张照片答对 45 张,就是 90% 的准确率。
  • 两个分类器可能准确率相同,犯的错误却大不一样。
  • 只有在带标签的数据集上,也就是你知道正确答案时,准确率才有意义。

各类别准确率能讲出更完整的故事

各类别准确率单独衡量每一个类别的得分。总体准确率可能是 90%,但分类器也许 98% 的时候能答对猫,而兔子只有 74%。那个总体数字悄悄把薄弱的类别平均掉了。

把准确率按类别拆开,能准确告诉你该在哪里改进。这通常是查明分类器把哪个类别搞混的第一步,也正是下一节课的重点。

  • 总体 90%,但猫 98%、狗 92%、兔子 74%。
  • 如果某个薄弱类别在测试集里照片很少,它可能被藏起来。
  • 修好最弱的那个类别,通常能把总体准确率抬得最多。

例题讲解

公平地衡量一个宠物分类器

  1. 拆分照片:800 张进训练集,另外 200 张不同的进测试集。
  2. 训练:分类器只用那 800 张训练照片来学习猫、狗和兔子的规律。
  3. 测试:把留出的 200 张全部跑一遍,把每个预测和真实标签作比较。
  4. 总体准确率:200 张里对了 180 张,所以 180 ÷ 200 = 90% 的准确率。
  5. 按类别看:猫 98%、狗 92%、兔子 74%。尽管总体的 90% 看着挺不错,其实是兔子在拖后腿。

要点:用留出的照片测试,按「答对数除以总数」算出准确率,再按类别拆开,找出被总体数字掩盖的薄弱环节。

测试集上的各类别准确率

一张条形图,用百分比显示在 200 张照片的测试集上各类别的准确率。猫为 98%,狗为 92%,而兔子只有 74%。一条虚线参考线标出了 90% 的总体准确率。图表清楚地表明兔子是最弱的类别,正把总体分数往下拉,尽管那个单一的总体数字看上去挺不错。

总体的 90% 掩盖了兔子远弱于猫和狗这一事实。

为什么单独的测试集才公平

之前(不公平):用分类器训练时用过的同一批照片来测试它,于是它可能仅凭背下这些照片就拿到高分,而这个分数无法预示它面对新照片时的表现。之后(公平):把照片拆开,训练和测试使用不同的照片;只用它训练时从未见过的照片来给它打分,这才能看出它是否真正学到了规律。

用分类器没见过的照片来测试,分数才靠得住。

活动

训练并测试一个分类器

选定一个主题,挑选训练图片,在你的设备上真正训练出一个分类器,并读出它在没见过的图片上的总体准确率、各类别准确率和混淆矩阵。

  1. 选一个主题,读一读它的类别。
  2. 选好用哪些图片来训练(键盘或点击都行),留意各类别的数量。
  3. 先预测哪一类最容易、哪一类最难,然后训练,再看结果、混淆矩阵和各类别的准确率。

1 · 选一个分类主题

2 · 类别

圆形
一个没有角的圆形。
三角形
一个有三条直边和三个角的图形。
正方形
一个有四条相等直边和四个角的图形。
3 · 选择训练图片

被选中的图片就是模型学习的对象。取消一些,看看结果会怎么变。

各类别:圆形: 3三角形: 3正方形: 3

这个课堂模型是基于简单形状特征的最近邻分类器:它完全在你的设备上运行,不用摄像头、不用联网,也不依赖任何大型 AI 服务。它是故意做得简单的,所以会犯那些你在这里看得见、讲得清的错误。

检查你的理解

回答这些题,检验你能否用准确率公平地衡量一个分类器。

  1. Question 1. 一个分类器在 50 张测试照片中答对了 45 张。它的准确率是多少?

  2. Question 2. 哪一个分类器是用公平的方式衡量的?

    A 组用它训练时用过的那 500 张照片来测试自己的分类器,报告准确率 99%。B 组留出 100 张照片,用其余照片训练,只用留出的那 100 张来测试。

  3. Question 3. 判断这句话是对还是错。

    单一的总体准确率可能掩盖分类器在某个特定类别上表现很差这一事实。

已回答 0 / 3

自己动手试试

公平地划分

为一个给三种水果照片分类的分类器,设计一套公平的训练/测试方案,并说明你会衡量什么。

  1. 决定多少张照片进训练集,多少张留出来做测试集。
  2. 说明为什么测试照片不能在训练中使用。
  3. 列出你会报告的准确率数字:总体准确率,以及每种水果的准确率。

做到这样就算成功

  • 把照片清楚地划分成训练组和测试组。
  • 说明了测试照片必须排除在训练之外的理由。
  • 把总体准确率和各类别准确率都列为需要报告的内容。

反思

输入时会保存在这台设备上

请不要写私人信息。你的回答只保存在这个浏览器里,不会发送到任何地方。

小结

分类器要在留出的测试集上用准确率来公平衡量,而把准确率按类别拆开,能揭示总体数字所掩盖的薄弱环节。

  • 用一组分类器从未训练过的、单独的照片来测试。
  • 准确率是预测正确数除以预测总数。
  • 即使总体分数看着不错,各类别准确率也能指出哪个类别最弱。

七至八年级延伸内容

准确率什么时候会误导人

设想一个测试集里 95% 是猫,只有 5% 是兔子。一个偷懒的分类器每次都猜「猫」,就能拿到 95% 的准确率,同时把每一只兔子都答错。高准确率掩盖了它在兔子上的彻底失败。

说明测试集中各类别的比例为什么重要。你可以衡量什么、或者改变什么,才能让分类器无法靠无视某个稀少类别来「作弊」?

完成这一课

  • Attempt the knowledge check(未完成)
  • Save a reflection (recommended)(未完成)

先做一下知识检查,才能完成这一课。