假设你打算开一家餐厅。你不会一上来就拿起锅铲炒菜,而是会先想清楚:开给谁吃?主打什么菜?预算多少?——这叫“商业理解”。接着你去看市场上的食材供应:有哪些食材、质量如何、能不能稳定供货——这叫“数据理解”。食材买回来,要挑拣、清洗、切配——这叫“数据准备”。然后才是下锅烹饪——“建模”。菜做好了不能直接端给客人,得先试菜,请朋友来尝,咸了淡了赶紧调整——这叫“评估”。最后正式开业,每天根据顾客反馈微调菜单——这叫“部署”。这一整套从“冒出一个念头”到“餐厅正常运转”的路线图,就是 CRISP-DM:数据科学项目生命周期。它最妙的地方在于:你随时可以掉头——尝了一口发现太咸,就回后厨调整,而不是硬着头皮把菜端出去。

岗位关联

掌握 CRISP-DM 与 TDSP,你就能把 AI 项目从“看天吃饭的私房菜”变成“可复制、可规模化的连锁餐厅”——这是 AI 项目经理和算法工程师从单兵作战走向规模化交付的核心能力。

目录
  1. 可视化演示
  2. CRISP-DM 六阶段全景
  3. 商业理解阶段
  4. 数据理解与准备
  5. 建模与评估
  6. 部署与运维
  7. TDSP框架协作
  8. MLflow工具链
  9. 项目管理实践
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

动态演示CRISP-DM的核心机制,通过采集/分析/决策/反馈四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

CRISP-DM:CRIS CRISP-DM六阶段模型总览 商业理解与数据理解阶段 核心机制可视化 CRISP-DM整体架构与关键组件

CRISP-DM 六阶段全景

开餐厅最怕“想起一出是一出”:今天想开火锅店,明天听说奶茶赚钱就改主意,食材买到一半才发现厨房根本放不下。老练的餐饮人心里都有一张地图——选址、进货、后厨、前厅,每步做什么、谁负责、怎么验收,清清楚楚。地图不能保证你不走弯路,但能保证你随时知道自己在哪。

数据科学项目也一样。1996 年,IBM 等公司联合提出 CRISP-DM(跨行业数据挖掘标准流程),把数据项目拆成六个阶段:商业理解、数据理解、数据准备、建模、评估、部署。它像一张通用菜单,任何行业的 AI 项目都能照单点菜,从银行风控到电商推荐,无一例外。

六个阶段不是直线流水线,而是环形路线图。项目进行中,你随时可能因为新发现而掉头:数据理解时发现数据质量太差,就回商业理解调整目标;评估不达标,就回建模甚至数据准备返工。这种“进退自如”的设计,正是它三十年来经久不衰的原因——项目是迭代的,不是一次性的。把六个阶段各自耗时相加,就是项目的总工期:

老板手册上那句话仍然成立:地图不保证你不走弯路,但保证你知道自己在哪。接下来五节,我们拿着这张“餐厅地图”,把六个阶段逐一拆开。

T总=∑i=16Ti\displaystyle T_{\text{总}} = \sum_{i=1}^{6} T_i
总工期等于六个阶段耗时的总和,但因为可以回环迭代,某些阶段会被重复计算多次——这正是真实 AI 项目的常态。
  1. 总工期$T_{\text{总}}$ 表示整个项目从启动到稳定运行的总时长,是项目排期和预算的依据。
    T总\displaystyle T_{\text{总}}
  2. 六阶段求和$\sum_{i=1}^{6} T_i$ 把六个阶段的耗时逐一相加,像把餐厅筹备的每一项工时累加出总工日。
    ∑i=16Ti\displaystyle \sum_{i=1}^{6} T_i
  3. 回环的影响$T_i$ 可能被多次计入——比如评估不达标回到建模,建模耗时就要算两遍,这就是迭代的代价。
    Ti\displaystyle T_i

商业理解阶段

开业前第一件事不是找厨师,而是回答三个问题:顾客是谁?他们要什么?餐厅凭什么赚钱?老板要是只说“我想开一家网红店”,这店八成活不过一年——定位不清,后面的选址、菜单、定价全是盲人摸象。

