更多博客
博客入门

数据科学项目快速启动

Data Science Project Quick-Start

AI 导读

这篇博客文章分享作者作为数据科学新人时踩过的坑与经验,讲如何从模糊问题走到可用原型。文中强调先理解项目意图和背景,举例说明要问清预期业务收益、现状问题以及为何现在要做,并以推荐引擎中“互动”指标(点击还是购买)如何决定训练标签来说明指标定义的影响。适合刚起步做数据科学项目的人阅读。

分级
值得看
收录时间
2026-10-29

中文精读

原文约 1,568 词 · 7 节

  1. 从模糊问题到可用原型:写作缘起

    • 作者回顾自己做数据科学新人时,一上手就训练机器学习模型,忽略了业务目标、上下文和成功指标。
    • 当时的流程缺乏条理,可复现性和良好工程习惯几乎不在考虑范围内,早期省下的时间在生产阶段付出了高昂代价。
    • 经过若干错误和导师指导后,作者总结了如何有效启动数据科学项目的经验,目标是让读者从模糊问题走到可用原型,不必重蹈他的覆辙。
    • 原文开头的站点导航与标签、阅读时长等信息与正文无关,略去。
  2. 理解意图与上下文

    • 先弄清项目背后的意图,也就是“为什么”,可直接追问:预期的客户或业务收益是什么、现状有什么问题、为什么现在做这件事很重要。
    • 以电商推荐引擎为例:若“提升互动”被定义为购买而非点击,标签选择就不同;若目标是收入而非转化,可能需按商品价格对购买标签加权,类似 YouTube 按观看时长给视频加权。
    • 要尽量多收集上下文:同样一个特征存储(feature store)需求,供全组织使用就要可扩展、可伸缩、文档齐全,仅供单个应用临时使用则可以粗糙、投入少,甚至直接拒绝。
    • 理解上下文的价值在于把方案的范围界定得恰到好处。
  3. 定义需求、约束与指标

    • 需求要从客户或业务视角描述收益:改进搜索可要求降低改写查询和放弃查询的比例;做推荐器要提升部件上的点击和归因购买;自动化人工分类则设定高置信度自动分类占比与节省人力。
    • 需求也可写成约束:保险欺诈检测若每条命中都要人工核查,可限制误报率低于 25%;在推荐中引入冷启动新品(探索-利用)时,可约束整体转化率下降不超过 5%。
    • 项目初期就应考虑生产要求:如延迟低于 80ms@99 分位、吞吐 8000 次/秒,可排除难以规模化部署的技术;没有实时特征存储就做不了基于会话的推荐,没有 GPU 集群预算可能要从更简单的浅层模型起步。
    • 约束虽有限制,但能收窄搜索空间、省去对不可行方案的评估,让团队在除约束之外的空间里自由创新。
    • 衡量需求需要一组指标,可能需要先用自家产品(dogfooding)体会客户体验。例如推荐部件每页推荐 100 个商品时可用 hit@100 或 ndcg@100,但实际屏幕上只显示 5 个、需滑动查看,于是把 k 改为 5,更贴合体验也更可能和线上 A/B 指标相关。
  4. 尽早深挖数据

    • 最好在需求定稿前就看数据,数据探索可能显示原定需求过于勉强。
    • 以按标题和图片做商品分类为例:检查数据会发现部分商品图片与标题相同却分属不同类目(如同款 iPhone 手机壳被放在两个类目路径下),此时与其直接建模得到较差准确率,不如先做标签清洗和类目树重构。
    • 可在数据探索阶段做快速的机器学习基线,耗时一两天即可,基线能暴露达成目标指标的潜在难度。
    • 示例:相关方要求欺诈检测模型召回率和精确率均超过 95%,而基线只有 60%;从 60% 到 95% 虽非不可能,但可能是多年的艰巨工作,因此需要管理预期、调整目标指标并在召回与精确之间取舍。
  5. 请教领域专家、论文与开源代码

    • 快速熟悉陌生问题的捷径是观察别人怎么做。
    • 要自动化人工流程(如保险理赔欺诈检测)时,坐到调查员身边学习其判断启发式,并把这些启发式转成机器学习特征。
    • 遇到陌生的机器学习问题,可阅读相关论文和技术博客了解他人做法;尝试新算法或模型时,可在 GitHub 找开源实现,或在 HuggingFace 找现成的预训练模型。
  6. 标准化并自动化实验流程

    • 早期实验和原型像多数数据科学家一样在 Jupyter notebook 中进行,作者靠每周重构 notebook 防止其变得过于混乱。
    • 跨 notebook 常用的代码片段重构进 .py 文件(如 metrics.py、plots.py、logger.py),而非复制粘贴单元格;手工步骤和注释掉的单元格会被清理,因为它们几个月后就会被遗忘。
    • 最终目标是 notebook 能从头到尾无人工干预地运行,并在末尾输出指标与图表。
    • 能自动化的尽量自动化:需要大量超参数调优的方法(如提升树、深度学习)作者用 Hyperopt,也提到 Optuna 和 Tune 等较新框架;指标跟踪用免费易用的 MLFlow;还可用 Papermill 参数化 notebook,让每次实验在独立 notebook 中运行。
  7. 收尾:这样起步之后

    • 做到以上各步后,团队会对业务意图、需求与约束有良好理解,对数据有感觉,手上有初始的论文与代码可参考,也有能快速迭代的实验流程。
    • 此后便可更深入分析数据、尝试越来越复杂的技术,确信自己在解决正确的问题并交付可用的方案。
    • 文末的引用信息、分享按钮、相关标签与订阅提示属于页面附属内容,不属于正文。