鲷鱼 vs 胡瓜鱼——变量和特征有什么不同?

49 条鱼以长度和重量这两个有名字的变量进入计算机,而一张照片则以 784 个没有名字的像素进入计算机。首先把两种数据并排放在一起,看看“用一个变量找规则”的做法为什么在鱼身上行得通,在照片上却会选中毫不相干的格子。接着在鱼这边确认分类的基本工具(规则、感知机·SVM 的直线、k-NN 的距离与标准化),再进入为什么照片需要寻找模式的特征。

2 对 784鱼的变量数 对 28 × 28 照片的像素数
130.95g决策树找到的重量阈值
92.5 → 81.3%照片像素规则:训练用 → 新照片
1958 · 1995感知机与 SVM 论文 [R3]
86 对 98%手写 3 vs 8:单个像素规则 对 64 格加权和
2 段可在 Colab 中直接运行的代码
1问题

表格里的数字和照片里的数字——有什么不同?

49 条鱼以长度·重量两个数字进入计算机,一张照片则以几千个像素数字进入计算机。两者都是数字,为什么照片分类要难得多?

1两种鱼和两个数字
鲷鱼和胡瓜鱼的外形以相同比例画出的身体高而圆的鲷鱼和细长的胡瓜鱼。鲷鱼长约 30cm,胡瓜鱼长约 12cm 鲷鱼 · 约 30cm · 约 500g 胡瓜鱼 · 约 12cm · 约 10g 以相同刻度绘制(大致):长度相差 2.5 倍,重量相差约 50 倍

我们要把从市场运来的 49 条鱼(鲷鱼 35 条,胡瓜鱼 14 条)分开。能交给计算机的,是用尺子量出的长度和用秤称出的重量。

条数长度范围重量范围
鲷鱼3525.4 ~ 41.0 cm242 ~ 1,000 g
胡瓜鱼149.8 ~ 15.0 cm6.7 ~ 19.9 g

用鱼类数据进行的机器学习(决策树、k-NN、回归、逻辑回归、交叉验证等)在《用 Fish Market Data 轻松学机器学习》中有详细讲解。本篇只讲其中“进入图像分类所需要的部分”。

2一张照片有多少个数字?

如果用照片来做同样的事,会怎么样呢?即使把吉娃娃和松饼的照片缩小到横竖各 28 格的灰度图,一张也有 784 个数字。如果是彩色 224 × 224,就是 150,528 个。

比数字多更大的区别在于:“长度 25.4cm”本身就有意义,而“第 412 格的亮度 187”单独看却没有任何意义。本篇先展示这个区别,也就是变量(有名字和含义的格子)与特征(多个格子共同构成的模式)的区别,然后在鱼这边确认分类的基本工具(规则、直线、距离),最后讲为什么照片需要别的方法。

给初学者的讲解

鱼的数据是实际测量值(从 Kaggle Fish Market 数据集中只挑出了鲷鱼和胡瓜鱼 [R1])。鲷鱼身体高而大,胡瓜鱼细而小,这种差异直接体现在长度和重量这两个数字上。所以鱼这边是简单的分类,把它和照片并排放在一起,“是什么让照片分类变难”就一目了然了。

2变量 vs 特征

变量 vs 特征——有名字的格子和没有名字的格子

先把结论并排来看。鱼用一个变量就能写出一行规则,而照片用同样的方法却会选中毫不相干的格子。照片中产生意义的地方不是单个格子,而是多个格子的排列,也就是特征。

1变量与特征 · 按同一标准比较
变量 (variable)特征 (feature)
含义有名字和单位的测量值把多个值共同构成的模式概括成数字
例子长度 25.4cm,重量 242g“三个暗点,呈三角形排列”“上方有尖尖的边缘”
由谁制作由人决定测量什么并进行测量由滤波器·神经网络从原始数据(像素)中计算或学习得到
单个格子的含义有原始数据的单个格子(像素)里没有,含义在排列中
适合的方法规则(决策树)、线性模型、k-NN像卷积神经网络(CNN)这样寻找模式的模型
可解释性容易:“因为重量超过 131g”困难:需要另外查看训练出的滤波器在看什么

