跳到主要内容

画线的家族 — 神经网络之前的监督算法

这一章讲四件事: 经典监督算法共用的骨架「输入→打分→输出」; 回归怎么把一条线「贴」到数据上;正则化怎么防止它死记硬背; 以及逻辑回归(先打分、再压成「是/否」的分类判决方法)、SVM、KNN、LDA 这几个同族算法各自换了什么思路、各自死在哪。 读完你会明白第 01 章那条经典路线里,第②步「浅层模型」里装的都是什么

1. 骨架:监督学习到底在干嘛

第 01 章说过,监督学习就是每条数据都带标准答案的学习。原书给了它一个简洁的记法1:

找一个函数 F,让 F(X) = Y。X 是输入(行话叫特征,feature: 描述一条数据的每个数),Y 是要预测的答案(行话叫标签,label)。

本章所有算法都在这个骨架里,差别只有「F 长什么样」「怎么找到它」。

原书 2.3 把落地过程列成八步(定问题→收数据→预处理→选模型→训练→评估→部署→监控回环)2,2.5 再按「答案长什么样」二分:答案是连续数值走回归算法,答案是离散类别走分类算法2——这个二分就是本章的目录。最简单的一族假设关系是线性(输入与输出画出来是直线)的,我们先从它开始。

顺带立个词:把几个特征按顺序排成一行,就叫向量(vector:一串按位置排好的数)——SVM 那一节会用到。 先立主走查用的数据。

2. 主走查:五套房子的面积和成交价

任务:用面积预测房价。 训练数据五条(这些数是为演示编的): X = [1, 2, 3, 4, 5] (面积,单位略),y = [2, 4, 6, 8, 10] (成交价)。

线性回归:找一条最贴近的线

线性回归(linear regression)假设输入和输出是直线关系,把这条线写成3:

y = β0 + β1·x

图说:β0 是线与纵轴的交点(截距),β1 是线的斜率。
这两个 β 就是「可以调的数」——找到它们,模型就成了。

「最贴近」怎么定义?原书给的答案是普通最小二乘(OLS:ordinary least squares): 把每条数据的「预测值 − 真实值」平方后加起来,找让这个总误差最小的 β4。 平方的用意是让正负误差不互相抵消,并且重罚离谱的偏差。

套到主走查上,这五条数据其实严格躺在直线 y = 2x 上,所以学出来的结果没有悬念: β1 = 2、β0 = 0。书里用 scikit-learn 跑的就是这一组数,然后问它没见过的输入 [6, 7, 8] 会得什么,输出是 [12. 14. 16.]——每个数都正好是输入的两倍5

这就是「监督学习」的完整闭环: 带答案的数据 → 算法定下 β → 没见过的输入也能算出答案。「学」的不是答案本身,是那条线。

线性回归会死在哪

原书列的缺点里,两条最要命6:

  • 非线性(画出来不是直线)关系画不成。 面积涨到一定程度价格见顶回落,直线只能画出一截斜率,两头的预测全错;

  • 对离群点(数据里混进的异常值)极敏感。 五套房里混进一套天价房,最小二乘会为了迁就它把整条线拉歪—— 因为平方误差对大偏差的惩罚是平方级的。

3. 正则化:防止「背题」的镣铐

先立一个后面反复出现的词:过拟合(overfitting)。 指模型把训练数据背得滚瓜烂熟,换新数据就露馅7

背得多细?细到连数据里的噪声——混进来的随机干扰——都背下来了。 线性回归的过拟合长这样:特征一多(几十上百个),模型给每个特征都配一个系数, 把训练集「精确解释」了一遍——但其中很多系数其实在拟合噪声。

正则化(regularization)的思路是给模型戴镣铐:在「贴数据」的分数之外, 再惩罚「系数太大」8。原书讲了两种镣铐,差别在于刑罚的形状:

方法惩罚项效果适合
Lasso(L1)系数绝对值之和能把没用的系数直接压成 0——顺手做了特征筛选特征很多、怀疑大部分没用
Ridge(L2)系数平方之和系数整体缩小但不归零特征之间互相纠缠(多重共线性)

一句话记法:Lasso 会开除特征,Ridge 只会减薪。 两者都由一个旋钮 λ 控制「刑罚多重」: λ 太小等于没戴镣铐,太大则模型被勒得连真规律也学不到(行话叫欠拟合)9

