跳到主要内容

通读笔记 — 图解机器学习算法(逐章要点+可引行号)

正文可用性抽查结论(动笔前)

抽了 06(线性回归)、08(逻辑回归)、19(k-means) 三章正文:文字自洽、机制讲在文字里、关键数字在正文 (均方误差 2.89/5.83;概率 0.12/0.50/0.88;WCSS 50.1/124.5)。图是配菜不是主菜。 例外:第 1 章部分示意图(图1-11-6、1-8、1-9)与第 2 章个别图(图2-272-29、2-33、2-43)提取出乱码 (自定义字体),但图的周边正文把内容讲全了,不依赖图也能写。 水印行「图灵社区会员 想喝可乐…专享 尊重版权」为噪声,引用时避开。

01 前言(text/02-fm.txt)

  • 目标读者:不擅长数学公式的初学者;「尽可能少用数学公式,主要使用图」(¶9)
  • 示例代码 Python 3.7 + scikit-learn 0.20.3;代码下载 ituring.cn/book/2761A(¶38)

04 1.1 机器学习概要(text/04-ch01-01-1-1.txt)

  • 机器学习定义:计算机根据给定问题/课题/环境学习,用学习结果解决问题的机制(¶5,搜「一整套机制」)
  • 关系:AI ⊃ 机器学习 ⊃ 深度学习;机器学习不是实现 AI 的唯一方法(还有按事先定好的规则做统计预测)(¶15-19)
  • 三类:有监督/无监督/强化学习(¶41-47)
  • 有监督:特征值(特征变量) vs 目标变量(标签);分类(离散,二元/多元) vs 回归(连续,鞋尺码 26.5/24 cm,可能预测出 23.7 cm 不存在的尺码)(¶70-93)
  • 垃圾邮件过滤例子:打标签的人=目标变量来源(¶82-84)
  • 表1-1:9 个有监督算法×分类/回归适用范围(¶110-133):线性回归只回归、正则化只回归、逻辑回归只分类、SVM/核SVM/随机森林/神经网络/KNN 都行
  • 无监督:没答案;变形/找部分集合;「结果难以解释,要求分析者基于经验主观解释」(¶136-142)
  • PCA 例子(中学成绩):数学76 理科89 语文30 文科20 → 第一主成分坐标 -56.1;四个特征归到一个轴(¶143-163)
  • 降维 vs 聚类;表1-3:PCA/LSA/NMF/LDA 降维,k-means/混合高斯聚类,LLE/t-SNE 降维(¶181-203)
  • 强化学习:奖励最大化;主机游戏例子;本书不涉及(¶204-213)

05 1.2 机器学习的步骤(text/05-ch01-02-1-2.txt)

  • 没有数据就没有机器学习;收集数据是第一件事(¶7-10)
  • 专栏:「机器学习工作 80% 以上的时间花在数据预处理上」(¶19,搜「80%」)
  • scikit-learn:BSD 开源,写作时(2019-03)最新 0.20.3,「事实上的标准库」,两大优点:操作统一、易于在 Python 使用(¶21-27)
  • 数据=二维表格;目标变量(target/标签/类别标签)、特征值(feature/特征变量/输入变量)(¶29-54)
  • iris:4 特征+Species(0/1/2)(¶57-88)
  • 乳腺癌数据集:569 条(恶性212/良性357),30 特征=平均/误差/最差三类各10项,取前10;逻辑回归;accuracy_score=0.9086(¶99-243,搜「0.9086」)
  • 过拟合定义初现:必须用没参与学习的数据评估(¶247-251)
  • 不均衡数据光看正确率不行:全判良性正确率也很高(¶252-258,30~39岁癌症检测,恶性只占百分之几)
  • 葡萄酒数据集:178行13特征;只取 alcohol+color_intensity 两列;k-means 3 簇;第3簇「酒精度低、色泽淡」;聚类规则不是人定的(¶285-373)
  • 可视化:Matplotlib(plt.plot 简易 vs ax.plot 面向对象两种写法)、pandas、seaborn、Bokeh;Jupyter Notebook 用法(¶375-510)
  • 五种图:scatter/hist/bar/plot/boxplot;箱形图是「查看数据分布的优秀的可视化方法」(¶526-575)
  • pandas:head/concat/corr/describe/scatter_matrix;相关系数:flavanoids 与 total_phenols 0.864564,flavanoids 与 kind -0.847498(¶725-766);describe 输出行数/均值/标准差/最小/25%/50%/75%/最大(¶769-772)