在机器学习中,两者有时都被称为“特征”。本系列为了区分清楚,把人命名的测量值称为变量,把从原始数据的排列中找出的模式称为特征。

2并排实践 · 用变量找规则 vs 用特征找模式

左边(手机上是上方)是鱼,右边(下方)是照片。先对两种数据都寻找“某个变量 > 阈值就归为这一类”的规则。鱼到这一步就结束了,但照片的规则会选中毫不相干的格子。所以照片要看用滤波器生成的特征图中的模式。规则和模式在“训练用”的 80 张照片中寻找,再用没参与训练的 80 张“新照片”来验证。

鱼 · 变量 → 规则

每个变量都有名字和含义,一行人能读懂的规则就能解决。

变量
照片 · 像素 → 模式

① 用同样的方法,在全部 784 格中寻找“某个像素 > 阈值”的规则。

点击按钮,就会找出判断最准的像素规则。

② 用滤波器生成特征图,再在整张图上概括模式。

示例
照片
暗区图
上部边缘图

点和鱼的颜色:● 鲷鱼·吉娃娃   ● 胡瓜鱼·松饼。右边 ② 的两个滤波器(找暗区、找边缘)是人为这次比较挑选的。CNN 会从数据中学习几十到几百个这样的滤波器并加以组合(4-2·4-3)。“新照片”是把同样的 12 张图以不同于训练用照片的方式平移并改变亮度制作的,所以比用完全不同的照片来测试要容易。在真实照片中,只靠两个模式很难达到 100%。

3解读

鱼数据的格子是有名字和含义的变量。“长度”这一个变量就包含了鲷鱼和胡瓜鱼的差别,所以一行“长度 > 阈值就是鲷鱼”的规则就能把 49 条鱼全部判对。这是人能读懂、能解释的规则,也是决策树这类基于规则的模型擅长的领域。这也多亏了人很好地挑选了“测量什么”。

照片的格子(像素)形式上也是变量,但既没有名字也没有含义。用同样的方法找规则,计算机会在 784 格中挑出碰巧判得准的格子,通常是边缘的背景格子,在没见过的照片上表现就会下降。照片中产生意义的地方不是单个格子,而是多个格子共同构成的模式(有几个暗点、在哪里、呈什么形状)。所以用滤波器生成特征图,再在整张图上概括模式,在新照片上也能判得准。

总结一下,两者都是“根据特征来判断”,这一点相同。不同的是,特征是由人命名准备好的(变量 → 规则),还是必须从多个格子的排列中找出来(像素 → 模式)。表格数据也可以使用逻辑回归这样不基于规则的模型,照片特征也可以套用规则,所以这个对照应理解为“哪种数据适合什么方法”的大致倾向。

那么,把 784 个格子全部用上就行了吗?格子越多,可以划分的方法也越多,但大部分格子没有意义,问题并不会消失。4-2 会介绍寻找模式的滤波器,4-3 会从“用平面划分”的角度来看这个问题。

给初学者的讲解

请在左边的鱼中点击“自动找规则”,在右边的照片中点击“自动找像素规则”。鱼的规则能把 49 条全部判对,而且人能读懂。照片的规则则从 784 格中选中照片角落的背景格子,在没见过的照片上准确率下降。只有像右边 ② 那样用滤波器生成特征图并概括模式,才能把照片分开。这个对照就是整个系列的出发点。

3特征·目标值

表格的结构——样本、特征、目标值

一行是一个样本,数字格是特征,答案格是目标值。鱼的表和照片的表只是格子的数量和单个格子的含义不同。

1定义

分类模型学习的数据总是同样形状的表格。一行就是一个样本,每一行都有若干个叫作特征(feature)的数字格和一个目标值(标签,答案)格。如果是鱼的分类,一行就是一条鱼,特征是长度和重量 2 格,目标值是“鲷鱼”或“胡瓜鱼”。照片分类也一样:一行是一张照片,特征是把像素数字(4-2 详细讲解)排成一行,目标值是“吉娃娃”或“松饼”。

鱼的表特征 2 格(长度、重量)
照片的表(灰度 28 × 28)特征 784 格
目标值都是 0 或 1,一格