对应到 AI 项目,“商业理解”就是先定义业务问题:要解决什么痛点?目标是什么?成功长什么样?投入产出怎么算?行业里大量项目夭折,不是模型不行,而是从一开始就没问对问题——把“降低坏账率”错写成“做一个评分模型”,技术再牛也救不回来。

这一阶段的交付物包括:业务目标、成功标准、项目范围、风险清单,以及一份 ROI 测算。ROI 是立项时最重要的数字,它回答“这项目到底值不值得做”:

商业理解就像餐厅的“选址与定位”。定位错了,后面再努力都是南辕北辙——模型再准,解决的若不是业务问题,就一文不值。所以 CRISP-DM 把它放在第一站,不是巧合,是警戒。

ROI=R−CC×100%\displaystyle \text{ROI} = \frac{R - C}{C} \times 100\%
ROI 表示每投入 1 元成本能赚回多少净收益。如果 ROI 算出来是负数,这个项目从一开始就不该启动。
  1. 预期收益$R$ 是项目上线后带来的可量化收益,比如每年节省的人力成本、减少的坏账金额。
    R\displaystyle R
  2. 项目总成本$C$ 是从商业理解到部署全过程的投入,包括人力、算力、数据采购等。
    C\displaystyle C
  3. 净收益占比$(R - C) / C \times 100\%$ 表示净收益占成本的百分比,比值越高,立项理由越充分。
    R−CC×100%\displaystyle \frac{R - C}{C} \times 100\%

数据理解与准备

定位想清楚了,接下来是采购。经验丰富的采购员拿到供货单,先不看价格,而是问:这批食材新不新鲜?有没有烂的、缺的?供应商能稳定供货吗?食材进库后还要分级、清洗、切配,把废料剔除干净。

“数据理解”就是对数据的“验货”:数据从哪来、字段什么含义、质量如何、缺失多少、分布是否偏斜。摸清家底之后进入“数据准备”:清洗去重、缺失补全、标注类别、特征工程。行业里有句老话:AI 项目 70%~80% 的时间花在数据上,说的就是这两个阶段。

数据质量可以量化,最基础的指标是完整率——它回答“这批数据有多少能直接用”:

“巧妇难为无米之炊”——但反过来,米再多、全是发霉的,也做不出好菜。数据准备阶段最不起眼,却最决定成败:菜切得好不好,直接决定成品卖相和口感。

完整率=N有效N总量×100%\displaystyle \text{完整率} = \frac{N_{\text{有效}}}{N_{\text{总量}}} \times 100\%
完整率是数据质量的体检报告。低于 90% 就要警惕,要么补采数据,要么回到商业理解阶段调低预期。
  1. 有效记录数$N_{\text{有效}}$ 是字段完整、取值合理、可用于建模的记录条数,相当于挑拣后能下锅的好食材。
    N有效\displaystyle N_{\text{有效}}
  2. 总记录数$N_{\text{总量}}$ 是采集到的全部原始记录,包括缺失、重复、异常的部分。
    N总量\displaystyle N_{\text{总量}}
  3. 百分比转换两者相除再乘 100%,得到完整率;数值越接近 100%,数据越“干净”。
    N有效N总量×100%\displaystyle \frac{N_{\text{有效}}}{N_{\text{总量}}} \times 100\%

建模与评估

食材备齐,轮到主厨上场。主厨不会只凭一道菜打天下:凉菜、热菜、汤品各有配方。他会先做几个版本,请后厨同事试吃,记下哪个版本最受欢迎,再针对性地调整火候和调料。

“建模”就是主厨试菜:根据问题类型选择算法——分类、回归、聚类各有各的“菜系”;训练多个候选模型并记录表现。“评估”则是正式试菜会:用业务方认可的标准来打分,而不是模型自己说了算。

分类问题最常用的综合指标是 F1 分数,它由精确率和召回率合成。精确率关心“端上来的菜是不是客人点的”,召回率关心“客人点的菜有没有端上来”:

一道菜光好看不行,还得入味;一个模型光 loss 低没用,还要看业务指标。评估阶段是“商业理解”和“技术实现”握手的地方——主厨和老板在试菜桌前达成一致:这道菜,可以上菜单了。

