P7-1.1 定义项目问题与输入¶
Section ID:
P7-1.1Version:v2026.08.01
一个 AI 项目的开端不是“先选模型”,而是把观察到的现象变成可检验的问题。这里用渠道流量日志练习:先确认发生了什么,再确定需要哪些输入、比较什么基线,以及哪些结论仍不能下。
从现象到可检验问题¶
假设广告渠道的转化率下降,而自然和搜索渠道相对稳定。不能立刻写成“广告质量变差了”。转化率是转化次数除以访问次数;访问量、渠道构成或时间范围的变化都可能改变这个比例。
| 观察 | 不能直接推出的结论 | 先检查的问题 |
|---|---|---|
| 广告转化率下降 | 广告素材一定失效 | 访问量和转化次数是否足够? |
| 总体转化率变化 | 所有渠道都同方向变化 | 按渠道拆分后仍然如此吗? |
| 某天出现异常 | 新策略已经证明有效 | 与哪个时间基线比较? |
flowchart TD
A["观察到的场景\n广告流量下降,转化率上升"]
B["仓促结论\n广告质量变好了"]
C["检查样本量\n访问量和转化次数是否充足?"]
D["按渠道拆分\n广告、自然、搜索是否不同?"]
E["比较基线\n与7天平均或最近4天比较"]
F["更稳妥的解读\n广告流量变化可能使总体比例改变"]
A --> B
A --> C --> D --> E --> F
固定本节的项目记录¶
本节的问题可以写成:广告渠道的转化率变化,是否超出近期同一渠道的常见波动? 这不是因果结论,而是定义后续检查的范围。
| 记录项 | 本练习中的内容 |
|---|---|
| 输入单位 | 一天、一个渠道的一行日志 |
| 输入字段 | 日期、渠道、访问量、转化次数 |
| 输出 | 转化率、基线差异、异常候选 |
| 基线 | 同一渠道的7天平均,必要时比较最近4天 |
| 保留限制 | 样本量、标签质量、未记录的活动变化 |
flowchart TD
A["项目问题\n广告渠道的转化率为何变化?"]
B["输入记录\n日期、渠道、访问量、转化次数"]
C["比较基线\n按渠道的7天平均"]
D["输出记录\n异常候选、检查问题、下一步"]
E["限制条件\n样本量、标签、时间范围"]
A --> B --> C --> D --> E
用实际日志计算渠道与日期¶
使用同一份 p7-1-traffic-log.zh.csv。代码不会训练模型;它首先把项目问题需要的证据读出来。
输出中的差异只是候选信号。若广告渠道与自身基线相比明显下降,而其他渠道没有相同变化,下一步是检查该渠道的流量构成、活动和记录范围,而不是直接选择更复杂的模型。