简单来说就像体检表。一个人占一行,身高·体重·血压是特征格,最后的“是否需要复查”是目标值格。鱼的表是只有 2 个项目的简短体检表,照片的表是有 784 个项目的超长体检表。区别在于每个项目是否有名字和含义。“长度 25.4cm”本身就有意义,而“第 412 格的亮度 187”单独看没有任何意义。

2公式
D = { (x⁽¹⁾, y⁽¹⁾), (x⁽²⁾, y⁽²⁾), …, (x⁽ⁿ⁾, y⁽ⁿ⁾) },   x⁽ⁱ⁾ ∈ ℝᵈ,   y⁽ⁱ⁾ ∈ {0, 1}
鱼:x = (长度, 重量),  d = 2   |   照片:x = (X[1,1], X[1,2], …, X[28,28]),  d = 784把照片的矩阵从第一行开始依次连接成一行(展平,flatten)。彩色 56 × 56 时 d = 9,408,彩色 224 × 224 时 d = 150,528。
n
样本数(表格的行数)。鱼 49 条,本节的照片 80 张
d
特征数(表格的列数)。输入向量的维度
x⁽ⁱ⁾
第 i 个样本的特征向量
y⁽ⁱ⁾
第 i 个样本的目标值。规定鲷鱼·吉娃娃 = 1,胡瓜鱼·松饼 = 0
逐块读懂公式
  1. (x, y) 对把题目和答案放在一起。只有附上答案,模型才能衡量错了多少并加以修正(监督学习)。给数据附上答案的工作就是标注。
  2. ℝᵈ由 d 个特征构成的 d 维空间。一个样本就是这个空间中的一个点。鱼是平面上的点,照片是 784 维空间中的点。
  3. {0, 1}把名称标签换成数字。哪一类记为 1 只是一种约定,对结果没有影响。
用数字算一遍一条鲷鱼:x = (25.4, 242.0), y = 1  ·  一条胡瓜鱼:x = (9.8, 6.7), y = 0
一张吉娃娃照片:x = (x₁, x₂, …, x₇₈₄) = (133, 147, 148, …) 共 784 个,y = 1
表格的形状相同,只是格子数分别为 2 个和 784 个。
3把两种数据并排列成表格

左边是 49 条鱼中的 6 条,右边是 80 张吉娃娃·松饼照片中的 6 张。照片缩小成 28 × 28 灰度图后展平成一行。点击右表中的某一行,下方会显示那张照片是如何变成一行的。

鱼数据:Kaggle Fish Market 数据集中鲷鱼(Bream)35 条·胡瓜鱼(Smelt)14 条的长度·重量。直接使用了 Haesun Park《自学机器学习+深度学习》(혼자 공부하는 머신러닝+딥러닝)示例代码(MIT 许可证)中的数值。照片数据:把 4-4 篇图像中的 12 格(吉娃娃 6,松饼 6)缩小到 28 × 28,每张将位置平移 ±4 格、亮度改为 70~130%,各生成 40 张。

✓小测验

Q1. 在照片分类的表格中,相当于目标值(标签)的是?

Q2. 把彩色 32 × 32 的照片展平成一行,特征有多少格?

Q3. 鱼用一个变量就能得出规则,而照片用单个像素得出的规则在新照片上却不太准,最主要的原因是?

给初学者的讲解

目标值(target)是需要猜中的答案,由人给数据附上答案的工作就是标注。点击照片表格中的某一行,可以看到 28 × 28 的矩阵从第一行开始依次连接,变成 784 格的一行(展平)。形式上和鱼的表一样了,但每个格子的名字和含义都消失了。

4规则与直线

鱼只需一条规则·一条直线就够了——感知机与 SVM

变量有含义,边界就简单。来看看每次出错就挪动直线的感知机,和开出最宽道路的 SVM,在同样的鱼上分别画出什么样的线。

1动态实践 · 感知机修正直线的过程

一个点就是一条鱼。紫色线是当前的边界,线的右上方是“鲷鱼”。感知机一条一条地看鱼,只在判错时才挪动直线。红圈是刚刚判错的鱼,白圈是判对的鱼。