F1=2×P×RP+R\displaystyle F1 = \frac{2 \times P \times R}{P + R}
F1 是精确率 P 和召回率 R 的调和平均,范围在 0 到 1 之间。它防止只用某一个指标自欺欺人——两者都高,F1 才高。
  1. 精确率 P预测为正例的结果中,真正正确的比例,看的是“准不准”。
    P=TPTP+FP\displaystyle P = \frac{TP}{TP + FP}
  2. 召回率 R真实正例中被模型找回来的比例,看的是“全不全”。
    R=TPTP+FN\displaystyle R = \frac{TP}{TP + FN}
  3. 调和平均$2PR / (P + R)$ 对两者取调和平均,任一项偏低都会把 F1 拉低,避免注水指标。
    2×P×RP+R\displaystyle \frac{2 \times P \times R}{P + R}

部署与运维

菜通过试菜,正式写进菜单。但开业只是开始:今天客人嫌辣,明天供应链缺货,每周都得根据顾客反馈调整菜单。一家餐厅的生死,往往取决于开业后第一个月的运营,而不是开业当天的热闹。

“部署”是让模型上线服务真实业务:接入 API、嵌入业务流程、对接报表系统。之后的“运维”是开业后的日常:监控模型效果、收集新反馈、发现效果下滑就补充数据重新训练。CRISP-DM 的环形箭头画到这里,正好转回起点——新一轮循环已经开始。

运维关注的核心指标之一是服务可用率,它衡量模型服务“营业时间”够不够长:

招牌菜每周都在微调,模型也一样。部署不是终点,而是新一轮“商业理解—数据—建模”循环的起点。那些以为“上线即结束”的项目,往往死在开业后的第二个月。

可用率=T在线T在线+T故障×100%\displaystyle \text{可用率} = \frac{T_{\text{在线}}}{T_{\text{在线}} + T_{\text{故障}}} \times 100\%
可用率要求通常在 99% 以上,意味着每 100 小时服务,故障时间不能超过 1 小时。
  1. 在线时间$T_{\text{在线}}$ 是服务正常响应用户请求的累计时间,相当于餐厅正常营业的时长。
    T在线\displaystyle T_{\text{在线}}
  2. 故障时间$T_{\text{故障}}$ 是服务不可用、请求超时或报错的时间,相当于餐厅突然停业。
    T故障\displaystyle T_{\text{故障}}
  3. 比值计算在线时间除以总时间(在线+故障),得到可用率;目标是无限接近 100%。
    T在线T在线+T故障×100%\displaystyle \frac{T_{\text{在线}}}{T_{\text{在线}} + T_{\text{故障}}} \times 100\%

TDSP框架协作

一家餐厅靠一位天才主厨可以撑起来,十家连锁店却不能指望每家店都有天才。连锁品牌靠的是“标准作业手册”:岗位分工、流程模板、出品标准,人来人往,味道不变。

微软提出的 TDSP(团队数据科学过程),就是 AI 界的“连锁餐厅手册”。它在 CRISP-DM 单个项目流程之上,补上了团队协作的维度:明确数据科学家、工程师、项目经理、业务方各自的职责;提供标准项目结构、代码模板、文档模板;定义项目的启动、执行、交付规范。

TDSP 的核心追求是“交付稳定性”——让每个项目不依赖某个天才也能按期交付。交付稳定性可以用标准差来衡量,它描述各次交付耗时的波动程度:

TDSP 没有取代 CRISP-DM 的路线图,而是给路线图配上了“岗位编制和作业手册”。小项目可以靠个人英雄主义,规模化交付必须靠标准化——这是从私房菜走向连锁品牌的必经之路。

σ=1n∑i=1n(ti−tˉ)2\displaystyle \sigma = \sqrt{\frac{1}{n}\sum_{i=1}^{n}(t_i - \bar{t})^2}
标准差 σ 越小,说明团队每次交付的节奏越稳定。TDSP 的标准化流程,本质上就是在把 σ 一点点压小。
  1. 单次交付耗时$t_i$ 表示第 $i$ 个迭代或项目的实际交付时长,比如从需求冻结到上线用了几天。
    ti\displaystyle t_i
  2. 平均交付时长$\bar{t}$ 是 $n$ 次交付耗时的平均值,代表团队当前的“正常节奏”。
    tˉ=1n∑i=1nti\displaystyle \bar{t} = \frac{1}{n}\sum_{i=1}^{n} t_i
  3. 标准差$\sigma$ 是各次耗时偏离平均值的程度;偏差越大,说明交付越“看运气”,越依赖个人。
    1n∑i=1n(ti−tˉ)2\displaystyle \sqrt{\frac{1}{n}\sum_{i=1}^{n}(t_i - \bar{t})^2}