06 2.1 线性回归(text/06-ch02-01-2-1-1.txt)

  • 「根据训练数据计算使损失最小的参数的做法是有监督学习算法的共同之处」(¶2-3)
  • 表2-1:安斯库姆数据第一组 11 点(x=10,y=8.04 …);y=w0+w1x,斜率/权重,截距(¶9-41)
  • 表2-2 数据 (2,1)(3,5)(6,3)(7,7);两条直线 y=0.706x+0.823 与 y=−0.125x+4.5;均方误差 2.89 vs 5.83(¶48-67)
  • 均方误差定义:目标变量和直线的差平方的平均(¶57-58)
  • 误差函数(损失函数)=误差与学习参数的关系;「计算出使误差函数值最小的参数的思路在其他有监督学习算法中也是通用的」(¶73-78)
  • 示例代码输出:截距 3.00009,斜率 [0.50009091] (¶98-100)
  • 安斯库姆四重奏:4 组数据,回归参数相同、均值方差相关系数几乎相同,但只有 (a) 适合线性回归;(b) 曲线 (c) 离群值 (d) 无相关;「拿到数据之后,首先应该进行可视化」(¶106-126)
  • 一元/多元/多项式回归;「线性」看的是学习参数不是特征变量(¶164-171);非线性回归例子 y=e^{w1·x1}(¶189-191)

07 2.2 正则化(text/07-ch02-02-2-2-2.txt)

  • 过拟合定义:「模型在验证数据上产生的误差比在训练数据上产生的误差大得多的现象」;原因是模型过于复杂(¶9-11)
  • 数据:y=sin(2πx)+高斯噪声;train 20/test 12(¶13-14, 153-158)
  • 表2-5:次数1/2/3/6 → 训练误差 0.412/0.176/0.081/0.024,验证误差 0.618/0.193/0.492/3.472(¶43-54)
  • 正则化后表2-6:d=6 → 0.159/0.331(¶70-81)
  • 原因:复杂模型过拟合的一个原因是学习参数绝对值太大;表2-7 d=6 时 w=(1.080, −26.324, 287.431, −1034.141, 1611.144, −1147.946, 308.643);正则化后表2-8 (0.191, −0.751, −0.497, −0.182, 0.109, 0.370, 0.607)(¶90-115)
  • 岭回归误差函数 R(w)=Σ(yi−(w0+w1xi+w2xi²))² + α(w1²+w2²);惩罚项(正则化项)=参数平方和;截距一般不含(¶117-129)
  • α:越大抑制越强,越小越易过拟合,=0 等于没有正则化;一边看验证误差一边调(¶132-133, 176-179)
  • Lasso:惩罚项=绝对值之和;图2-11 圆形 vs 四边形;Lasso 交点处 w2 变 0→特征选择效果(¶189-219)
  • sklearn: PolynomialFeatures(6), Ridge(alpha=1.0);输出 train 0.159/test 0.331(¶144-172)

08 2.3 逻辑回归(text/08-ch02-03-2-3-3.txt)

  • 名字带「回归」但是分类算法;算属于各类别的概率(¶2-3)
  • 下雪穿靴子例子:100 天虚构数据;0℃→12%,1℃→50%,2℃→88%(¶15-34, 78)
  • 同线性回归:算 w^T x + w0;不同:过 Sigmoid σ(z)=1/[1+exp(−z)] 限制到 0-1;阈值 0.5(¶41-53)
  • 逻辑损失作为误差函数;「无法通过式子变形来计算逻辑损失的最小值,需要梯度下降法数值计算」;「无法严密求解的情况经常数值近似」(¶54-58)
  • 决策边界=概率正好 50% 的地方;逻辑回归的边界是直线;KNN/神经网络的更复杂(¶82-98)
  • 特征解释:iris setosa/versicolor 权重表:sepal length −0.407,sepal width −1.4609,petal length 2.2400,petal width 1.0084;权重符号→正/负影响(¶100-126)

