人工智能导论 第 3 章 · 实验一

← 返回实验目录

第 3 章 机器学习基础 · 实验一

谁能活下来

1912 年泰坦尼克号沉没,船上 891 名乘客的名单留了下来,每人的舱位、性别、年龄都有记录,谁生还也是已知的。本实验从这 891 条记录中找出规律,再用这些规律去判断一位陌生乘客是否生还。整个过程分三步走:先由人自己找规律,再把找规律的工作交给机器,最后检验找出来的规律是否可信。

建议用时45 分钟
前置要求学完第一节至第三节
对应课件第 3 章 第一节至第三节
交什么最后一节生成的实验报告

实 验 目 的

  1. 掌握用特征区分类别的基本思路,能够判断一个特征对当前的分类任务是否有用。
  2. 理解准确率这一指标的局限,能够用混淆矩阵、查全率、查准率说明一个分类结果好在哪里、差在哪里。
  3. 理解决策树的构建过程,能够通过调整树的深度观察过拟合现象,并解释它发生的原因。
  4. 理解训练集与测试集的区别,能够解释过拟合是怎么发生的。

实 验 主 线

本实验围绕一个问题展开:泰坦尼克号上 891 名乘客中谁生还了,这件事能不能从舱位、性别、年龄这些记录里看出来。六个环节分成两段。第 01 节至第 03 节由人动手定规则,弄清特征、标签、阈值、决策边界这几个概念在数据上分别对应什么。第 04 节至第 05 节把定规则的工作交给机器,看决策树怎样自动找门槛,以及为什么树长得太深反而会变差。

各 环 节 对 应 的 知 识 点

实验环节对应课件本环节练习的知识点
01 认识数据:特征与标签第一节 · 第 03 页数据这一要素,特征与标签分别指什么
02 一个特征加一道门槛第一节 · 第 07、08 页阈值、决策边界、准确率与混淆矩阵
03 加一个特征就一定更好吗第二节 · 第 14 页线性不可分,特征要切开原来切不开的人
04 决策树:让机器自己定门槛第三节 · 第 22 至 25 页信息增益、树的深度、训练集与测试集、过拟合
05 随机森林:多棵树投票第三节 · 延伸多个模型投票为什么能提高成绩
06 实验报告全实验整理实验数据,归纳结论
01

认识数据:特征与标签

对应 第一节 · 第 03 页
本 节 练 的 知 识 点

课本第一节第 03 页讲的三要素里的数据。机器学习的第一步是把要研究的对象变成一张表:每一行是一位乘客,中间几列是特征,最后单独一列写着答案,叫标签。本节要做的是看清这张表,并找出哪些特征和标签之间有关系。

这份数据共 891 位乘客。特征有六个:舱位等级、性别、年龄、票价、同行家人、登船港口。标签只有一个,就是这位乘客是否生还。下面左图中每个小方块是一位乘客,深色表示生还,浅色表示未生还,深浅代表的就是标签。

按性别分组
按你选中的那个特征,把 891 人分成几列,每列中生还者排在上面。一列里深色占的比例,就是这一组的生还率。
各组生还率
每根柱子是一组的生还率,横线是全船平均值 38.4%。柱子之间高低相差越多,说明这个特征越能区分生还与否。

动 手 做

  1. 点右边的性别按钮。891 人被分成女、男两列,右图出现两根柱子。
  2. 看右下角表格里两组的生还率,算出最高组减最低组这个差值,填进实验报告第一题。
  3. 把六个按钮逐个点一遍,每个特征都算出这个差值。
  4. 找出差值最大的特征和差值最小的特征,各是哪一个。

应 该 看 到

性别这个特征,女性组和男性组的生还率相差 50 多个百分点,柱子一高一矮非常明显。舱位等级也差得比较多。登船港口这个特征,各组之间只差十几个百分点,三根柱子高度接近。

这 说 明 什 么

判断一个特征有没有用,就看它能不能把标签不同的人分到不同的组里去。组与组之间的生还率差得越多,这个特征越有用。

课本第一节说模型要从数据里学规律。这里的规律具体指什么,现在有了答案:就是这些组间的差距。后面每一节用到的方法,都是在利用这些差距。

年龄这种连续的数为什么要先分组

