单元三

第12课 量一量谁更像谁——特征与曼哈顿距离

任务场景:用尺子和坐标点理解距离=相似度
任务场景:用尺子和坐标点理解距离=相似度

一、任务目标

用数字特征算两点距离,距离越小越像。

二、知识点短列表

  • 特征:描述样本的数字,如 [运动分, 阅读分]。
  • 距离小通常表示更相似(本课约定)。
  • 曼哈顿距离:各维 「abs」 差之和。
  • 点用列表 「[x, y]」;多维同理 zip 对齐。
  • 特征选不同,相似关系可能不同。
  • 两向量维数必须相同,否则 zip 只会落到较短的那一段,距离会少算。
  • 「abs」 保证差为负时仍按“格子数”累加,不会正负抵消。

三、机器学习在说什么

无监督常靠“相似”工作,而相似必须可计算。特征把卡片、同学、词语变成向量;距离把向量变成一个数。没有特征,算法无法比较。

曼哈顿距离是众多距离之一,优点是好算、好讲。欧氏距离以后会遇到,但小学先掌握“差的绝对值相加”即可。

警告:特征若含偏见(只采某一类同学),距离也会不公。选特征时要问:这个数真的与任务有关吗?无关特征会制造假相似:两个人鞋号相近,不等于兴趣相近。选特征前先写一句话:“我用这个数,是为了比较……”。

曼哈顿距离的生活比喻:在只许横平竖直走路的校园里,从 A 到 B 要走的格子数。差一维加一维,比斜线距离更好口算。公式写进笔记:对每一维算绝对值差,再全部加起来——维数变多时,仍然同一套「计数循环」积木思路。

本课为下一课“近中心归堆”准备尺子:没有距离,就没有“更近”。特征与距离是无监督的两条腿,缺一不可。

四、相关积木怎么用

  • 「遍历/计数循环」:按维(或按项)重复处理。 逐维对齐。
  • 「运算」 + 绝对值:累加每一维的差。 累加绝对值差。
  • 迷你例子:函数「manhattan」 → 7。

走查:输入 函数「manhattan」 → 输出 7,因为 |0-3|+|0-4|=3+4。输入 函数「manhattan」 → 输出 3,因为 |1-2|+|2-4|=1+2。

生活格子图:只许横走竖走时,从学校到家的格子数就是曼哈顿距离。斜线捷径(欧氏)本课不算。把比喻与公式 |Δx|+|Δy| 写在同一行笔记。

检查题锚点:manhattan([0,0],[3,4]) 必须为 7。先口算 3+4,再点运行;口算错禁止点检查碰运气。

再练:(1,2)到(2,4)得3;三维[1,2,3]与[2,2,5]得3。两道加练写进笔记,特征课才算扎实。

偏见提醒:特征若只采某一类同学,距离会系统性偏向——选特征前先问“与任务有关吗”。

想一想:函数「manhattan」 三维时应返回几?先手算再写进笔记。

特征说明书必填:特征 1 名称与含义;特征 2 名称与含义;单位是什么;为何与任务有关。缺说明书的距离数字,科学课上无效。算完 (0,0)-(3,4)=7 与三维和=3 后,再讨论:若只比鞋号,原先“更像”的两人是否仍更像。

约定距离小更相似;换特征远近可翻转,结论必须写“在××特征下距离为×”。三维验算:[1,2,3] 与 [2,2,5] 差 1、0、2 和为 3,证明 zip 不限于二维。

要点串讲:特征把样本变成数字;距离量化相似;曼哈顿=各维绝对值差之和;特征一换,远近可能变;偏见特征会伤害公平。本课过关标准:能口算 manhattan([0,0],[3,4])=7,并举出换特征导致结论变化的例子。加练:三维特征 [1,2,3] 与 [2,2,5] 手算曼哈顿距离,确认 zip 多维仍然成立。

五、操作步骤

步骤1
选定特征每个样本写成同样长度的数字列表。
步骤2
写 manhattanzip 后累加 abs 差。
步骤3
算几对点比较哪一对距离更小。
步骤4
反思特征换一个特征维度,讨论结果会否变化。

六、解题思路

任务:用数字特征算两点距离,距离越小越像。 先想清楚:输入是什么、处理后得到什么、屏幕上应出现什么。

本课主要用到:屏幕输出。

  1. 1明确任务「用数字特征算两点距离,距离越小越像。」:运行后你希望看到什么结果(文字、图形或计算结果)。
  2. 2用「打印」积木把结果说出来,确认屏幕上出现预期内容。
  3. 3找出重复动作,用「计数循环/遍历」积木写成循环,少抄几遍。
  4. 4把可复用的一段动作做成函数,主程序里调用它。
  5. 5对照参考积木(或代码)跑通后,只改一个参数,观察结果如何变化。

流程示意(可对照左侧文字)

任务:用数字特征算两…用「打印」积木把结果说出来,…找出重复动作,用循环积…把可复用的一段动作做成函数…对照参考积木(或代码)跑通后,只改一…

七、图形块功能讲解

本课用到的 Mixly 图形块均已在前面的课讲过。请直接对照编程练习搭积木;若有遗忘,回到该积木首次出现的课页复习。

即时验算:(0,0) 到 (3,4) 距离 7;(1,2) 到 (2,4) 距离 3。换特征为鞋号后重算,结论可能变——在笔记写清所用特征名,否则相似判断无效。无关特征会制造假相似。报告必须写特征名。格子图帮助理解只能横竖走。

abs 作用:差为负时仍按格子数加,避免正负抵消成“假近”。维数不同时 zip 会截断——两向量长度必须先相等。把这两条写成特征课的军规,贴在 manhattan 函数上方。

八、课堂练习

先完成两道正误判断,再做其余题目;选出后点「检查」。

  1. 判断:不问特征,凭感觉说“更像”;或不同样本用不同长度的特征却强行 zip。

  2. 判断:统一特征含义与维数;用距离量化相似;记录特征从何而来。

  3. 判断:特征选得不同,归堆结果可能不同。

  4. 判断:距离越小,在本课约定下通常越相似。

  5. 判断:曼哈顿距离是各维差的绝对值相加。

  6. 判断:无监督完全不需要任何数字特征。

  7. 选择:按相似度无标签分堆 →

九、知识点讲解

余弦相似度看两个向量夹角:越接近 1,方向越像,常表示越相关。只比长短不够,还要看「朝哪边」;高相似度也不等于一定是同义词。

先弄清本课输入与输出,再进编程练习对照现象。

十、编程练习

用下拉列表切换题目;下方 Mixly 默认显示图形化积木。请在 Mixly 工具栏点「运行」;「检查」读取 Mixly 代码自动判题。

参考代码(对照抄写到下方 Mixly)
def manhattan(a, b):
    s = 0
    for i in range(len(a)):
        s = s + abs(a[i] - b[i])
    return s

print(manhattan([1, 2], [2, 4]))

十一、本节小结

你现在能实现 manhattan,用各维绝对值差之和度量两点远近,并说明换特征可能改变谁更相似;二维 7 与三维 3 都要会手算;特征说明书两维含义写清;abs 防正负抵消;维数必须一致。nearer 归近中心。