本节必须如实记一笔: 原书 2.6.4 讲 Lasso 的代码是从 2.6.1 复制的普通线性回归, 既没有 Lasso 类也没有 alpha 参数,而散文却在逐行讲解一个不存在的 import10。 概念部分(上表)是对的,代码不要照抄。

4. 逻辑回归:把线变成分类器(输出「是/否」的模型)

问题升级:答案不再是数,是类别。 比如一封邮件是不是垃圾邮件。 线性回归输出的是任意大的数,当不了概率(0 到 1 之间、能当「可能性」读的数)。逻辑回归(logistic regression)的修法分两步11:

① 先照旧线性打分: z = β0 + β1·x1 + … + βn·xn (这一步叫 logit:对数几率)
② 再压进 0 到 1: p = 1 / (1 + e^(−z)) (这一步叫 sigmoid 函数)

图说:sigmoid 是一条 S 形曲线:z 很负时 p 趋近 0,z 很正时 p 趋近 1,
z = 0 时正好 0.5。任何打分都被压成一个合法的概率。

有了概率 p,分类只差一条线:p ≥ 0.5 判「是」,否则判「否」(0.5 是惯例默认, 可以按业务调)12

套主走查的形状看:假设我们改判「这套房会不会成交」,模型输出的不再是价格, 而是「成交概率 0.83」这样的数——背后仍是同一个线性打分,只是套了层 sigmoid。

先把名字说清:① 里的 z 行话叫 logit;它由两半组成——对数(一种把连乘压缩成连加的运算)与几率(成功概率除以失败的概率)。它的边界也很清楚:原书指出它假设「特征和对数几率之间是线性关系」, 非线性关系抓不住;特征一多同样会过拟合,好在 L1/L2 镣铐照样能戴13

5. 三种换思路的画法:SVM、KNN、LDA

同一个「分类」任务,还有三条不相同的路线。每个先看它解决什么问题。

SVM:不画「能分开的线」,画「离两边最远的线」

问题: 能分开两堆点的线有无数条,选哪条?

做法: 一种叫支持向量机——英文缩写 SVM——的算法,选间隔(margin)最大的那条:离两堆点都尽量远14

紧贴着间隔边缘的那几个点就叫支持向量(support vectors,「支持向量机」这个名字就从这来): 删掉其他所有点,这条线都不动;动一个支持向量,线就得挪。 名字就是这么来的。

非线性(画不出一条直线)的关系怎么办:核函数(kernel):把数据映射到更高维(更多个特征坐标)的空间,在高维里找线性分界面15。 直觉版:一维直线上搅在一起的两串点,映射到二维后可能一提就分开。 代价:原书明确指出 SVM 在大数据集上训练时间和内存都会明显上涨16

KNN:不训练,直接翻户口本

问题: 一定要先「学」出一条线吗? 做法: K 近邻(KNN,k-nearest neighbors)根本不训练,原书叫它「lazy learner」17: 来了新点,现算它与所有训练点的距离,挑最近的 K 个,分类看这 K 个邻居里哪类票多, 回归取 K 个邻居答案的平均。距离默认用欧氏距离(直线距离),也能换曼哈顿距离 (沿坐标轴走的距离,像在棋盘格街道上打车)18

死穴全在 K: K 太小,单个噪声点就能带偏判决(过拟合);K 太大,远处的异类也来投票, 局部特征被抹平(欠拟合)19。另一条原书点名的死穴:特征维度(描述一条数据的特征个数)一高, 「距离」本身会失真——所有点看起来都差不多远,这就是维数灾难20。 还有一条隐性成本:预测时要和全部训练点算距离,数据越大预测越慢。

LDA:分类之前先投影

问题: 高维数据没法画图看,类别信息混在几十个维度里。 做法: 线性判别分析(LDA,linear discriminant analysis)找一条投影方向, 把数据压到低维的同时让类与类尽量拉开、类内部尽量收紧21。 具体是算两个散布矩阵——类内的 S(w)(每类自己有多散)和类间的 S(b)(类与类离多远)—— 求它们的广义特征值问题,取前 k 个方向做投影,再在低维上跑分类器22

死穴: 原书列了三条假设——类之间线性可分、数据服从高斯分布(钟形曲线那种形状)、各类样本数大致平衡—— 任何一条不成立,效果就打折23

四兄弟怎么选