性别只有两个取值,舱位只有三个,天然就能分组。年龄从零点四岁到八十岁,有几百个不同取值,每个取值只有一两个人,算出来的生还率不是 0% 就是 100%,看不出规律。

所以要先把年龄切成几段,0 到 10 岁一组,10 到 20 岁一组,依此类推。这个做法叫分箱。分得太粗看不出细节,分得太细每组人数太少、比例不可信,需要权衡。

这份数据里有 174 位乘客的年龄是空的。空值不能直接丢掉,也不能填 0,这里的处理办法是填成所有已知年龄的中位数。

选一个特征看

全船生还率38.4%
最高组减最低组—
当前特征的分组明细
分组人数生还率
六个差值填进报告第一题。另外想一想,头等舱的生还率为什么比三等舱高出这么多。
02

一个特征加一道门槛,就是一条决策边界

对应 第一节 · 第 07、08 页
本 节 练 的 知 识 点

课本第一节第 07、08 页讲的阈值和决策边界。第 08 页说,逻辑回归学出来的是一条线,线的一侧判一类,另一侧判另一类。本节用手工的办法画这条线:挑一个特征,定一道门槛,门槛一侧判生还,另一侧判未生还。这道门槛就是阈值,它划出来的分界就是决策边界。本节同时看清,只用准确率一个数字去评价分类结果是不够的。

规则的形式固定为一句话:满足条件的判为生还,其余判为未生还。你要做的是选一个特征、拖一道门槛,然后看这条规则在 891 人身上判对了多少。

门槛扫描
横轴是门槛所在的位置,纵轴是这条规则的准确率。圆点是你当前拖到的位置。虚线 61.6% 是把全部人都判未生还时的准确率,作为对照的底线。
规则判生还
规则判未生还
实际生还
—判对了
—漏判:本可生还却判成未生还
实际未生还
—虚报:实际未生还却判成生还
—判对了

上面这个四格表叫混淆矩阵。左上和右下是判对的两种情况,右上和左下是判错的两种情况。准确率就是这两个判对的格子加起来,除以 891。

两种错误的性质完全不同。漏判是本来能活的人被规则放弃了,虚报是本来活不了的人被规则算成能活。如果这条规则用来决定谁上救生艇,漏判对应的就是被放弃的那些人。

动 手 做

  1. 默认特征是性别。拖动右边那根判为生还的条件滑块,这根滑块就是阈值。观察左图圆点怎样移动,准确率怎样变。
  2. 点记下这一条,把当前这条规则存进下面的表格。
  3. 换成舱位、年龄、票价,每换一个特征都把门槛从头拖到尾,各记录一条最好的。
  4. 把门槛拖到最边上,让规则对所有人都判未生还,记下这时的准确率,填进报告第二题。
  5. 回头拖动性别那条规则,盯着四格表里漏判和虚报两个数字,看它们怎样此消彼长。

应 该 看 到

性别这个特征最好能到 78.7%。全部判未生还时准确率是 61.6%,这个数字看着不低,但这条规则一个生还者都没找出来。年龄这个特征,门槛怎么拖都超不过 61.6%。

这 说 明 什 么

第一,一道阈值就是一条决策边界。课本第 08 页画的那条虚线,在这里就是你拖出来的这道门槛。逻辑回归和支持向量机做的事,是让机器自动找到门槛的最佳位置,不用人一点点去拖。

第二,准确率高不等于模型有用。这份数据里本来就有六成人未能生还,所以一条什么都不做的规则也能拿到 61.6%。评价一个分类结果,还要看混淆矩阵里那四个格子。

第三,年龄这个特征在第 01 节看着有点用,这里却怎么调都不行。原因不在特征,而在规则的形式太简单:大于某个数这种单一门槛,抓不住年龄里的信息。第 04 节的决策树可以对同一个特征切好几刀,那时年龄就用得上了。

查全率与查准率,以及它们为什么不能同时最好

查全率=判对的生还者 ÷ 实际生还总人数,衡量该找出来的人找出来了多少。把门槛放宽,判生还的人变多,查全率上升。

查准率=判对的生还者 ÷ 规则判生还的总人数,衡量判出来的这批人里有多少是判对的。把门槛放宽,查准率下降。

两个数一升一降,无法同时取到最好。所以实际工作中首先要确定的是,在这个场景下漏掉一个的代价大,还是虚报一次的代价大。医院筛查宁可虚报也不能漏掉,垃圾邮件过滤宁可漏掉也不能虚报。