09 2.4 SVM(text/09-ch02-04-2-4-4.txt)

  • 以间隔最大化为基准学习决策边界;与逻辑回归同是线性边界但常常更好(¶9-21)
  • 间隔定义:训练数据中最接近决策边界的数据与边界的距离(¶26-29)
  • 硬间隔 vs 软间隔:允许一部分数据进入间隔内侧(¶61-65)
  • 数据分 3 种:间隔外侧/间隔上/间隔内侧(含误分类);间隔上+内侧=支持向量;支持向量决定边界,外侧数据不影响(¶72-79)
  • 硬间隔对偏离值敏感,软间隔稳健;允许多少进入由超参数决定,用网格搜索/随机搜索调(¶80-95)
  • 示例:make_blobs 50 点,LinearSVC,accuracy 1.0(¶47-57)

10 2.5 SVM核方法(text/10-ch02-05-2-5-5.txt)

  • 「深度学习出现之前,使用核方法的支持向量机非常受欢迎」(¶4)
  • 线性边界分不了圆形分布数据;核方法学曲线边界(¶12-19)
  • 思路:数据移到更高维空间→线性可分→投影回原空间得曲线边界(¶24-36)
  • 核函数:无须真的构建高维空间就能用高维空间里的边界(¶53-54)
  • 核函数:线性/Sigmoid/多项式(二次→圆)/RBF(默认);RBF 超参数 γ 越大边界越复杂(γ=3.0)(¶82-99)
  • 代价:不知道模型用了什么特征→「相比特征的可解释性更看重精度」的场景;先用线性核分析(¶96-107)
  • 示例:make_gaussian_quantiles 300 点,SVC,accuracy 0.9778(¶65-77)

11 2.6 朴素贝叶斯(text/11-ch02-06-2-6-6.txt)

  • 用于文本分类/垃圾邮件;算概率、分到概率最大的标签(¶2-9)
  • 例子:6 条训练数据(电影3/宇宙3),验证「复映的动作电影名作让人感动」;先验各 3/6=50%(¶20-51)
  • 「感动」:电影类 2/3≈67%,宇宙类 1/3≈33%;条件概率定义(¶52-78)
  • 预处理 BoW(词袋):提名词、忽略顺序、出现=1;表2-13 向量;验证=[1,1,0,0,0,1,0,0,0,0,0] (¶87-144)
  • 训练学两种概率:标签概率+标签下单词条件概率(¶146-152)
  • 平滑:0 概率处分配 0.01,考虑大数据下可能出现的单词(¶173-176)
  • 分类=两概率乘积比较:电影 (3/6)×(2/3)³×(1−0.01)^…(¶177-204)
  • 「朴素」=每个单词独立,忽略顺序与组合(¶206-207)
  • 不适合:预测值是概率本身的场景(降水概率);独立假设在上下文里不成立:「踢」常在格斗文本,但「踢了球」主题可能是足球(¶242-255)
  • sklearn: MultinomialNB,输出 array([1])=电影,判断正确(¶215-238)

12 2.7 随机森林(text/12-ch02-07-2-7-7.txt)

  • 多模型综合;同类:梯度提升(竞赛受欢迎)(¶2-3)
  • 多数表决:找多人商量;必须多样性,否则 100 棵树表决结果一样(¶24-29, 86-88)
  • 决策树:按条件分支划分,用不纯度(基尼系数 1−Σp², c 标签数, pi 比例)(¶38-48)
  • 图2-31 数字:分割前 0.5;加权平均 ≈0.44;最好分割 0.25(¶53-65)
  • 决策树学习 3 步循环:算所有特征×候选分割的不纯度→选减小最多的分→递归(¶69-72)
  • 3 棵各 0.6 正确率的树表决:全错 0.064,两错 0.288 → 正确 0.648(¶79-85)
  • Bootstrap:随机抽样放回「虚增」训练数据+随机选部分特征值→多样性(¶89-95)
  • 特征重要度:所有树以某特征分割时不纯度改善的平均;重要度低的特征可去除;color_intensity 高,「直观,让人信服」(¶147-157)
  • 示例:wine 3 分类,RandomForestClassifier,accuracy 0.9444(¶130-143)