场景先试谁一句话理由
关系接近线性、要解释系数线性/逻辑回归系数直接可读,训练最快
特征多而杂、中间量非线性SVM(带核)间隔最大化抗噪,高维也稳
决策边界奇形怪状、数据量中等KNN不训练,边界跟着数据走
高维数据要先降维再看LDA投影方向专为「拉开类别」设计

6. 作者的判断与证据

  • 有代码佐证的: 线性回归的 [12,14,16] 输出、KNN/SVM/LDA 的 scikit-learn 调用方式, 都是可以直接跑的短代码,概念与代码一致24
  • 只有断言、没有实验的: 每节的「优点/缺点」列表(如「SVM 对高维稳健」「KNN 能学复杂边界」) 全部是无出处的泛泛之谈,书里没跑过一个对比实验。当经验法则读,不当结论引。
  • 硬伤一处(第 3 节已述): Lasso 小节的代码与散文不符,是全书第一处「代码-正文脱节」, 这个毛病在第 3 章会成片出现25
  • 来自另一本书的材料: 本章(连同第 03 章)的原书引言开篇讲的是「机器学习用于社会科学与 公共政策」,例子全是选举预测、铅中毒风险——这是从社科课程材料搬来的骨架, 技术内容本身没错,但每一节末尾的优点缺点句式都是模板复制26

判断(我们的,不是书里的): 原书这一章的真正价值不是任何一个具体算法, 而是**「监督学习」这个骨架本身**:输入→打分→与答案比对→调整。 本章每个算法都是往这个骨架里换一种「打分方式」和一种「调整方式」; 第 04 章的神经网络也一样——它只是把「打分」换成了几百万次嵌套的加权求和。 如果错,会错在: 如果某种算法(比如 SVM 的核技巧)的数学结构与「打分+比对」骨架 并不同构,这个统一讲法就会掩盖真正的差异——但按误差驱动的训练这个口径看,它们确实同构。

7. 边界与局限

  • 这些算法不学特征。 喂进去的 X 得先由人挑好——第 01 章的「特征翻译官」在这一章全程在场。 原书在「为什么需要深度学习」处点破了这条线:手工特征「费时、依赖领域、容易错」27

  • 原书没讲的东西: 这些算法的完整推导,原书跳过了:最小二乘的解析(不逐步试、用公式一步算)解怎么来的、SVM 的对偶问题。

  • 超参数(训练前人工拍定的设定)怎么调、不平衡数据怎么处理,也没讲。我们照实不补,需要时去第 03 章的评估一节看怎么验收。

  • 时代注脚: 在表格数据(结构化数据)任务上,这一族算法至今没有被深度学习全面取代——原书 4.2 节自己承认表格数据上全连接网络、决策树(问一串问题做判断的模型)都好用28

    同一处还点了梯度提升(一群小模型接力纠错)的名——第 03 章的主角。被深度学习夺走的是图像、语音、文本这些「特征学不出来就赢不了」的领域。

8. 可带走的

  1. 监督学习的骨架一句话:F(X) = Y,特征进、标签出,学的是映射规则;
  2. 线性回归 = 最小二乘找系数;它快、可解释,但怕非线性和离群点;
  3. 过拟合 = 背题;正则化是镣铐:Lasso 开除特征(压到 0),Ridge 只减薪(缩小不归零);
  4. 逻辑回归 = 线性打分 + sigmoid 压成概率 + 0.5 阈值(过了这条线就判「是」)判决;名字带「回归」,干的是分类;
  5. SVM 选「离两边最远的线」,支持向量是决定线的那几个点,核函数负责把弯的掰直;
  6. KNN 不训练只翻邻居,K 是准头和抗干扰程度的滑杆,高维会撞维数灾难;
  7. LDA 投影的原则是「类间拉远、类内收紧」,三个假设(线性可分/高斯/类平衡)缺一就打折;
  8. 原书优缺点列表全是经验断言,没有实验支撑——当 checklist 用,不当证据引。

9. 原文地图