定一条规则

准确率—
判生还的人数—
查全率—
查准率—
试过的规则
规则准确率查全率
还没有记录
03

加一个特征就一定更好吗

对应 第二节 · 第 14 页
本 节 练 的 知 识 点

课本第二节第 14 页讲的线性不可分。上一节只用了一个特征,这一节用两个:先按性别分成两组,再按舱位把每组分成三份,一共六个格子,每个格子单独判生还还是未生还。按常理,特征多了成绩该变好。本节要看到的是,多一个特征并不一定带来提升,以及这件事的原因是什么。

下面六个格子,每个格子由你决定判生还还是判未生还,点一下就能翻面。格子上写着这一组有多少人、其中多少人生还。

动 手 做

  1. 点每格都取多数按钮。这是最合理的判法:哪一类人多就判哪一类。记下此时的准确率。
  2. 把这个准确率和右上角只看性别的 78.7% 作比较。
  3. 逐个点击六个格子翻面,试着把准确率调得更高。
  4. 找出那个无论判生还还是判未生还都会错一半的格子,把它填进报告第三题。
  5. 用右下角的按钮,对这一格再切一刀,三个选项都试一遍,记下哪一刀提升最多。

应 该 看 到

无论六个格子怎么翻,准确率最高只能到 78.7%,和上一节只看性别完全相同,一个百分点也没有增加。

逐个查看六个格子的生还率,会发现三等舱女性那一格是 72/144,正好一半。这一格判哪一类都会错一半。

对这一格再切一刀之后,准确率才真正往上走,三个选项的效果并不相同。

这 说 明 什 么

三等舱的女性一共 144 人,生还 72 人,正好一半。这一格无论判哪一类都会错 72 人。多加的舱位这个特征,没能把这一格里的人切开,所以整体成绩一点没提高。

课本第二节第 14 页说有些数据用直线分不开。这里遇到的是同一件事:性别加舱位这两个特征,画不出一条能把三等舱女性分开的界线。

由此得到一条判断标准:新特征有没有价值,要看它能不能切开原来切不开的那部分人,而不是看特征数量多不多。用第三个特征再切一刀之后,准确率才真正往上走。

为什么这一格特别难切

一个格子里两类人各占一半时最难判,课本第三节把这种状态叫作熵最大。这时无论判哪一类都会错一半,信息增益接近于零。

解决办法只有一个,就是找一个新特征,它在这 144 人内部能把生还的和未生还的区分开。右下角三个选项分别试了家人、年龄、票价,效果并不相同。

这一结果来自真实数据,不是人为构造的。第 04 节的决策树做的正是同一件事,只不过由它自动去找该切哪一刀。

当前成绩

六格规则准确率—
只看性别(上一节)78.7%
判对多少人—
六格能达到的上限—

对最难的那一格再切一刀

切开后左边—
切开后右边—
切完的总准确率—
比六格提高—
三刀逐个试过,提升最多的那一刀记入报告。另外想一想,另外两刀不如它的原因是什么。
04

决策树:让机器自己定门槛

对应 第三节 · 第 22 至 25 页
本 节 练 的 知 识 点

课本第三节第 22 至 24 页讲的熵与信息增益,以及第 25 页讲的过拟合。前三节的门槛都是你一个个手工定的。决策树做的是同一件事,区别在于它会自动算出每一刀的信息增益,挑增益最大的那一刀切下去,一层一层往下。本节看两件事:树是怎么长出来的,以及树长得太深为什么反而会变差。

先说清楚两个词,后面的图全靠它们。

训练集 从 891 人里拿出一部分交给模型,让它从中总结规律。这部分人模型是见过的。

测试集 剩下的人留着不给模型看,等它训练完再拿出来考它。这部分人模型没见过,用来模拟将来遇到的陌生乘客。

课本第一节第 02 页提过这两个词,这里第一次真正用上。判断一个模型好不好,看的是它在测试集上的成绩,而不是训练集。

这棵树
这是决策树长出来的样子,从上往下每一条横带是一层。带子的宽度表示这一格里有多少人,颜色越深表示这一格里生还的比例越高。格子上写着这一刀用的是哪个特征、门槛定在几。
深度 → 准确率
蓝线是这棵树在训练集上的准确率,也就是它学过的那批人。赭线是它在测试集上的准确率,也就是它没见过的那批人。竖虚线是你当前选的深度。