13 2.8 神经网络(text/13-ch02-08-2-8-8.txt)

  • 输入层/中间层(隐藏层)/输出层;中间层叠出复杂决策边界(¶10-23)
  • MNIST(书用 sklearn load_digits):8×8 灰度=64 维输入;中间层 16 维;输出 10 个概率(¶24-47)
  • 简单感知机:y=f(w0+w1x1+w2x2);权重/偏置/激活函数;Sigmoid 激活时与逻辑回归等价(¶61-87)
  • 线性不可分数据感知机分不了;解法:两个中间层(一条线分右上、一条线分左下)+输出层综合(「被两条直线夹住的地方」)(¶89-103)
  • 中间层维度是超参数:大→复杂边界但易过拟合(¶43-44)
  • accuracy ~95%(0.9518)(¶121-142)
  • Early Stopping(早停法):再划一部分评估数据,评估损失恶化就停(¶146-157)

14 2.9 KNN(text/14-ch02-09-2-9-9-knn.txt)

  • 「只是机械地记住所有的数据」;训练不算,预测才算(¶2-11)
  • 步骤:算距离→最近 k 个→多数表决;k=3 例:×2,○1→×(¶28-44)
  • k 是超参数;二元分类取奇数(¶46-47)
  • k=1 飞地(过拟合)/k=5 平滑/k=30 过宽误判(¶70-78)
  • 边界:数据量大→预测慢+存储大(树结构可加速但一般不适合大规模);维度大→渐近假设(「训练数据多就能在未知数据附近发现训练数据」)不成立(¶85-96)
  • 示例:make_moons,KNeighborsClassifier 默认 k=5,accuracy 0.9333(¶52-66)

15 3.1 PCA(text/15-ch03-01-3-1-10-pca.txt)

  • 降维=保留特征前提下少量变量表示多变量;100 变量→5 变量更好分析(¶8-11)
  • 两种减变量法:只选重要变量 vs 构造新变量(PCA 是后者)(¶12-14)
  • 主成分=原变量的线性和;方向(权重决定)+重要度(与偏差有关;取值都一样的变量不重要)(¶17-24)
  • 第一主成分=方差最大的轴;主成分得分=变换后数据(¶21-24)
  • 步骤:协方差矩阵→特征值问题 Ax=λx→主成分(¶33-45)
  • 特征值/特征向量具体例子:A=[[3,1],[2,2]];x1=(1,1)→(4,4)(同方向,缩放 4 倍=特征值);x2=(2,−1)→(5,2)(方向变了)(¶46-72)
  • 贡献率=特征值/总和;累计贡献率;「累计贡献率 0.7 以上→4 个主成分」「0.8 以上→5 个」(¶77-112)
  • 变量无相关→各贡献率几乎相同→不适合 PCA(¶113-114)
  • 示例:iris 4→2 主成分(¶85-102)

16 3.2 LSA(text/16-ch03-02-3-2-11-lsa.txt)

  • 1988 年提出,信息检索;同义性问题:索引有「车」搜「汽车」找不到(¶10-18)
  • 矩阵分解=把矩阵表示为多个矩阵乘积;X=UDV^T(奇异值分解)(¶19-21, 200-201)
  • 例:8 词×4 文本矩阵(坐汽车去公司/坐车去的/在餐厅吃汉堡牛肉饼/在餐厅吃意大利面);D 对角 2.24/1.90/1.18/1.00(¶34-70)
  • 降到 2:取 D 最重要的 2 个,删 U/V^T 第 3、4 列;X̂ 是近似,只用一半的值仍保留大部分信息(¶79-97)
  • ÛD̂^T 8×2:汽车/公司/去/车→变量 B;餐厅/汉堡牛肉饼/吃/意大利面→变量 A;潜在特征=「基于单词的关联性而创建的具有潜在意义的特征」(¶98-143)
  • 累计贡献率 0.67(¶191-196)
  • 注意:维度正交、元素可为负→难解释(NMF/LDA 更好解释);文本矩阵巨大→计算成本高;新词加入要重建重算→更新难(¶200-210)