MLflow工具链

连锁餐厅的后厨都有一本魔法账本:每道菜的配方版本、每次实验的试吃记录、每批食材的来源,全部记在册。研发新品时翻翻旧账,就能避免重复踩坑;主厨离职,菜的味道也带不走。

MLflow 就是 AI 项目的魔法账本。它提供四大能力:实验追踪——自动记录每次训练的入参、代码、指标;模型注册——给每个模型版本编号、标注状态;模型部署——把注册模型一键发布到服务环境;模型管理——监控线上模型并支持回滚。

在实验记录里挑最佳模型,本质上是一个“选最优”的问题——从候选模型集合中挑出评估指标最好的那个:

没有账本的厨房,主厨一走,菜的味道就散了;没有 MLflow 的团队,核心成员一离职,实验记录和模型版本就变成一地鸡毛。工具不是锦上添花,而是让项目“可延续、可复现”的底线保障。

m∗=arg⁡max⁡m∈MF1(m)\displaystyle m^{*} = \arg\max_{m \in \mathcal{M}} F1(m)
这个式子说:在所有候选模型组成的集合 M 里,找出让 F1 最大的那个模型 m*。MLflow 的模型注册表帮你自动完成这一步。
  1. 候选模型集合$\mathcal{M}$ 是所有实验产生的候选模型,如同后厨研发出来的一排配方。
    M\displaystyle \mathcal{M}
  2. 评估函数$F1(m)$ 是模型 $m$ 在验证集上的 F1 分数,代表这个配方的“试吃评分”。
    F1(m)\displaystyle F1(m)
  3. 取最大值$\arg\max$ 返回使 F1 最大的模型 $m^{*}$,即“挑得分最高的那个配方上菜单”。
    arg⁡max⁡m∈MF1(m)\displaystyle \arg\max_{m \in \mathcal{M}} F1(m)

项目管理实践

餐厅开业后,老板每周一要开例会:后厨报备备货,前厅反馈评价,财务亮出营业额曲线。大家对着同一块白板,看进度、排优先级、定下周动作。没有这个节奏,团队就会各忙各的,像一锅没搅动的粥。

AI 项目管理实践有几条公认的做法:迭代交付——把项目切成一到两周的小迭代,每轮交付可验证的成果,而不是憋三个月放大招;文档规范——用 CRISP-DM/TDSP 的模板沉淀需求、数据字典、模型卡;沟通协作——业务、算法、工程三方定期对齐,防止“我以为你懂了”。

迭代节奏是否健康,常用燃尽率来跟踪——它回答“这个迭代还剩多少活”:

项目管理不是“管人”,而是让每个人都知道:我们在地图上的哪个位置,下一步去哪。有了 CRISP-DM 的地图、TDSP 的手册、MLflow 的账本,再加上这套例会节奏,AI 项目才能真正从“手工作坊”走向“连锁品牌”。

燃尽率=N已完成N总任务×100%\displaystyle \text{燃尽率} = \frac{N_{\text{已完成}}}{N_{\text{总任务}}} \times 100\%
燃尽率是迭代结束时的“收工比例”。如果迭代结束时燃尽率达不到 100%,说明排期估时出了问题,下次要调整。
  1. 已完成任务$N_{\text{已完成}}$ 是本迭代中验收通过的任务数,相当于白板上被划掉的任务卡。
    N已完成\displaystyle N_{\text{已完成}}
  2. 总任务$N_{\text{总任务}}$ 是迭代计划内的全部任务数。
    N总任务\displaystyle N_{\text{总任务}}
  3. 比值计算两者相除得到燃尽率,配合每日看板跟踪,能提前发现进度风险。
    N已完成N总任务×100%\displaystyle \frac{N_{\text{已完成}}}{N_{\text{总任务}}} \times 100\%

AI 应用场景

银行信贷风控模型的全生命周期管理

阶段:CRISP-DM 六阶段全流程

解决的问题:传统风控靠人工规则,业务和技术各说各话,模型上线后往往不解决实际问题。用 CRISP-DM 从商业理解开始,先明确“坏账率降低 15%”的成功标准,再倒推数据、建模和评估方案,避免技术自嗨。