动 手 做

  1. 先看左图。最上面一条带子写的是什么特征?这就是决策树算出来信息增益最大、因而第一个拿来切的特征。把它和第 01 节你找出的最有分辨力的特征对照一下。
  2. 把树的深度滑块从 1 拖到 10,一边拖一边看左图的树多长出几层,同时看右图两条线各自怎么走。
  3. 找出赭线最高点在深度几,填进报告第四题。这个深度就是这棵树最合适的深度。
  4. 把深度拖到 10,记下面板上训练集准确率和测试集准确率相差多少个百分点。
  5. 点几次重新分一次,看赭线最高点的位置是否每次都一样。

应 该 看 到

左图最上面一层用的是性别,和第 01 节的结论一致。

右图的蓝线一路向上。赭线先上升,到某个深度之后掉头向下,两条线之间的缝隙越来越大。

这 说 明 什 么

第一,决策树自动选中了性别作为第一刀,说明信息增益这个指标算出来的结果,和你用眼睛看出来的一致。课本第 24 页那张表里性别增益最大,在真实数据上也是如此。

第二,蓝线一路向上的原因是:树越深,格子切得越细,最后每个格子里只剩几个人,模型把训练集里每个人的情况都记了下来,自然全部判对。

第三,赭线掉头向下就是课本第 25 页说的过拟合。树把训练集里那些纯属偶然的巧合也当成规律记住了,拿这些巧合去判断测试集里的乘客,一条也不成立,成绩反而回落。

所以树不是越深越好。该选的深度是赭线最高的那个,不是蓝线最高的那个。

决策树是怎么决定切哪一刀的

对每一个特征、每一个可能的门槛,树都试着切一刀,再算切完之后两边有多整齐。一格里全是生还者或全是未生还者就是最整齐,一半一半就是最不整齐。这个整齐程度就是课本第 22 页讲的熵。

树把所有可能的切法都试一遍,挑那个让两边加起来最整齐的。这正是你在第 03 节用眼睛做的事,只不过它一秒钟能试几万种。切完之后整齐了多少,就是课本第 23 页讲的信息增益。

叶子至少几人这个滑块是一道限制,作用是不许切出人数太少的格子。三个人的格子里两人生还,说明不了任何问题。把这个数从 1 拖到 20,看赭线怎么变。

训练设置

训练集准确率—
测试集准确率—
两者相差—
这棵树有几个叶子—
每次重新划分后的测试集成绩
第几次测试集准确率
点几次重新分一次
05

随机森林:多棵树一起投票

对应 第三节 · 延伸
本 节 练 的 知 识 点

课本第三节的延伸内容。上一节看到一个现象:同一批数据重新划分一次,树长出来就不一样,成绩也跟着跳。随机森林的应对办法是种很多棵不一样的树,让它们投票表决。本节要看的是,树的棵数增加到多少之后成绩不再上升。

每棵树训练时只随机拿到一部分乘客和一部分特征,所以每棵长得都不一样,判错的人也各不相同。最后把所有树的判断平均起来,超过一半就判生还。这里每棵树的深度固定为 6,训练集仍占 70%,和上一节保持一致。

树的棵数 → 测试集准确率
横轴是森林里有几棵树,纵轴是这片森林在测试集上的准确率。灰虚线是单独一棵树的成绩,用来作对照。注意这条线从第几棵开始基本走平。
这片森林怎么投票的
每一根竖条是一棵树对当前这位乘客的判断,越高表示这棵树越倾向判他生还。绿虚线是 0.5 这条分界,赭线是全部树的平均值,平均值落在哪一边就判哪一边。

动 手 做

  1. 把种几棵树从 1 慢慢拖到 60,每拖一段点一次种一片林,看左图曲线往右延长。
  2. 找出曲线从第几棵开始基本不再上升,填进报告第五题。
  3. 把棵数拖回 30,再把每棵树随机用几个特征从 1 拖到 6,每拖一次点一次种一片林,记下每个取值对应的准确率。
  4. 点换一位乘客看投票,看右图。数一数有多少棵树判生还、多少棵判未生还,再看平均值落在 0.5 的哪一边。