2公式 · 感知机的学习规则
预测:  ŷ = 1  if  w₁z₁ + w₂z₂ + b > 0
仅在判错时:  w ← w + η · t · z,   b ← b + η · t  (t = +1 鲷鱼,−1 胡瓜鱼)η(eta)是每次挪动的幅度(学习率)。本实践中 η = 0.5。z 是标准化后的长度·重量(章节 6)。
w₁, w₂
长度·重量的权重。决定直线的斜率
b
偏置。决定直线的位置
t
答案的符号。明明是鲷鱼却判成胡瓜鱼时为 +1,反之为 −1
为什么这样修正就行
  1. w + η·t·z如果漏判了鲷鱼(t = +1),就把 w 朝那条鱼的方向 z 稍微转一点。这样下次再看到同一条鱼时,w·z 变大,就会越过到“鲷鱼”一侧。
  2. 停止的时机一整轮(49 条)中一次都没判错就停止。已经证明,只要两组能被一条直线分开,就一定会在某个时刻停止(感知机收敛定理)。
3动手实践 · 开出最宽道路的边界

能分开两组的直线有无数条。SVM 从中选出两组之间空白道路(间隔)最宽的那条直线。紫色实线是边界,虚线是道路两侧的边沿。勾选后可以和感知机停下时的直线(绿色虚线)进行比较。

4解读 · 感知机与 SVM 的关系

感知机和线性 SVM 的边界形状相同(一条直线,w·z + b = 0)。感知机全部判对就停在那里,所以可能得到紧贴某一组的直线;SVM 则选择离两组都最远的直线(间隔最大)。在代码 1 中,SVM 的间隔宽度以标准化单位计为 1.233,决定边界的支持向量是最大的胡瓜鱼(15.0cm, 19.9g)和最小的鲷鱼(25.4cm, 242g)这两条。

也请记住先后顺序:感知机(1958)在前,SVM(1990 年代)在后 [R3] [R4]。两者都是在原始坐标上画一条直线的方法,对格子有含义的鱼的表来说足够,但在像素坐标上就行不通了(4-3)。

用鱼类数据进行的机器学习(决策树、k-NN、回归、逻辑回归、交叉验证等)在《用 Fish Market Data 轻松学机器学习》中有详细讲解。本篇只讲其中“进入图像分类所需要的部分”。

给初学者的讲解

感知机把长度和重量分别乘以权重再相加,和大于 0 就回答“鲷鱼”。训练就是不断重复“把直线朝判错的鱼那边稍微挪一点”。在 SVM 图中勾选复选框,可以把感知机停下时的直线和 SVM 的直线叠在一起看。这个加权和(w·x + b)会在 4-2 的卷积和 4-3 的神经网络中原样再次出现。

5标准化

单位不同,距离也会算错——k-NN 与标准化

新来的鱼(25cm, 150g)是鲷鱼吗?向最近的邻居询问的方法,答案会随着“近”的衡量方式而颠倒。

1动手实践 · 新来的鱼是鲷鱼还是胡瓜鱼

三角形是新捕到的鱼(初始值:长度 25cm,重量 150g)。k近邻用最近的 5 条鱼的答案进行多数表决。切换“原始单位”和“标准化”,看看邻居变成了谁。

衡量距离的单位
2公式 · 标准化
z = (x − 平均值) / 标准差
长度:平均值 27.06cm,标准差 10.14cm  |  重量:平均值 444.5g,标准差 324.8g

用原始单位衡量距离时,长度相差 10cm 和重量相差 10g 被当作同样大小。可是重量动辄相差几百 g,所以距离几乎完全由重量决定。于是长度 25cm 的新鱼,也会因为重量 150g 而被算作和胡瓜鱼们(20g 以下)“很近”,5 个邻居中有 4 个成了胡瓜鱼。标准化之后,两个特征用的是同一把尺子,5 个邻居全都变成了鲷鱼(与代码 1 的结果相同)。

规则(章节 3)只看一个变量,所以不受单位影响。像感知机·SVM·k-NN 这样混合多个特征来计算距离或加权和的方法,就需要统一单位。照片的所有格子都是 0~255,所以这个问题不大,但会出现别的问题(章节 7)。

给初学者的讲解