具体案例:某银行小微贷项目立项时,商业理解阶段明确了目标客群与坏账容忍度;数据理解阶段发现历史数据中“拒绝样本”缺失导致模型偏差,于是回头调整采样方案;建模阶段对比 3 个算法,评估阶段用 F1 与业务通过率联合把关;部署后每月监控客群分布漂移,发现异常就触发重训。

电商推荐系统的 TDSP 与 MLflow 协同

阶段:团队协作与实验管理

解决的问题:多个算法工程师并行做实验,各自为战,模型版本混乱、实验无法复现。用 TDSP 统一项目结构和文档模板,用 MLflow 统一追踪实验、注册模型、灰度发布,让团队协作从“个人英雄主义”变成“流水线作业”。

具体案例:某电商团队 5 名算法工程师并行优化召回和排序模型,MLflow 记录 200 余次实验,模型注册表管理 3 个线上版本;每次灰度发布都能一键回滚,实验报告自动生成,新人入职一周就能接手全部工作。

智能客服机器人的持续迭代

阶段:部署与运维(闭环迭代)

解决的问题:模型上线后效果会因业务变化而衰减,必须持续监控、反馈、重训。CRISP-DM 的环形结构恰好指导这种“部署后回到数据理解”的循环。

具体案例:某客服机器人上线后意图识别准确率从 90% 掉到 85%,监控发现新业务上线带来了大量新话术。团队回到“数据理解”收集新对话,重新标注意图,补充训练后准确率回升到 93%——整个过程完全按照六阶段闭环走了一遍。

Python 演示

python73 行
# CRISP-DM 项目生命周期管理器class CrispDMProject:    def __init__(self, name):        self.name = name        self.phases = {}       # 阶段 -> 状态        self.deliverables = {} # 阶段 -> 交付物        self._phase_count = 0     def enter_phase(self, phase, deliverable):        self._phase_count += 1        self.phases[phase] = "running"        self.deliverables[phase] = deliverable        return self     def complete_phase(self, phase):        if phase in self.phases:            self.phases[phase] = "done"        return self     def progress(self):        done = 0        for status in self.phases.values():            if status == "done":                done += 1        return done / max(len(self.phases), 1)     def summary(self):        lines = []        for phase, status in self.phases.items():            mark = "v" if status == "done" else ">"            lines.append("  [{}] {} : {}".format(mark, phase, self.deliverables[phase]))        return "\n".join(lines)  def evaluate_model(y_true, y_pred):    # 计算混淆矩阵四要素: TP FP FN TN    tp = sum(1 for t, p in zip(y_true, y_pred) if t == 1 and p == 1)    fp = sum(1 for t, p in zip(y_true, y_pred) if t == 0 and p == 1)    fn = sum(1 for t, p in zip(y_true, y_pred) if t == 1 and p == 0)    tn = sum(1 for t, p in zip(y_true, y_pred) if t == 0 and p == 0)    accuracy = (tp + tn) / len(y_true)    precision = tp / max(tp + fp, 1)    recall = tp / max(tp + fn, 1)    f1 = 2 * precision * recall / max(precision + recall, 1e-9)    return accuracy, precision, recall, f1  def business_metrics(revenue, cost):    # 商业理解阶段的 ROI 与利润率    roi = (revenue - cost) / cost * 100    margin = (revenue - cost) / revenue * 100    return roi, margin  if __name__ == "__main__":    project = CrispDMProject("customer-service-bot")    project.enter_phase("Business Understanding", "cut support cost by 30%")    project.complete_phase("Business Understanding")    project.enter_phase("Data Understanding", "collect 80k dialogs")    project.enter_phase("Data Preparation", "clean and label intents")    project.enter_phase("Modeling", "train intent classifier")    project.enter_phase("Evaluation", "F1 reaches 0.91")    project.enter_phase("Deployment", "gray release to production")    print(project.summary())    print("overall progress: {:.0%}".format(project.progress()))     y_true = [1, 0, 1, 1, 0, 1, 0, 0]    y_pred = [1, 0, 1, 0, 0, 1, 1, 0]    acc, p, r, f1 = evaluate_model(y_true, y_pred)    print("acc={:.2f} precision={:.2f} recall={:.2f} f1={:.2f}".format(acc, p, r, f1))     roi, margin = business_metrics(500000, 180000)    print("ROI={:.1f}% margin={:.1f}%".format(roi, margin))
目的:用 CRISP-DM 六阶段管理一个 AI 项目,并演示评估阶段的 F1 计算与商业理解阶段的 ROI 测算,三部分对应正文的三大核心环节。
  1. self.phases[phase] = "running"每进入一个阶段就登记状态,像餐厅项目板上贴一张任务卡。
  2. return self返回自身实现链式调用,一行代码可以连续登记多个阶段。
  3. done / max(len(self.phases), 1)用 max 防止除零;进度 = 已完成阶段 ÷ 已登记阶段。
  4. sum(1 for t, p in zip(y_true, y_pred) if t == 1 and p == 1)逐个对比真实值和预测值,统计真正例 TP。
  5. tp / max(tp + fp, 1)精确率分母加保护,避免数据极端时“除零崩溃”。
  6. if __name__ == "__main__":只有直接运行时才执行演示流程,被 import 时不跑。

