FDE Times 数据在招 FDE 职位 862▼55 近 7 天在招职位数的变化(同口径比较):不计入本周新开始追踪的公司的职位近 7 天新增 70在招公司 180支持远程 24%美国薪资中位数 $200k招聘最多 Palantir 95
ENVI

前线部署工程师(FDE)的专业媒体

书籍与课程

一本 2013 年的统计教材,补上 FDE 最常跳过的一课

2023 年的 Python 版 ISLP 讲如何在客户数据上诚实评估模型,有几章下周的项目就用得上。

封面: An Introduction to Statistical Learning with Applications in Python
An Introduction to Statistical Learning with Applications in Python · Gareth James · 封面图片:Open Library
分享微博

要点速览

  • ISLP 是一本 2013 年首次出版的教材的 2023 年 Python 版:覆盖面广、数学门槛低,适合一线从业者。
  • FDE 建议按这个顺序读:入门实验、线性回归、重采样、正则化、决策树,然后是无监督学习。
  • 深度学习、生存分析和多重检验放在全书末尾,等项目真正用到时再读。
一条分四步的 ISLP 阅读路径:第 2 章入门实验;作为基线的线性回归;接着是重采样、正则化和基于树的方法,以橙色突出为最需要的部分;然后是用于无标签数据的无监督学习。一条虚线通向“以后再读”方框,其中包括深度学习、生存分析和多重检验。
先读中间几章:重采样、正则化和基于树的方法。Python 版在书末新增的章节,可以等项目需要时再读。

机器学习书籍通常几年就会过时。《统计学习导论》(An Introduction to Statistical Learning)却恰恰相反:第一版出版于 2013 年,2021 年出了 R 语言第二版,2023 年作者又推出了 Python 版,即 ISLP。

历经十年、三个版本,作者仍认为这本书值得用一门新语言重写一遍。单凭这一点,就足以说明书中内容经得起时间检验。

对前线部署工程师(FDE)来说,这本书的核心恰恰是最常被忽视的一项技能:诚实地判断一个模型在客户数据上到底管不管用。Agent、RAG、LLM 评测,归根结底都建立在这本书很早就提出的统计问题之上。

所以真正值得回答的问题不是要不要读 ISLP,而是先读哪几章,下周就能用到项目上。

一本写给构建者而非证明者的书

在官方网站 statlearning.com 上,作者将这本书描述为对统计学习关键主题的一次覆盖面广、技术性较弱的讲解。换句话说,它不要求你证明定理,而是希望你理解一种方法为什么有效、什么时候会失效。

ISLP 适合 FDE 的地方,在于每章末尾的实验:本章概念会以 Python 代码的形式跑一遍。这本书配有 ISLP 库,根据 islp.readthedocs.io 上的文档,第 2 章到第 13 章都有实验。

官方 GitHub 仓库 intro-stat-learning/ISLP_labs 让实验与库的源代码保持同步。它明确的目标是:只要用 requirements.txt 建好虚拟环境,就能复现结果。

对 FDE 而言,这种可复现性有非常实际的价值。一个可复现的 notebook,你可以直接在客户会议上打开,而不必凭记忆复述书里的内容。Python 版可以在 Springer 购买,官网也提供了 PDF 下载链接。

应该按什么顺序读?

从第 2 章的入门实验开始。仓库说明里给出的运行方式是 uv run jupyter lab Ch02-statlearn-lab.ipynb。接下来读线性回归,因为几乎每个表格数据项目,你最先搭的都是这个基线。

然后直接进入官网列出的、FDE 最需要的三组主题:重采样(交叉验证和自助法)、正则化,以及基于树的方法。紧接着读无监督学习,因为项目第一周往往就是在探索无标签数据。

Python 版新增的深度学习、生存分析和多重检验几章放在全书末尾,可以留到以后再读。当客户问“客户多久会流失”或“机器多久会出故障”时,值得读生存分析;当你开始同时跑几十个实验时,值得读多重检验。

第一课:在训练集上测出的分数会骗人

设想客户发来 1,000 行数据,外加一个模型,上一家供应商报告其准确率为 92%。

如果这个数字是在训练模型所用的同一批数据上测出来的,它几乎说明不了任何问题。5 折交叉验证会把这 1,000 行数据分成 5 份,每份 200 行。

每一轮,模型用 800 行学习,再在它从没见过的 200 行上打分。

如果平均分降到 70% 左右,你就在它变成生产事故之前,找到了项目真正的问题。重采样这一组的另一半——自助法——能给出这个数字的一个区间。向管理层汇报这样一个区间,远比给出单一数字诚实。

第二课:多加变量不是免费的

客户数据往往有几百列:门店编码、录入日期,每一列看上去都有用。正则化教你惩罚过于复杂的模型,避免它把数据里的噪声背下来。

拿到这样一张表,第一件事是把完整模型和正则化后的模型做比较,两者都用交叉验证打分。如果更简单的版本持平甚至更好,你就得到了一个更容易解释的模型,以及一条更精简、更好运维的数据管道。

第三课:决策树是客户看得懂的基线

基于树的方法常被视为过时,但对 FDE 来说,它是和客户沟通的工具。一棵浅层的树可以打印成类似这样的话:“如果订单金额高于阈值 X 且是新客户,则风险高。”

客户的一线人员能读懂这句话,觉得不对时也会提出异议,而他们提出异议的那一刻,正是你了解业务的时候。

建议:先建一棵简单的树,拿给领域专家看,然后再考虑更复杂的模型。

交叉验证什么时候也会算错?

只有用对了,交叉验证才是诚实的。最常见的错误是在各折上调参,再在同样的折上汇报分数。如果你试了 50 个正则化强度,挑出看起来最好的那个,这个最好的分数就是挑出来的,几乎肯定高于真实水平。

解决办法是单独留出一个测试集,直到最后一步才碰它;或者嵌套一层内部交叉验证,只用来选参数。标准化和特征选择也是同样的道理:任何从数据中学习的步骤,都必须在每一折内部完成,而不是事先在整张表上做。

第二个错误更难发现:目标泄漏。设想一个客户流失预测问题,表里有一列“合同取消日期”。这一列只有在客户已经流失之后才会有值,于是模型在交叉验证中几乎全对,一上生产环境就崩了。

一个值得养成的习惯:训练之前,和领域专家坐下来,对每一列都问同一个问题:“在需要做预测的那一刻,这一列已经有值了吗?”分数好得可疑,往往是泄漏的第一个信号。

把阅读变成求职的证据

所以,把这些实验做成你自己的仓库:选一个公开数据集,把训练集分数和交叉验证分数并排放在一起,再写一段面向非技术经理的解释。

在简历上,用结果来描述你做的事,比如“用交叉验证发现模型过拟合”,而不是“学习了 ISLP”。当岗位描述要求在真实数据上评估模型,或向非技术人员解释结果时,就把这个仓库放在申请材料的最前面。

框架还会变很多次。但每个客户都会问:这个数字能信吗?这本书中间的三组章节,能帮你回答这个问题。

这篇文章对你有帮助吗?

3 个信源
路线图上的下一篇 · 阶段 1: 基础认知一本免费书,帮 FDE 应对没有图形界面的客户服务器William Shotts 的《The Linux Command Line》从零讲起,覆盖管道、进程、Vim 和脚本,是和客户连线排障的基本功。