主题原书章原文位置
F(X)=Y 骨架2.4 Categories of Machine Learning Methodstext/10-ch02-04-2-4-categories-of-machine-learning-methods.txt:20(搜「maps input variables」)
特征/标签叫法2.4 Categories of Machine Learning Methodstext/10-ch02-04-2-4-categories-of-machine-learning-methods.txt:22(搜「features or predictors」)
线性模型与 OLS2.6 Linear Regressiontext/12-ch02-06-2-6-linear-regression.txt:34(搜「linear model」) · text/12-ch02-06-2-6-linear-regression.txt:55(搜「least squares (OLS)」)
sklearn 实测 [12.14.16.]2.6 Linear Regressiontext/12-ch02-06-2-6-linear-regression.txt:74(搜「np.array([[1]」) · text/12-ch02-06-2-6-linear-regression.txt:98(搜「12」)
线性回归缺点2.6 Linear Regressiontext/12-ch02-06-2-6-linear-regression.txt:117(搜「Limited Flexibility」) · text/12-ch02-06-2-6-linear-regression.txt:132(搜「Outliers」)
过拟合定义2.6 Linear Regressiontext/12-ch02-06-2-6-linear-regression.txt:151(搜「Overfitting occurs」)
正则化原理2.6 Linear Regressiontext/12-ch02-06-2-6-linear-regression.txt:156(搜「penalty term」)
Lasso 稀疏/特征筛选2.6 Linear Regressiontext/12-ch02-06-2-6-linear-regression.txt:198(搜「Lasso」) · text/12-ch02-06-2-6-linear-regression.txt:208(搜「sparsity」)
Ridge 治共线2.6 Linear Regressiontext/12-ch02-06-2-6-linear-regression.txt:245(搜「Ridge」) · text/12-ch02-06-2-6-linear-regression.txt:129(搜「multicollinearity」)
Lasso 代码贴错2.6 Linear Regressiontext/12-ch02-06-2-6-linear-regression.txt:216(搜「import numpy as np」) · text/12-ch02-06-2-6-linear-regression.txt:235(搜「Lasso」)
逻辑回归两步2.7 Logistic Regressiontext/13-ch02-07-2-7-logistic-regression.txt:17(搜「derived from」) · text/13-ch02-07-2-7-logistic-regression.txt:28(搜「logit」)
sigmoid 公式2.7 Logistic Regressiontext/13-ch02-07-2-7-logistic-regression.txt:42(搜「sigmoid」) · text/13-ch02-07-2-7-logistic-regression.txt:60(搜「threshold」)
逻辑回归边界2.7 Logistic Regressiontext/13-ch02-07-2-7-logistic-regression.txt:124(搜「Limited to Linear」)
SVM 间隔与支持向量2.8 Support Vector Machinetext/14-ch02-08-2-8-support-vector-machine.txt:7(搜「maximize the margin」) · text/14-ch02-08-2-8-support-vector-machine.txt:9(搜「support vectors」)
核函数2.8 Support Vector Machinetext/14-ch02-08-2-8-support-vector-machine.txt:15(搜「kernel function」)
SVM 大数据代价2.8 Support Vector Machinetext/15-ch02-09-2-9-k-nearest-neighbors.txt:10(搜「Computational Complexity」) · text/15-ch02-09-2-9-k-nearest-neighbors.txt:13(搜「Inefficiency with Large」)
KNN lazy learner2.9 K-Nearest Neighborstext/15-ch02-09-2-9-k-nearest-neighbors.txt:36(搜「lazy learner」)
K 的取舍2.9 K-Nearest Neighborstext/15-ch02-09-2-9-k-nearest-neighbors.txt:40(搜「The choice of K」)
两种距离公式2.9 K-Nearest Neighborstext/15-ch02-09-2-9-k-nearest-neighbors.txt:51(搜「Euclidean distance」) · text/15-ch02-09-2-9-k-nearest-neighbors.txt:63(搜「Manhattan」)
维数灾难2.9 K-Nearest Neighborstext/15-ch02-09-2-9-k-nearest-neighbors.txt:161(搜「curse of」)
LDA 目标2.10 Linear Discriminant Analysistext/16-ch02-10-2-10-linear-discriminant-analysis.txt:12(搜「maximizes class separability」)
散布矩阵与投影2.10 Linear Discriminant Analysistext/16-ch02-10-2-10-linear-discriminant-analysis.txt:24(搜「Scatter Matrices」) · text/16-ch02-10-2-10-linear-discriminant-analysis.txt:43(搜「Project the Data」)
LDA 三假设2.10 Linear Discriminant Analysistext/17-ch02-11-2-11-decision-trees.txt:1(搜「Linear Separability」) · text/17-ch02-11-2-11-decision-trees.txt:8(搜「Gaussian」)
优缺点列表无实验2.7 Logistic Regressiontext/13-ch02-07-2-7-logistic-regression.txt:106(搜「Advantages and Disadvantages」)
社科引言1 Introduction to Deep Learningtext/06-ch01-1-introduction-to-deep-learning.txt:1233(搜「social science」)
手工特征费时1 Introduction to Deep Learningtext/06-ch01-1-introduction-to-deep-learning.txt:203(搜「feature engineering」)
表格数据上经典算法仍强4 Convolutional Neural Networkstext/41-ch04-4-convolutional-neural-networks.txt:107(搜「tabular data」)

Footnotes

  1. 出处:「2.4 Categories of Machine Learning Methods」第 20 段(text/10-ch02-04-2-4-categories-of-machine-learning-methods.txt:20,搜「maps input variables」)。原文:目标是学一个函数 F 把输入 X 映到目标 Y,使 F(X) = Y;第 22 段补了叫法:输入也叫 features 或 predictors,目标也叫 label。

  2. 出处:「2.3 Machine Learning Process – How it Works」第 19 段(text/09-ch02-03-2-3-machine-learning-process-how-it-works.txt:19,搜「Problem Definition」)(八步流程逐条列出)与「2.5 Supervised Learning Algorithms」第 14 段(text/11-ch02-05-2-5-supervised-learning-algorithms.txt:14,搜「Regression Algorithms」)、第 23 段(text/11-ch02-05-2-5-supervised-learning-algorithms.txt:23,搜「Classification Algorithms」)(回归/分类两分与各自动用的算法清单)。 2

  3. 出处:「2.6 Linear Regression」第 34 段(text/12-ch02-06-2-6-linear-regression.txt:34,搜「linear model」)。原式 y = β0 + β1x1 + β2x2 + … + βnxn 在第 46 段。

  4. 出处:「2.6 Linear Regression」第 55 段(text/12-ch02-06-2-6-linear-regression.txt:55,搜「least squares (OLS)」)。原文:OLS 最小化预测值与真实值之差的平方和。

  5. 出处:「2.6 Linear Regression」第 74 段(text/12-ch02-06-2-6-linear-regression.txt:74,搜「np.array([[1]」)与第 98 段(text/12-ch02-06-2-6-linear-regression.txt:98,搜「12」)。代码:X = [[1],[2],[3],[4],[5]],y = [2,4,6,8,10],预测 [6],[7],[8] 输出 [12. 14. 16.]。

  6. 出处:「2.6 Linear Regression」第 117 段(text/12-ch02-06-2-6-linear-regression.txt:117,搜「Limited Flexibility」)与第 132 段(text/12-ch02-06-2-6-linear-regression.txt:132,搜「Outliers」)。

  7. 出处:「2.6 Linear Regression」第 151 段(text/12-ch02-06-2-6-linear-regression.txt:151,搜「Overfitting occurs」)。原文定义:模型在训练数据上极好、在新数据上差,「becomes too complex and starts capturing noise」。

  8. 出处:「2.6 Linear Regression」第 156 段(text/12-ch02-06-2-6-linear-regression.txt:156,搜「penalty term」)。原文:正则化往目标函数加惩罚项,把系数朝零收缩。

  9. 出处:「2.6 Linear Regression」第 180 段(text/12-ch02-06-2-6-linear-regression.txt:180,搜「Bias」)与第 184 段(搜「Parameter Tuning」)。原文:正则化引入偏差,λ 需要调,调不好会欠拟合。

  10. 出处:「2.6 Linear Regression」第 216 段(text/12-ch02-06-2-6-linear-regression.txt:216,搜「import numpy as np」)与第 235 段(text/12-ch02-06-2-6-linear-regression.txt:235,搜「Lasso」)。代码与 2.6.1 逐字相同(导入 LinearRegression,无 Lasso、无 alpha);其后的散文却说「we import the 'Lasso' class」并讲起 X_train/y_train——两版代码混用。

  11. 出处:「2.7 Logistic Regression」第 17 段(text/13-ch02-07-2-7-logistic-regression.txt:17,搜「derived from」)与第 28 段(搜「logit」)。原文:逻辑回归假设输入与对数几率(log-odds,即 logit)之间是线性关系。

  12. 出处:「2.7 Logistic Regression」第 60 段(text/13-ch02-07-2-7-logistic-regression.txt:60,搜「threshold」)。原文:对预测概率施以阈值(通常 0.5)来决定类别。sigmoid 公式在第 44 段。

  13. 出处:「2.7 Logistic Regression」第 124 段(text/13-ch02-07-2-7-logistic-regression.txt:124,搜「Limited to Linear」)与第 127 段(搜「High-Dimensional」)。

  14. 出处:「2.8 Support Vector Machine」第 7 段(text/14-ch02-08-2-8-support-vector-machine.txt:7,搜「maximize the margin」)与第 9 段(text/14-ch02-08-2-8-support-vector-machine.txt:9,搜「support vectors」)。原文:间隔=决策边界到每类最近点的距离;那些最近点叫支持向量。

  15. 出处:「2.8 Support Vector Machine」第 15 段(text/14-ch02-08-2-8-support-vector-machine.txt:15,搜「kernel function」)。

  16. 出处:「2.8 Support Vector Machine」末的缺点列表位于下一文件:text/15-ch02-09-2-9-k-nearest-neighbors.txt:10(搜「Computational Complexity」)与 :13(搜「Inefficiency with Large」)。原文:SVM 计算量大,数据大时训练时间与内存显著增长。

  17. 出处:「2.9 K-Nearest Neighbors」第 36 段(text/15-ch02-09-2-9-k-nearest-neighbors.txt:36,搜「lazy learner」)。原文:KNN 常被称为 lazy learner,因为它没有任何训练或学习过程。

  18. 出处:「2.9 K-Nearest Neighbors」第 51 段(text/15-ch02-09-2-9-k-nearest-neighbors.txt:51,搜「Euclidean distance」)与第 63 段(搜「Manhattan」)。两公式在第 60 与 68 段;第 73 段解释:欧氏是直线距离,曼哈顿是各维绝对差之和。

  19. 出处:「2.9 K-Nearest Neighbors」第 40 段(text/15-ch02-09-2-9-k-nearest-neighbors.txt:40,搜「The choice of K」)。原文:K 小导致过拟合与对离群点敏感,K 大导致欠拟合并丢失局部模式。

  20. 出处:「2.9 K-Nearest Neighbors」第 161 段(text/15-ch02-09-2-9-k-nearest-neighbors.txt:161,搜「curse of」)。原文:高维特征空间里「curse of dimensionality」成为问题。

  21. 出处:「2.10 Linear Discriminant Analysis」第 12 段(text/16-ch02-10-2-10-linear-discriminant-analysis.txt:12,搜「maximizes class separability」)。

  22. 出处:「2.10 Linear Discriminant Analysis」第 24 段(text/16-ch02-10-2-10-linear-discriminant-analysis.txt:24,搜「Scatter Matrices」)与第 43 段(搜「Project the Data」)。步骤:算类内 Sw 与类间 Sb → 求矩阵特征值/特征向量 → 取前 k 个方向构成变换矩阵 → 投影后跑分类器。

  23. 出处:「2.10 Linear Discriminant Analysis」的缺点列表(文件接续于下一文件开头):text/17-ch02-11-2-11-decision-trees.txt:1(搜「Linear Separability」)与 :8(搜「Gaussian」)。四条缺点:线性可分假设、对离群点敏感、要类平衡、高斯假设。

  24. 出处:「2.7 Logistic Regression」第 73 段(text/13-ch02-07-2-7-logistic-regression.txt:73,搜「Implementation of Logistic」)起。逻辑回归的 sklearn 示例概念与代码一致,可运行。

  25. 出处:「2.6 Linear Regression」第 216 段(text/12-ch02-06-2-6-linear-regression.txt:216,搜「import numpy as np」)。与正文第 3 节同一证据,此处归档为「代码-正文脱节」毛病的首例。

  26. 出处:「1 Introduction to Deep Learning」第 1233 段(text/06-ch01-1-introduction-to-deep-learning.txt:1233,搜「social science」)。第 2 章引言:「machine learning for addressing social science and public policy problems」;应用例(铅中毒、警察风险、处理效应、警察语言)见「2.1 Intuition」第 115-134 段(text/07-ch02-01-2-1-intuition.txt:115,搜「Potash」)。

  27. 出处:「1 Introduction to Deep Learning」第 203 段(text/06-ch01-1-introduction-to-deep-learning.txt:203,搜「feature engineering」)。原文:手工特征工程「time-consuming and domain-specific」且 prone to errors。

  28. 出处:「4 Convolutional Neural Networks」第 107 段(text/41-ch04-4-convolutional-neural-networks.txt:107,搜「tabular data」)。原文:表格数据上全连接网络、决策树、梯度提升机都合适,因为「不预设特征之间有任何特定结构」。