k近邻(k-NN)用离新样本最近的 k 个样本的答案进行多数表决 [R5]。方法简单,但一切都取决于“距离”,所以如果重量(g)这类数值大的变量独占了距离,就会选出不相干的邻居。照片的像素都在 0~255 之间,单位问题不大,但存在一个更大的问题:“同一位置数字的差”反映不了含义(4-2 章节 3)。

6像素是变量?

单个像素能成为变量吗——引出下一篇

把照片的格子当作鱼的变量来用,能走多远?在形状不同的一组和形状相似的一组上,结果截然不同。

1Colab 代码 2 的结果 · 手写数字的像素规则
数字组合规则选中的像素单个像素规则(测试)64 格加权和(测试)
0 对 1(第 5 行,第 5 列)98.3%100.0%
3 对 8(第 6 行,第 4 列)86.0%98.3%
4 对 9(第 5 行,第 2 列)93.9%98.3%

把 8 × 8 的手写数字看作 64 格的表格,套用在鱼身上用过的“某个变量 > 阈值”规则。形状截然不同的 0 和 1,只用中间的一个像素就几乎能全部分开(中间是空的就是 0)。但在3 和 8 这样形状相似的一组上,单个像素规则只有 86.0%,要把 64 格全部加权求和才能达到 98.3%。

形状越相似,越要看的不是单个格子,而是多个格子共同构成的形状。手写数字是位置对得很整齐的小图片,所以只用加权和就能做得不错;但在位置·光照·背景各不相同的真实照片中,加权和也会行不通(4-2 章节 3,4-3 章节 2)。所以照片分类需要一个寻找模式的步骤,也就是特征提取。

给初学者的讲解

总结一下,在变量有含义的表格数据中,规则·直线·距离这样简单的工具就足够了。在照片中,单个格子没有意义,所以需要寻找相邻格子花纹的滤波器,以及把这些花纹叠加成形状的层。4-2 讲照片变成数字矩阵的过程和滤波器,4-3 讲为什么要叠加层,4-4 讲即便如此仍然存在的难题。

Colab 代码——亲自运行本页内容

两段代码都只使用 Colab 默认安装的库和内置数据。点击“下载笔记本(.ipynb)”后,在 Colab 中通过文件 → 上传笔记本打开,或者复制后粘贴到新笔记本的单元格中。

代码 1 · 用表格数据比较规则·感知机·SVM·k-NN对应章节 4·5 · numpy, scikit-learn · CPU 不到 1 秒

计算决策树的一个分支、标准化坐标下的感知机与线性 SVM,以及新鱼(25cm, 150g)在标准化前后的 k-NN 预测。想换成自己的数据,就把最上面的四个列表换成自己的测量值。

运行结果(2026-10-04 运行,numpy 2.4 · scikit-learn 1.8 · CPU)。计算中几乎没有随机数,任何时候运行结果都相同。
代码 2 · 像素也是变量吗——用手写数字比较规则与加权和对应章节 6 · numpy, scikit-learn(内置数据) · CPU 几秒

把 8 × 8 的手写数字看作 64 格的表格,在 0 对 1、3 对 8、4 对 9 上比较单个像素规则和 64 格加权和(逻辑回归)。想换成自己的数据,就修改 compare(a, b) 中的数字组合。

运行结果(2026-10-04 运行,scikit-learn 1.8 · CPU)。改变数据划分的 random_state,数字会略有不同。

AI 应用提示词——以这段代码为起点

这是粘贴到 ChatGPT、Qwen、Claude 等 AI 助手中的提示词。点击“复制”,所选代码会一起附在提示词后面。把〔 〕里的内容换成你自己的情况即可。

一起附上的代码

AI 的回答只是起点。它推荐的论文·数值·库函数一定要对照原文和官方文档核实。如果在竞赛·论文中得到了 AI 的帮助,要按照主办方和期刊的规定说明使用的事实和范围。

术语表

与正文中黄色虚线下划线对应的词典。整个系列使用相同的写法。点击章节名可以跳到首次出现的位置。

类比合集——以及类比不成立的地方

类比是理解的第一步,但也可能成为误解的种子。人眼·人脑类比标注了对应程度。直接 有依据表明确实在做同样的事 · 部分 只有部分性质相似 · 无 尚未发现对应的东西