为什么分母同样重要¶
转化率 conversions / visits 把两个计数压缩成一个比例。相同的比例变化可能来自很不同的情形:转化次数下降、访问量增加、访问量骤减,或两者一起变化。因此项目记录必须保留原始计数。
| 情形 | 比例可能的表现 | 需要保留的证据 |
|---|---|---|
| 转化次数下降、访问量稳定 | 转化率下降 | 两个原始计数和日期 |
| 访问量激增、转化次数稳定 | 转化率下降 | 流量来源和活动记录 |
| 访问量很小 | 比例剧烈波动 | 样本量和更长时间窗口 |
| 渠道构成变化 | 总体比例变化 | 渠道拆分结果 |
不能因为比例看起来精确,就忘记它来自多少次访问。小样本中的一个转化就可能让当天曲线显得异常。
比较基线,而不是只看最后一天¶
基线回答“与什么相比”。本练习先使用同一渠道前7天的平均,因为跨渠道直接比较会混入不同受众、投放方式和意图。最近4天平均可以作为补充,但必须在记录中写清楚窗口不同。
| 比较 | 能回答的问题 | 不能回答的问题 |
|---|---|---|
| 广告当天与广告7天平均 | 广告自身是否偏离近期水平 | 为什么发生偏离 |
| 广告与自然渠道 | 渠道水平是否不同 | 两渠道是否具有相同受众 |
| 7天与最近4天平均 | 变化是否集中在最近窗口 | 策略是否造成变化 |
学习检查¶
- 能否用一句话写出项目问题,而不把观察当成原因?
- 能否说明一行输入日志的单位和字段?
- 能否指出转化率的分子与分母,并解释为何两者都要保存?
- 能否说明7天基线与最近4天基线各自回答什么?
- 能否为广告异常写出一个下一步检查,而不是直接提出模型替换?
项目回顾格式¶
这样的格式把事实、解释和行动分开。它为后续的基线设计和异常比较留下可复查的起点。
用同一行记录做三种读取¶
同一份渠道-日期日志可以按不同单位汇总。单位改变时,问题也随之改变;不能把三个结果当成彼此矛盾的答案。
| 读取单位 | 一行代表什么 | 主要问题 | 风险 |
|---|---|---|---|
| 日期汇总 | 同一天所有渠道合计 | 总体转化和错误率是否变化? | 渠道间的相反变化可能相互抵消。 |
| 渠道-日期 | 某渠道在某一天 | 哪个渠道、哪一天需要检查? | 单日样本可能太小。 |
| 渠道区间 | 某渠道在基线与最近区间 | 该渠道的近期水平是否不同? | 不能由此证明原因。 |
例如,广告渠道访问量下降时,总体转化率可能改变,即使自然和搜索渠道几乎没有变化。日期汇总告诉我们“整体发生了什么”;渠道-日期告诉我们“从哪里开始查看”;渠道区间比较告诉我们“与什么历史水平比较”。
日期汇总的检查问题¶
把同一天三个渠道合并时,分子和分母都要先相加,再计算比例。不要把三个渠道的转化率简单平均,因为各渠道的访问量不同。
| 正确的日期汇总 | 不应做的汇总 |
|---|---|
当天注册总数 / 当天访问总数 | (广告率 + 自然率 + 搜索率) / 3 |
| 保留当天错误总数和访问总数 | 只保留一个无分母的错误率 |
| 标记分母很小的日期 | 将每个日期视为同等可靠 |
日期层面的信号可以启动调查,但不能代替渠道层面的记录。当总体指标改变时,先问哪个渠道贡献了变化,而不是为所有渠道写同一种解释。
渠道-日期的检查问题¶
渠道-日期记录特别适合寻找最近区间中较低的转化率候选。候选不是异常的同义词;它只是值得回到原始计数、来源和活动记录的一行。
如果广告渠道连续多日低于自身基线,而自然和搜索渠道稳定,这会让“广告渠道特有因素”成为较合理的下一步问题。它仍然不是广告创意、受众或算法的因果证明。
在基线区间与最近区间之间比较¶
本练习用 2026-06-08 把日志分成两个区间。切分日期是分析设定的一部分:改变它会改变哪些行属于基线,哪些行属于最近区间。因此必须在项目记录中写明。
| 比较记录 | 应包含的字段 |
|---|---|
| 日期汇总基线 | 总访问量、总注册数、总错误数、转化率、错误率 |
| 日期汇总最近区间 | 同一组字段和明确的日期范围 |
| 渠道基线 | 每个渠道的区间汇总 |
| 渠道最近区间 | 每个渠道的区间汇总 |
| 差异 | 最近值减去基线值及其解释边界 |
使用相同的区间定义,才能判断广告变化是否只是整体趋势的一部分。若切分日期、数据过滤或指标定义改变,就应把它记录为新的比较,而不是与旧结果直接并列。
一个可复查的比较摘要¶
这类摘要比“广告表现变差”更有用,因为后来的人可以知道比较单位、基线范围和未解决的问题。
控制变量的练习¶
为了理解项目问题如何依赖设定,可一次只改变一个变量。
- 将切分日期从
2026-06-08改为其他日期,重新记录基线和最近区间。 - 只对最近广告行增加或减少错误数,查看错误率是否改变而转化率保持不变。
- 用最近4天而非前7天作为比较窗口,并明确这是不同的基线。
- 先按日期汇总,再按渠道汇总,说明两个结果各自回答的问题。
- 选择一个低转化率候选,写出还需要哪一列证据才能解释它。
一次修改一个变量,才能知道结论为何改变。若同时改变日期范围、指标和数据行,得到的差异无法归因于任何一个设定。
常见的过度解读¶
| 过度解读 | 更稳妥的表述 |
|---|---|
| 广告转化率下降,广告一定无效。 | 广告转化率低于当前基线;需要检查分子、分母和渠道上下文。 |
| 总体转化率上升,所以每个渠道都改善。 | 总体比例变化;必须查看渠道拆分。 |
| 最近一天最差,所以应立刻调整策略。 | 该行是候选;需要比较样本量和近期连续模式。 |
| 错误率上升证明模型造成问题。 | 错误记录可能变化;需要确认采集、流量和定义。 |
项目开始阶段的价值在于缩小错误的问题。一个清楚的“尚未知道什么”能防止后面的模型实验建立在错误假设上。
最终学习检查¶
| 检查项 | 能回答的问题 |
|---|---|
| 问题表述 | 是否把观察、比较对象和边界写清楚? |
| 输入记录 | 是否保留访问量、注册数和错误数,而不只保留比例? |
| 单位 | 是否区分日期、渠道-日期和渠道区间? |
| 基线 | 是否写明窗口和切分日期? |
| 异常候选 | 是否把候选与原因结论分开? |
| 下一步 | 是否指出一个可验证的检查,而不是直接更换模型? |
如果这些问题都能回答,项目就有了可以复查的起点。下一节将用这个记录设计基线并比较不同的异常判断方式。
读取程序输出时保留的内容¶
程序给出广告、自然和搜索渠道各自的7天基线、最后一天的转化率,以及二者差异。输出不是排名表;它是让读者回到同一数据记录的索引。
| 输出字段 | 读取方式 | 不能省略的上下文 |
|---|---|---|
baseline_7_day | 同渠道前7天的平均比例 | 该窗口中的访问量和注册数 |
latest_rate | 最后一天的比例 | 最后一天的分子和分母 |
difference | 最后一天减去基线 | 并非因果效应或显著性检验 |
latest_date | 需要回查的日期 | 渠道、活动和数据采集状态 |
广告渠道的差异更大时,正确的下一句是“广告渠道值得优先检查”,而不是“广告导致了问题”。自然和搜索渠道的小变化是对照信息,但它们不控制所有外部因素。
错误率也需要自己的问题¶
错误率由错误数除以访问量得到。它可用于发现记录、服务或页面体验相关的候选信号,但不能与转化率混成一个未定义的总分。
| 指标 | 分子 | 分母 | 需要追问的问题 |
|---|---|---|---|
| 转化率 | 注册或转化数 | 访问量 | 用户是否完成目标动作? |
| 错误率 | 错误数 | 访问量 | 记录到的错误是否在特定渠道或日期集中? |
| 访问量 | 无 | 无 | 流量构成是否改变了比例的解释? |
若转化率下降而错误率稳定,下一步仍可能是检查受众或意图。若错误率同时升高,需再检查页面、采集或服务状态。两种模式都只能打开问题,不能单独关闭诊断。
一份完整的开始记录¶
这份记录可在任何模型训练之前建立。它使后续的基线、阈值和错误分析有明确的比较对象。
提交前的五个问题¶
- 比例的分母是否被完整记录?
- 每个比较是否使用了明确的日期范围?
- 渠道差异是否与总体汇总分开阅读?
- 候选行是否保留了可回查的日期和渠道?
- 解释是否仍然区分观察到的差异与尚未验证的原因?
若其中任一项无法回答,先补充记录,再进行基线或异常判断。
项目问题不是最终答案;它是让后续答案可以被检查的边界。
在下一次运行前保存输入文件版本。 保存切分日期和所有手动调整。 保留原始计数,即使报告中显示百分比。 让另一位读者能从候选行回到原始日志。 这也是后续比较能被复现的最低条件。 不要让图表替代原始记录。 先检查问题,再扩大项目范围。
记录的可复现性¶
保存 CSV 的版本、读取日期和任何过滤条件。 保存渠道名称与日期格式的解析规则。 保存基线窗口与最近窗口的精确边界。 保存每个比例的分子和分母。 保存候选行的原始记录而不是只保存图表。 让比较可以在同一输入上被另一位读者重新计算。
来源与参考¶
本节的数据和示例为本书创建的练习材料。