常见误区

误区我以为 CRISP-DM 就是瀑布流程,商业理解做完做数据理解,数据理解做完做数据准备,一步都不能跳,就像工厂流水线,错了也只能将错就错。

正解CRISP-DM 的箭头是双向的,它明确允许甚至鼓励回环:数据质量差就回到数据理解重新收集,评估不达标就回到建模甚至数据准备返工。地图的意义不是限制你,而是让你知道每次掉头该回哪个路口。就像餐厅试菜发现太咸,第一步不是硬着头皮上菜,而是回后厨调整配方。

为何常见:很多教程把六阶段画成从上到下的流程图,让人误以为是瀑布式;实际上官方图示是环形,强调迭代。

误区我一直以为 AI 项目的大头在建模,天天调参、换模型才是核心工作,数据准备随便弄弄就行。

正解真实工业项目 60%~80% 的时间花在数据准备上。Kaggle 比赛的数据都是清洗好的,容易让人产生“建模是重头戏”的错觉。CRISP-DM 把数据准备单独列为阶段,就是在提醒:功夫在诗外——食材处理不好,主厨再厉害也白搭。

为何常见:算法课程和竞赛都以模型为中心,初学者自然把注意力放在建模上,忽略了数据工程。

误区评估阶段不就是看准确率吗?准确率 95% 以上就是好模型,就可以上线了。

正解评估的核心是回到商业理解定义的成功标准。准确率高但把大量好客户误拒了,银行照样亏钱。评估要同时看技术指标(F1、AUC)和业务指标(成本降了多少、通过率多少),就像试菜会以“顾客满意度”为准,而不是以厨师用了多少种调料为准。

为何常见:技术人习惯用技术指标说话,忘了商业理解阶段定下的成功标准才是最终裁判。

误区模型部署完项目就结束了,就像餐厅开业就算成功,之后不用再管了。

正解部署只是循环的起点。模型会因数据漂移而效果下降,需要持续监控、收集反馈、定期重训。CRISP-DM 是环形,部署之后要么回到数据理解补新数据,要么回到商业理解调整目标。开业后的第一个月才是餐厅生死关头。

为何常见:把 AI 项目类比成传统软件开发“交付即结束”,忽略了模型会随环境变化而衰减。

误区微软搞了个 TDSP,是不是说明 CRISP-DM 过时了?直接用 TDSP 就行。

正解TDSP 是微软基于 CRISP-DM 思路扩展的团队协作框架,它保留了生命周期思想,补充了角色分工、项目结构、模板标准。两者互补:CRISP-DM 告诉你“走哪些路”,TDSP 告诉你“谁开车、车怎么保养”。连锁餐厅既需要路线图,也需要作业手册。

为何常见:名字不同、来源不同,容易误以为是竞争关系;实际上它们是同一套方法论在不同层面的延伸。

面试题

Q1. CRISP-DM 的第一个阶段是什么?

单选题 · easy

  • A.建立特征模型
  • B.商业理解阶段← 正确答案
  • C.数据准备处理
  • D.部署预测系统

答案:B。CRISP-DM 第一站是商业理解,相当于开餐厅先想清楚“为谁开、赚什么钱”,而不是先研究菜谱或进货。建模(A)、数据准备(C)是后面的环节,部署(D)在最后。