概念日常类比人眼·人脑类比类比不成立的地方
决策树二十个问题游戏无真正的决策树是从数据中计算并选出问题的阈值,而不是像人一样想出“看起来合理的问题”
感知机只重看做错题目的错题本部分 源于神经细胞汇集输入、超过阈值就发出信号的想法真实的神经细胞处理随时间变化的电信号,学习规则也复杂得多
SVM 间隔在两方之间开出最宽的道路无道路宽度是用“标准化后的单位”衡量的。换了单位,最宽道路的位置也会改变
k-NN刚搬进新小区,去问离得最近的五户邻居无衡量邻居不是看“相隔几米”,而是看“差几 g、差几 cm”,所以如果不统一尺子,就会把远处的人家误当成近邻
标准化把身高和体重换算成“在班里大约排第几”再比较无名次只保留顺序,而标准化保留的是离平均值有多远(间距)

作者简介与参考文献

E-1 作者简介 · E-2 学术参考文献 · E-3 图片·数据参考资料

E-1 作者简介

Sangsun Ahn(M-Robo Inc. 代表)

曾任职于韩国电气安全公社(Korea Electrical Safety Corporation)、《每日经济新闻》(Maeil Business Newspaper),现创办每日经济的外部风险企业 M-Robo Inc. 并担任代表。M-Robo Inc. 是以媒体公司内部创业起步的媒体风险企业,曾为《国民日报》(Kukmin Ilbo)提供机器人记者(StockBot)服务,并在韩国互联网振兴院(KISA)、韩国言论振兴财团(Korea Press Foundation)、韩国广播通信电波振兴院(KCA)等机构开展了多个项目。此后一直运营自有的 AI 新闻报纸 Money-Robo。担任代表期间,曾获亚洲开放数据黑客松冠军,并因在数据创业领域的贡献两次获得韩国行政安全部长官奖;是人工智能和区块链领域 5 项专利的发明人及注册人。著有《AI 犯罪与自我防卫》(AI범죄와 자기방어),并为韩国技术教育大学(KOREATECH)在线终身教育院开发了金融科技、统计学、人工智能领域的网络课程内容。最高学位为经济学博士(东国大学,微观数理经济学)。目前在国民大学、湖西大学等多所大学讲授数据与人工智能相关课程。详细简历

课程

  • Sangsun Ahn (2025).《面向商业的数据科学》(비즈니스를 위한 데이터 과학)讲义。韩国开放网络大学(Open Cyber University of Korea)人工智能融合学科。
  • Sangsun Ahn (2025). [K-Digital] 人工智能自然语言处理。STEP(智能职业培训平台),韩国技术教育大学(KOREATECH)在线终身教育院。
  • Sangsun Ahn (2024). [K-Digital] 金融科技数据分析基础。STEP(智能职业培训平台),韩国技术教育大学(KOREATECH)在线终身教育院。

STEP 课程链接:link.step.or.kr/1qyVoJ · link.step.or.kr/M9na9N · link.step.or.kr/brqEyc
如因网站改版无法正常访问,请访问 www.step.or.kr。

论文与发表

  • Sangsun Ahn (2025). 利用国民老年保障面板数据的家庭支出预测模型研究:基于人工智能模型的方法。《未来社会》(미래사회),16(2)。原文
  • Sangsun Ahn (2025). 利用国民老年保障面板数据的家庭支出预测模型研究:人工智能方法。国民老年保障面板学术会议报告资料(2025.05.13),国民年金公团国民年金研究院(National Pension Service, National Pension Research Institute)。报告资料
  • Sangsun Ahn (2025). 基于 SNS 文本的疑似毒品交易检测算法研究:以模式与语境分析为中心。《未来社会》(미래사회),16(1)。原文
  • Sangsun Ahn (2024). 面向金融领域异常检测模型安全的基于统计的对抗性数据应对方案:实证分析与模拟结果。《未来社会》(미래사회),15(3)。原文
  • Sangsun Ahn (2024). 利用人工智能、基于虚拟角色特征的 SNS 帖子检测解决方案。2024 Summer Newmedia Party 海报发表(2024.06.19),首尔媒体研究生院大学(Seoul Media Institute of Technology)。
  • Sangsun Ahn (2024). 利用工伤面板数据的机器学习模型。第 10 届工伤保险面板学术会议海报发表(2024.05.17),勤劳福祉公团勤劳福祉研究院(COMWEL Labor Welfare Research Institute)。
  • Sangsun Ahn (2024). 虚拟资产时间序列数据的分析与预测:时间序列模型与人工智能模型的比较及改进建议。《未来社会》(미래사회),15(1)。原文