17 3.3 NMF(text/17-ch03-03-3-3-12-nmf.txt)

  • V(n×d)≈W(n×r)·H(r×d);全非负;W 每行=对应行的降维结果(¶35-51)
  • 三特点:原矩阵非负/分解后非负/无正交约束(¶14-16)
  • 非负→「主题 A 0.5、主题 B 0.3」可解释;负值「主题 A −0.3」难解释(¶18-23)
  • 无正交约束→主题间可信息重复,「符合真实数据情况」;多个数据块:NMF 能各自找到轴,PCA 正交找不到所有块(¶24-30)
  • 交替更新:H 固定更新 W→W 固定更新 H→收敛停;初始化正值(¶52-63)
  • 人脸:19×19=361 特征→49 潜在变量,2429 张;PCA 基=「负的脸和正的脸」相加恢复;NMF 基=人脸部分特征;NMF 可解释性强(¶104-126)
  • 恢复:W 的一行(1×49) × H(49×361) = 1×361(¶118-119)

18 3.4 LDA(text/18-ch03-04-3-4-13-lda.txt)

  • 文本=多主题混合;主题=单词的概率分布;文本=主题的概率分布(主题分布)(¶10-25)
  • 5 个英文例句,主题数 2;主题 A 代表词 school,主题 B 代表词 sports(¶14-25)
  • 生成模型:按文本主题分布选主题→按主题单词分布选单词,重复造出文本(¶45-51)
  • 学习 5 步:随机分配主题→算文本主题概率→算主题单词概率→乘积重分配→重复到收敛;自增强:同文本单词趋向同一主题,代表词概率增加(¶55-69)
  • 20 Newsgroups,20 主题,CountVectorizer(max_features=1000, 停用词)(¶72-91)
  • 主题16: game team year games season play hockey players league win;主题18: windows drive card scsi disk … pc;主题4 全是数字、主题6 全是空词→停用词改进(¶139-158)
  • 某文本主题 18 成分多→实际是 comp.sys.mac.hardware(Mac 文本)(¶160-162)

19 3.5 k-means(text/19-ch03-05-3-5-14-k-means.txt)

  • 聚类=相似数据汇总为簇;简单、可用于大数据集,市场分析/计算机视觉(¶4-10)
  • 重心=簇代表点;按最近重心定归属(¶11-15)
  • 4 步:随机选 k 个点当重心→按距离分簇→每簇均值当新重心→重复 2-3 直到不变或到最大步数(¶21-25)
  • 簇数是超参数;初始重心太近会训不好→k-means++ 选尽量远的数据点(¶29-34)
  • 评估:WCSS(簇内平方和)=所有簇的数据点到重心距离平方和;越小越好;只能同簇数比较;图3-19a 50.1 vs b 124.5(¶71-85)
  • Elbow(肘方法):簇数增加 WCSS 变小,变缓处=肘;「常常不会出现明显的肘部,只不过是一种参考」(¶87-99)
  • 示例:iris,k=3,labels+cluster_centers:[[5.90,2.75,4.39,1.43],[5.006,3.418,1.464,0.244],[6.85,3.07,5.74,2.07]] (¶41-65)

20 3.6 混合高斯分布(text/20-ch03-06-3-6-15.txt)

  • 高斯分布=均值+方差;混合高斯=多个高斯分布线性叠加(¶9-11)
  • iris:一个高斯每轴只有一个均值方差→体现不了 3 品种;3 个叠加可以(¶19-25)
  • 一维例:红(均值 −2.0,方差 2.2)、蓝(均值 3.0,方差 4.0);不知道每个点属于谁(¶30-40)
  • 学习 4 步(EM):初始化→算权重(每个高斯的值/所有高斯的值之和)→按权重重算均值和加权方差→重复到均值变化足够小(¶42-63)
  • 「不明确数据点属于哪个类别,用权重表示,一点一点更新」(¶62-63)
  • vs k-means:k-means 对从重心呈圆形分布的有效,混合高斯对椭圆形分布的有效(图3-24 对比)(¶121-123)
  • sklearn: GaussianMixture;means_ 示例 [5.917,2.778,4.205,1.298]/[5.006,3.418,1.464,0.244]/[6.546,2.949,5.483,1.987] (¶73-110)

