答案页 · 12 道题

Python 模型监控与漂移检查练习答案

本页汇总 Python 模型监控与漂移检查 的 12 道练习。先做练习页,再回到这里核对准确答案和原因。

快速答案

本答案页包含 Python 模型监控与漂移检查 的 4 道选择题、4 道填空题和 4 道输出预测题,每题都给出准确答案和简短解释。

答案已完整展示,建议先尝试作答,再用本页核对。第一次练习最好从互动练习页开始。

01 · 选择题

监控基线是什么?

  1. 用于比较的可信参考窗口正确答案
  2. 用户标识符列表
  3. 最终的生产预测
  4. 参数更多的第二个模型

答案: 用于比较的可信参考窗口

为什么: 基线记录可信时期内“正常”是什么样子。

02 · 选择题

为什么告警前要求最小当前样本量?

  1. 会删除基线
  2. 会提高学习率
  3. 小样本可能因偶然显得极端正确答案
  4. 能让模型更准确

答案: 小样本可能因偶然显得极端

为什么: 少数异常观测就可能大幅改变均值,却不代表真实漂移。

03 · 选择题

输入漂移和概念漂移有什么区别?

  1. 输入漂移改变数据分布;概念漂移改变输入与目标的关系正确答案
  2. 输入漂移只影响 CSS
  3. 概念漂移只影响学习率
  4. 两者完全相同

答案: 输入漂移改变数据分布;概念漂移改变输入与目标的关系

为什么: 输入分布可能变化而关系不变,也可能关系本身发生变化。

04 · 选择题

运行结果是什么?

baseline = [10, 12, 14]
live = [13, 15, 17]
print(sum(live) / len(live) - sum(baseline) / len(baseline))
  1. 3.0正确答案
  2. 12.0
  3. 15.0
  4. 1.0

答案: 3.0

为什么: 当前均值是 15.0,基线均值是 12.0,所以偏移是 3.0。

05 · 填空题

补全基线标准差函数。

import statistics

baseline = [10, 12, 14]
print(round(statistics.____(baseline), 2))

答案: pstdev

为什么: statistics.pstdev 计算总体标准差。

06 · 填空题

补全告警比较。

gap = 1.84
threshold = 1.0
print(abs(gap) >= ____)

答案: threshold

为什么: 绝对差距与选定的阈值比较。

07 · 填空题

补全最小样本保护条件。

def enough(live, min_n=5):
    if len(live) < ____:
        return False
    return True

print(enough([1, 2, 3]))

答案: min_n

为什么: 当前窗口观测数少于要求时,函数提前返回。

08 · 填空题

补全比率的分母。

live = [0, 0, 1, 1, 1]
print(sum(live) / ____(live))

答案: len

为什么: 比率用正例数量除以观测数量。

09 · 输出预测

这段程序打印出什么?

baseline = [10, 12, 14]
live = [13, 15, 17]
print(round(sum(live) / len(live) - sum(baseline) / len(baseline), 2))

答案: 3.0

为什么: 当前均值是 15.0,基线均值是 12.0,保留两位小数后偏移是 3.0。

10 · 输出预测

代码的输出结果是什么?

import statistics
baseline = [10, 12, 14]
live = [13, 15, 17]
gap = (sum(live) / len(live) - sum(baseline) / len(baseline)) / statistics.pstdev(baseline)
print(round(gap, 2))

答案: 1.84

为什么: 3.0 的均值偏移除以基线总体标准差,得到 1.84。

11 · 输出预测

屏幕上会显示什么?

import statistics

def should_alert(baseline, live, min_n=5, threshold=1.0):
    if len(live) < min_n:
        return False
    baseline_std = statistics.pstdev(baseline)
    if not baseline_std:
        return False
    gap = (sum(live) / len(live) - sum(baseline) / len(baseline)) / baseline_std
    return abs(gap) >= threshold

print(should_alert([10, 11, 12, 13, 14], [14, 15, 16, 17, 18]))

答案: True

为什么: 当前窗口有五个观测,标准化偏移超过 1.0,所以结果是 True。

12 · 输出预测

这段代码会输出什么?

baseline = [0, 0, 1, 1]
live = [0, 1, 1, 1]
print(round(sum(live) / len(live) - sum(baseline) / len(baseline), 2))

答案: 0.25

为什么: 当前正例率是 0.75,基线正例率是 0.5,所以差值是 0.25。

先试一遍题目

打开 Python 模型监控与漂移检查 练习页,用即时反馈回答同样的 12 道题。

练习本课