建模之前先看数据
在拟合任何模型之前,先绘制原始分布、散点图和简单的汇总统计——这个习惯能抓住数据错误、单位错误和异常值,否则模型会悄悄把它们吸收并掩盖起来。
数据科学家 · 从数据中寻找规律、构建预测模型——一个2008年才出现的职位名称,建立在三个世纪计数、检验与可视化证据的传统之上。
数据科学家搭建精巧预测模型的流行形象是真实的,但并不完整。从业者调查与第一手记述一致表明,这份工作中寻找、清洗与重塑杂乱数据所耗费的时间,远超多数人所想象的建模环节。
这个领域内部代代相传的手艺,与其说是背诵某个具体算法,不如说是一种有纪律的怀疑精神:在信任任何模型之前先看一眼数据本身,检查一个规律是否在各个子群体内依然成立,并清楚什么时候对利益相关者最诚实的回答是——数据支撑不了那个结论。
假设检验、回归分析,以及理解一个p值或置信区间究竟能说明什么——这份工作中其他一切都建立在这个推断基础之上。
写出足以在规模化场景下提取、清洗与转换数据的代码,而不只是在一个再也不用运行的笔记本里做个原型分析。
把杂乱、不一致的真实世界数据——缺失值、重复记录、不匹配的格式——变成模型或图表真正能用的东西。
为具体问题选择、训练并验证合适的模型,并清楚什么时候一个简单的回归就胜过一个精巧的神经网络。
把一个统计结果转化成图表、备忘录或建议,让非技术出身的高管能够据此行动,既不过度简化,也不掩盖真实的不确定性。
理解一个指标在具体业务或科学领域中真正的含义,从而让分析真正回答了原本被问到的问题。
审阅夜间管道运行情况与关键指标仪表盘,与团队简短同步当天的优先事项。
针对数据仓库编写SQL查询,连接并重塑表格,处理缺失或不一致的值——通常是一个工作日中最大的单一时段。
真正的休息时间,也常常是跨团队问题在被搬上正式会议之前,先在非正式场合被提出来的时候。
搭建或改进一个统计模型,运行一项实验的显著性检验,或深入探究某个指标为何发生变化。
向产品或业务团队展示发现,评审一项A/B测试的结果,或在质询下为一项分析的假设进行辩护。
属于个人的时间,除非临近产品发布或季度业务评审,此时晚上可能会突然收到临时分析请求。
Craft knowledge practitioners actually pass on — not motivation.
在拟合任何模型之前,先绘制原始分布、散点图和简单的汇总统计——这个习惯能抓住数据错误、单位错误和异常值,否则模型会悄悄把它们吸收并掩盖起来。
一旦按某个相关类别拆分数据,整体趋势可能会完全反转——这种现象被称为辛普森悖论,得名于统计学家爱德华·H·辛普森1951年的一篇论文。
反复用同一份留出数据检验表现,再据此调整模型,会悄悄地把那份数据的信息泄漏进模型里——只碰一次,才能让最终结果保持诚实。
真实项目里,数据准备与建模的比例通常更接近80%比20%,而不是反过来——按相反的假设规划时间表,是项目延期的常见原因。
一个基线模型——有时甚至只是一条规则或一个线性模型——能够说明更复杂的模型究竟多带来了多少价值,而且它本身往往就足够好,可以直接上线。
一个出人意料的相关性,更常是某个隐藏的第三变量造成的假象,而非真正的发现——在展示结果之前,主动寻找还有什么能解释它。
数据处理与经典机器学习中占主导地位的语言,pandas用于处理表格数据,scikit-learn用于标准建模算法。
用于从关系型和云数据仓库——Snowflake、BigQuery、Redshift——中提取数据的查询语言,多数公司的数据实际就存放在那里。
探索性分析的标准交互环境,让数据科学家能在同一份文档中运行代码、查看图表并做笔记。
商业智能仪表盘工具,用于把一份完成的分析变成非技术利益相关者无需写代码就能探索与监控的东西。
代码、以及日益增多的模型的版本控制,再加上存放数据、运行超出笔记本电脑处理能力的训练任务的云基础设施。
进行大量统计比较、只报告其中越过显著性阈值的那一个,会产生无法复现的假发现——这是一种有据可查的失败模式,称为p值操纵。
无意中纳入了一个编码了预测结果本身的特征,会在离线阶段产生不切实际的优异结果,一旦模型运行在真正未见过的生产数据上就会崩溃。
用精心调优的机器学习模型去解决一个简单的SQL查询或电子表格公式本就能同样好地回答的问题,既浪费精力,也可能错过真正的业务问题。