E-2 学术参考文献

  1. [R1] Haesun Park (2020).《自学机器学习+深度学习》(혼자 공부하는 머신러닝+딥러닝)。Hanbit Media。示例代码 rickiepark/hg-mldl(MIT 许可证)。原始数据:Kaggle Fish Market 数据集——章节 1·2·6,代码 1
  2. [R2] Breiman, L., Friedman, J. H., Olshen, R. A., & Stone, C. J. (1984). Classification and Regression Trees. Wadsworth.——章节 3
  3. [R3] Rosenblatt, F. (1958). The perceptron: A probabilistic model for information storage and organization in the brain. Psychological Review, 65(6), 386–408.——章节 4
  4. [R4] Cortes, C., & Vapnik, V. (1995). Support-vector networks. Machine Learning, 20, 273–297.——章节 5
  5. [R5] Cover, T., & Hart, P. (1967). Nearest neighbor pattern classification. IEEE Transactions on Information Theory, 13(1), 21–27.——章节 6
  6. [R6] Alpaydin, E., & Kaynak, C. (1998). Optical recognition of handwritten digits [Dataset]. UCI Machine Learning Repository.(scikit-learn load_digits 的原始数据)——代码 2

E-3 图片·数据参考资料

  • 章节 1 中的鱼的图是为了说明而绘制的示意图(比例为大致比例)
  • 章节 2·4·5 中的鱼的点是 [R1] 中的实际测量值。感知机的初始直线(w = [−1, 0.3], b = 0.6)和看鱼的顺序是为了说明而设定的
  • 章节 2·3 中的 80 张照片(+ 80 张新照片)是把 4-4 篇图像中的 12 格缩小到 28 × 28,并改变位置·亮度扩充而成的。章节 2 ② 中的两个滤波器是人为挑选的

给教师的 TIP

这是给讲师、在职培训(OJT)负责人和辅导老师的运营指南。时间为预估值,请根据实际课堂进行调整。

对象初学机器学习的大学生·职场人士。会用 Excel 表格,但第一次接触模型的人
预备知识平均值和标准差、坐标平面上的直线方程。最好读过 3-2 的感知机
学习目标① 用鱼和照片的例子说明变量与特征的区别 ② 用样本·特征·目标值描述数据,并说出规则·感知机·SVM·k-NN 确定边界的方式有何不同 ③ 说出需要标准化的情况,以及不能把单个像素当作变量来用的原因
预计时间阅读 35~45 分钟 · 实践演示 20 分钟 · Colab 实践 25 分钟(代码 1 15 分钟,代码 2 10 分钟)

三种运营方案

讲授式 50 分钟

以概念为中心

导入 5 分钟(章节 1)→ 章节 2 变量 vs 特征 15 分钟 → 章节 3 表格结构 5 分钟 → 章节 4 感知机 10 分钟 → 章节 5 k-NN 5 分钟 → 章节 6 承上启下 5 分钟 → 小测验 5 分钟。

在职培训(OJT)90 分钟

以业务应用为中心

把章节 1·2 改画成本公司的数据表格 20 分钟 → 比较章节 3 的规则和章节 5 的 SVM 20 分钟 → 章节 6 找出标准化的陷阱(检查本公司数据的单位)20 分钟 → 用本公司数据运行代码 1 30 分钟。

一对一辅导

按水平安排进度

入门者只学章节 1·2·3·6。中级者亲手算一遍章节 4 的更新公式,并解释代码 1 中 SVM 的支持向量为什么是两条鱼。

各章节运营要点