Q2. 在餐厅比喻中,数据准备阶段最像哪一步?

单选题 · easy

  • A.决定开什么餐厅
  • B.清洗切配食材← 正确答案
  • C.正式开门营业
  • D.给顾客试菜尝味

答案:B。数据准备是对原始数据的清洗、去重、标注、特征加工,就像把买来的食材挑拣、清洗、切配。选餐厅是商业理解,开门营业是部署,试菜尝味是评估,B 才是唯一对应。

Q3. 实际 AI 项目中耗时占比最高的通常是哪个阶段?

单选题 · mid

  • A.数据准备与清洗← 正确答案
  • B.模型调参与训练
  • C.部署上线与监控
  • D.商业目标复盘

答案:A。工业界公认 60%~80% 的时间花在数据准备上。比赛数据集已经洗干净,容易让人误以为建模最耗时;部署和复盘虽然重要,但占时远不及数据准备。

Q4. CRISP-DM 六阶段之间的环形箭头说明了什么?

单选题 · mid

  • A.只能按顺序执行
  • B.阶段间可回环迭代← 正确答案
  • C.必须从部署开始
  • D.阶段顺序可任意

答案:B。环形箭头表示你可以随时回到前一阶段:数据质量差就回头补数据,评估不达标就回头调模型。它既不是瀑布式(A),也不是从部署开始(C)或随意打乱顺序(D)。

Q5. 在商业理解阶段,谁应该最终确认项目的成功标准?

单选题 · mid

  • A.算法工程师团队
  • B.业务方与决策层← 正确答案
  • C.AI 平台开发人员
  • D.数据标注外包组

答案:B。成功标准回答的是“业务赚没赚到钱”,必须由业务方和决策层拍板,就像餐厅招牌菜的定位由老板定,而不是厨师自己说了算。算法、平台、标注团队负责执行,不负责定义商业目标。

Q6. 评估阶段判断模型能否上线的首要依据是什么?

单选题 · mid

  • A.商业成功标准← 正确答案
  • B.训练集准确率
  • C.模型参数量
  • D.训练时长长短

答案:A。准确率再高,若不带来业务价值(坏账率下降、成本降低),项目依然失败。评估要回到商业理解阶段定义的成功标准,相当于试菜会以顾客满意度为准,而不是以用了多少种调料为准。

Q7. 在 ROI 公式中,C 代表什么?

单选题 · hard

  • A.预测结果数量
  • B.项目投入总成本← 正确答案
  • C.模型参数总量
  • D.训练样本条数

答案:B。C 是 Cost,即项目全生命周期的总投入,包括人力、算力、数据采购。ROI 衡量“每投入 1 元赚回多少”,是商业理解阶段的立项依据。预测数量、参数总量、样本条数都与成本无关。

Q8. 以下哪些属于 CRISP-DM 的六阶段?

多选题 · mid

  • A.商业理解阶段← 正确答案
  • B.数据准备阶段← 正确答案
  • C.模型注册阶段
  • D.建模评估阶段← 正确答案

答案:ABD。六阶段是商业理解、数据理解、数据准备、建模、评估、部署。D 把“建模+评估”合并为一项,语义上属于六阶段;而“模型注册”是 MLflow 的功能,不属于 CRISP-DM 阶段。

Q9. MLflow 在项目生命周期中提供了哪些能力?

多选题 · hard

  • A.实验追踪记录← 正确答案
  • B.模型注册管理← 正确答案
  • C.厨师培训课程
  • D.部署与模型管理← 正确答案

答案:ABD。MLflow 四大组件:实验追踪(记录每次训练的入参与指标)、模型注册(管理版本与状态)、模型部署、模型管理。选项 C 是餐厅比喻的干扰项,与 MLflow 无关。

Q10. 模型部署上线后,运维团队需要持续做哪些工作?

多选题 · hard

  • A.监控模型效果← 正确答案
  • B.收集反馈数据← 正确答案
  • C.定期重训更新← 正确答案
  • D.删除历史日志

答案:ABC。部署后要监控指标是否下滑(数据漂移)、收集新样本、定期重训,形成“部署→监控→再训练”的闭环。历史日志是排查问题的依据,不能删除,反而要妥善保存。