应 该 看 到

棵数从 1 涨到十几棵时,准确率从 七成出头一路涨到 八成以上。再往后曲线基本走平,加到 60 棵也没有明显提高。

默认设置下,森林约 81%,灰虚线那棵单树约 75%,相差六七个百分点。

特征数那一项:取 1 时只有七成出头,取 3 到 4 时最高,取 6 时反而回落到七成九左右。

右图里各棵树的判断并不一致,有的高有的低,但平均之后落在 0.5 的同一边。

这 说 明 什 么

单独一棵树不稳定,换一批数据就长成另一副样子,判错的位置也跟着变。多棵树各自判错的地方不一样,投票之后这些错误互相抵消,留下的是它们共同看到的那部分真规律。这就是森林比单棵树高出六七个百分点的原因。

曲线走平说明:继续加树已经没有新的错误可以抵消。模型不是越复杂越好,加到该加的地方就够了。这和上一节树不是越深越好是同一个道理。

每棵树为什么要用不一样的数据和特征

如果每棵树都拿到全部 891 人和全部六个特征,它们会长得一模一样,投票也就失去了意义。所以要人为制造差别。

第一种差别在数据上。种一棵树时,从 891 人中有放回地随机抽 891 次。有人被抽中好几次,有人一次也没抽中,平均每棵树只见到六成多的人。

第二种差别在特征上。每棵树只允许在随机挑出的几个特征里选。性别是最强的特征,如果每棵树都能用它,所有树的第一刀都会切在性别上。限制之后,有的树被迫先用舱位、先用年龄,于是长出不同的形状。

这个数取 1 时每棵树只能靠一个随机特征,判断依据太少。取 6 时每棵树都能挑到性别,所有树又长得太像,投票失去意义。所以最好的取值在中间,你试出来的应该是 3 或 4。工程上常用的经验值是特征总数开平方,六个特征开平方约为 2 到 3,和试出来的结果接近。

森林设置

森林的测试集准确率—
单棵树的测试集准确率—
当前这位乘客—
全林投票结果—
试过的森林
棵数特征数测试集准确率
还没有记录
06

实验报告

对应 全实验 · 数据汇总

本节目的汇总前六节的操作记录,整理成一份完整的实验报告。

前面五节的操作记录会自动汇总进报告。下列各题没有唯一答案,按实际观察到的现象和自己的分析作答。

一第 01 节中六个特征的最高组减最低组分别是多少。哪个特征最有分辨力,哪个几乎没有作用。
二第 02 节中,把规则调成对所有人都判未生还,准确率是多少。这个数字并不低,为什么说它没有意义。
三第 03 节中,六个格子的最好成绩与只看性别相同。是哪一格造成的。用第三个特征切开这一格之后,准确率变成多少。
四第 04 节中,随着树的深度增加,训练集那条线和测试集那条线各自如何变化。测试集准确率最高点出现在深度几。点几次重新分一次,这个答案是否变过。
五第 05 节中,森林的准确率从第几棵树开始基本不再上升。把每棵树随机用几个特征从 3 拖到 6,准确率如何变化,用自己的话解释原因。
总结学习总结
本实验先由你自己动手定规则,再把定规则的工作交给决策树。这两段中哪一步的结果与你事先的预想差别最大。如果有人告诉你他的模型准确率是 95%,你会追问哪几个问题才能判断这句话可不可信。此外还有哪些内容没有弄清楚。建议不少于两百字。
0 字
会打开打印窗口,选另存为 PDF 即可
人 工 智 能 导 论 上 机 实 验 报 告

谁能活下来:从手工定规则到决策树

第 3 章 机器学习基础 · 实验一
姓名—
学号—
班级—
完成日期—

一实验数据记录

样本与基准
—
单条规则试验
—
六格规则
—
单棵决策树
—
随机森林
—

二各特征的生还率差异

特征最高组最低组
未记录

三单条规则的成绩

规则准确率查全率查准率
未记录

四随机森林试验

树的棵数每棵随机用几个特征测试集准确率
未记录

五思考题

一、六个特征的分辨力
二、全部判未生还的准确率与它为何无意义
三、拖住六格规则的那一格与第三刀
四、深度与过拟合
五、特征随机性对森林的影响

六学习总结

指导教师签字  
成绩