21 3.7 LLE(text/21-ch03-07-3-7-16-lle.txt)

  • 流形学习;瑞士卷=二维长方形卷曲埋在三维;LLE 取出展开,PCA 压扁(¶10-17)
  • 思想:每个点由近邻点的线性组合表示;例 x1=(1,1,1), x2=(−1,0,−1), x3=(2,3,2), w12=−1/3, w13=1/3;x1=w12·x2+w13·x3;低维保持同样权重(¶26-33)
  • 步骤:1找 k 近邻 2求权重(误差 ε(W)=Σ|xi−Σwij·xj|,约束 Σwij=1,非近邻权重 0) 3固定权重求低维 y(Φ(y)=Σ|yi−Σwij·yj|)(¶49-92)
  • 流形=「从局部来看是低维空间的结构被埋藏在高维空间里」;地球局部平面地图比方(¶124-130)
  • 近邻数超参数影响大:5→结构不连贯、挤在狭窄区域;50→不同颜色混在一起(局部结构没把握)(¶132-138)
  • 示例:make_swiss_roll 1500 点,n_neighbors=12,降到 2 维(¶97-120)

22 3.8 t-SNE(text/22-ch03-08-3-8-17-t-sne.txt)

  • 降维到 2/3 维可视化;相似结构聚集(¶4-13)
  • 步骤:1高斯分布算高维相似度 pij 2低维随机放 yi,t 分布算相似度 qij 3更新 yi 使 qij≈pij 4重复(¶25-31)
  • 相似度不用距离,用概率分布(¶33-34)
  • t 分布重尾→原本近的更近、远的更远(¶19-21, 72-75)
  • 只能降到 2/3 维:「t 分布是重尾分布,高维空间中远离中心的区域占主导,局部信息无法保留」,4 维以上不行(¶84-86)
  • 瑞士卷更新 250/500 次逐渐分开(¶76-81)
  • 手写数字 64 维→2 维对比:PCA 归类但混杂;LLE 数据不聚在一起不行;t-SNE 分得好(¶115-133)
  • 参考文献 van der Maaten & Hinton 2008(¶135-137)

23 4.1 评估方法(text/23-ch04-01-4-1.txt)

  • 表4-1:分类(混淆矩阵/正确率/精确率/召回率/F值/AUC) vs 回归(均方误差/决定系数)(¶8-25)
  • 标签反转:恶性=1(阳性)良性=0(阴性);「在实际的诊疗中,一般将发现恶性肿瘤作为检查目标」(¶36-39)
  • 混淆矩阵:TN 341/FP 16/FN 36/TP 176;「有 36 条 FN 出现,说明有 36 个恶性患者被漏诊」(¶91-95)
  • 公式:正确率 (TP+TN)/全;精确率 TP/(TP+FP);召回率 TP/(TP+FN);F=2×(精确率×召回率)/(精确率+召回率)(¶99-108)
  • 数值:正确率 0.9086;精确率 0.9167;召回率 0.8302;F 0.8713(¶120-164)
  • 精确率低→「通过再次检查等方式解决」;「与精确率低的情况相比,召回率低的问题更严重」(¶139-154)
  • 预测概率 predict_proba;scikit-learn predict 用 0.5 阈值;阈值降到 0.1:混淆矩阵 [259,98;2,210],正确率 0.8242,召回率 0.9906(¶169-218)
  • 数据偏差:全预测阳性的模型,95 阳/5 阴→正确率 95%(¶221-227)
  • AUC=ROC 曲线下面积;ROC 横轴假阳性率纵轴真阳性率;「0.5 左右…和抛硬币随机决定良性恶性没多大区别」(¶228-265);乳腺癌 AUC 0.9767(¶272);「常常出现正确率为 0.99,但 AUC 只有 0.6 的情况」(广告购买数据)(¶275-278)
  • 回归:波士顿房价,13 特征取 RM(平均房间数),506 行;y=9.10x−34.67;房间数 5→「预测租金为 10.83」(¶283-321)
  • MSE 43.6(¶365);决定系数 R² 0.484;最大 1.0,误差过大可为负(¶370-383)
  • MSE 光看数值不能判断好坏(受目标方差影响);R² 不依赖数量级(¶387-390)
  • SVR(C=0.01,linear):MSE 72.1/R² 0.145;SVR(C=1.0,rbf):36.4/0.5686→「超参数需要在训练开始前由用户给出」(¶400-466)
  • 过拟合演示
    :400
    训练,X[400:] 验证;SVR 验证 MSE 69.2,R² −1.4478(负)(¶475-488)
  • 泛化能力定义:「模型对这种未知数据的预测能力叫作泛化能力」(¶490-491)
  • train_test_split 7:3;「分割比例设为多少是没有明确规定的」,大数据 6:4,小数据 8:2;random_state(¶525-529)
  • SVC:训练 1.0/验证 0.6023(过拟合);RandomForest:0.9975/0.9591;「如果没有分割数据…我们可能会选择 SVC」(¶558-587)
  • 交叉验证:5 次 80/20;「需要考虑所有正确率的均值和方差」;KFold(5,shuffle=True):[0.9912,0.9298,0.9474,0.9649,0.9292];f1:[0.9928,0.9385,0.9790,0.9730,0.9744] (¶589-628)
  • 网格搜索:max_depth [5,10,15]×n_estimators [10,20,30]=9 组合;best 0.9490,{'max_depth': 10,'n_estimators': 10}(¶638-681)
  • 专栏防过拟合清单:增加训练数据/减少特征值/正则化/Early Stopping/集成学习(¶689-698)