章节停下来提的问题操作技巧
1 问题“长度 25.4cm 和第 412 格的 187 有什么区别?”把鱼的表格和照片的数字个数并排指出来
2 变量 vs 特征“像素规则选中的格子和吉娃娃有关系吗?”依次点击两边的“自动找”按钮
3 特征·目标值“这张表里的答案格在哪里?”点击照片行,查看展平后的一行
4 规则与直线“看到判对的鱼时为什么不挪动直线?”用“一条一条看”停在红圈(判错)处,并在 SVM 图上叠加感知机的直线
5 标准化“新鱼的邻居为什么是胡瓜鱼?”从原始单位切换到标准化,再拖动重量滑块
6 像素是变量?“0 和 1 可以,3 和 8 为什么不行?”比较代码 2 结果表中的两列

常见误解 Top 5

误解正确解释要展示的画面
因为 SVM 不行,所以才出现了感知机顺序正好相反。感知机(1958)之后才出现了 SVM(1990 年代)章节 5 的讲解
只要求权重,就都是感知机线性 SVM·逻辑回归也求权重。区别在于选择边界的标准比较章节 4·5 的公式
只要特征多,就不需要标准化使用距离·加权和的方法,单位不同结果就会颠倒章节 6 的(25cm, 150g)
基于规则的模型已经过时了在特征有含义的表格数据中,它至今仍然很强,而且容易解释章节 3 的一行规则
照片也是表格,所以同样的方法也行得通形式相同,但单个格子没有意义,需要一个寻找模式的步骤章节 7 和代码 2

小测验(点击展开解析)

Q1. 鱼的表格的样本数、特征数和目标值分别是什么?

样本 49(行),特征 2(长度·重量),目标值是鲷鱼 1 / 胡瓜鱼 0 的一格。

Q2. 感知机把鲷鱼(t = +1)误判为胡瓜鱼。当 z = (0.2, −0.1)、η = 0.5 时,w 会怎样变化?

w ← w + 0.5 × (+1) × (0.2, −0.1) = w + (0.1, −0.05)。b 增加 0.5。

Q3. 感知机和线性 SVM 的边界形状相同吗?

相同。两者都是 w·z + b = 0 的直线。SVM 从中选出间隔最宽的那条。

Q4. 新鱼(25cm, 150g)在原始单位的 k-NN 中被判为胡瓜鱼的原因是?

因为距离几乎完全由重量差决定。从数值上看,150g 离胡瓜鱼(20g 以下)比离鲷鱼(242g 以上)更近。

Q5. 如果长度不是以 cm 而是以 mm 记录,决策树的规则会怎样?

只有阈值的数字变成 10 倍,判对的鱼不变。只看一个变量的规则不受单位影响。

Colab 作业

基础

在代码 1 中去掉 StandardScaler 后训练 SVM,观察边界和支持向量如何变化,并结合章节 6 用两句话加以说明。

挑战

在代码 2 中把决策树的深度增加到 1、3、10,把 3 对 8 的训练·测试准确率做成表格,并解读随着深度增加,训练和测试之间的差距如何变化。

难度调整与延伸学习

入门者跳过章节 4·5 的公式也不影响理解整体脉络。只要把章节 3 和 6 的实践切实做一遍
进阶用和章节 4·5 相同的表格比较逻辑回归,并让学生发表输出概率的分类器与只输出边界的分类器有何区别
延伸学习用 Fish Market Data 轻松学机器学习(鱼类数据机器学习全篇) · Sangsun Ahn,《面向商业的数据科学》(비즈니스를 위한 데이터 과학)讲义
讲师用资料小测验的评分标准和作业的参考答案可以在教师用答案页(4-1)中查看

辛苦了!

你已经读完了“4-1 鲷鱼 vs 胡瓜鱼”篇。实验室的伙伴们每人用一句话为你总结。

实验室的四位伙伴在舞台上挥手的像素画
博士
博士我们从变量和特征的区别出发。
  • 变量是有名字的格子,特征是多个格子的模式
  • 鱼用规则·直线·距离就足够了
  • 单位不同,距离也会算错
助手
助手像素规则选中了照片角落的背景格子!
果蝇研究员
果蝇研究员接下来轮到把照片打开成数字来看了。