24 4.2 文本数据转换(text/24-ch04-02-4-2.txt)

  • 两种转换:单词出现次数 vs tf-idf(¶6-8)
  • 例句 "This is my car"/"This is my friend"/"This is my English book";表4-3 计数;This 每篇都有,car 只在文本 1→「重要的单词」(¶26-45)
  • tf=词频;idf=包含该单词的文本越多值越小;乘积=tf-idf(¶51-54)
  • 表4-4:This 0.41,car 0.70(文本1);文本3:This 0.34,English/book 0.57(¶59-67)
  • 「行业术语和专有名词…往往具有较大的 tf-idf 值」(¶68-69)
  • 20 Newsgroups 4 类(misc.forsale/rec.autos/comp.graphics/sci.med)+LinearSVC;计数 0.7938 vs tf-idf 0.8701(¶84-124)

25 4.3 图像数据转换(text/25-ch04-03-4-3.txt)

  • 灰度图像=每像素只表示亮度;直接像素→向量 [8,0,12,…,19] (¶13-20)
  • 「具有二维关系的像素数据被转换为了一维向量,重要的信息被丢弃了」;深度学习保留二维关系,用近邻像素信息(¶27-30)
  • Pillow:getpixel → [250,255,216,…,89] (¶36-47)
  • 手写数字 RandomForest:前半训练后半测;数字 8 recall 0.73 最差,数字 0 0.99;avg 0.89(¶62-86)

26 第5章 环境搭建(text/26-ch05.txt) — 安装指南,拆解里一笔带过

  • Python 2 于 2020 年 1 月停止维护;本书 Python 3.7.2(2019-03 时最新)(¶9-14)
  • Anaconda:降低编译包导入难度但「有很强的独特性」,conda install 与 pip install 混用破坏环境(¶87-90)
  • venv 虚拟环境:同一台机器 X 用库 A 1.0、Y 用 1.1(¶99-105)
  • pip install jupyter numpy scipy pandas matplotlib scikit-learn(¶209)

27 附录(text/27-apx.txt) — 数学式+名词表

  • 均值 μ=5.25(y=4.50);方差 3.69/10.25;标准差 1.92/3.20(图A-1 数据点)(¶37-52)
  • 「本书在提到方差一词时,指的是有偏样本方差」(¶41-42)
  • 协方差 5.88/−39.50;「协方差值大并不意味着向右上方延伸的趋势大」→相关系数 r=0.96/−0.93,值在 −1 到 1(¶66-91)
  • 方差-协方差矩阵、相关矩阵(¶97-123)
  • 名词解释表:超参数「不能从数据中学习,必须事先指定」(¶404);学习参数 vs 超参数对照;潜在变量「虽然不能直接观察,但可以根据给定的数据点推测出来的变量」(¶337);权重/偏置定义(¶187, 401);间隔最大化(¶437);渐近假设(¶286)

01 版权页(text/01-fm.txt) — 只取元数据

  • 著:(日)秋庭伸也、杉山阿圣、寺田学;审校:(日)加藤公一;译:郑明智(¶18-20)
  • 人邮 2021.6 第 1 版,图灵程序设计丛书,ISBN 978-7-115-56356-9,定价 79.80 元(¶4, 29)
  • 内容提要:17 种算法清单(¶13-16)

原书结构 → 我们切分(见 01-outline.md)