本答案页包含 Python 模型监控与漂移检查 的 4 道选择题、4 道填空题和 4 道输出预测题,每题都给出准确答案和简短解释。
答案已完整展示,建议先尝试作答,再用本页核对。第一次练习最好从互动练习页开始。
监控基线是什么?
答案: 用于比较的可信参考窗口
为什么: 基线记录可信时期内“正常”是什么样子。
为什么告警前要求最小当前样本量?
答案: 小样本可能因偶然显得极端
为什么: 少数异常观测就可能大幅改变均值,却不代表真实漂移。
输入漂移和概念漂移有什么区别?
答案: 输入漂移改变数据分布;概念漂移改变输入与目标的关系
为什么: 输入分布可能变化而关系不变,也可能关系本身发生变化。
运行结果是什么?
baseline = [10, 12, 14]
live = [13, 15, 17]
print(sum(live) / len(live) - sum(baseline) / len(baseline))答案: 3.0
为什么: 当前均值是 15.0,基线均值是 12.0,所以偏移是 3.0。
补全基线标准差函数。
import statistics
baseline = [10, 12, 14]
print(round(statistics.____(baseline), 2))答案: pstdev
为什么: statistics.pstdev 计算总体标准差。
补全告警比较。
gap = 1.84
threshold = 1.0
print(abs(gap) >= ____)答案: threshold
为什么: 绝对差距与选定的阈值比较。
补全最小样本保护条件。
def enough(live, min_n=5):
if len(live) < ____:
return False
return True
print(enough([1, 2, 3]))答案: min_n
为什么: 当前窗口观测数少于要求时,函数提前返回。
补全比率的分母。
live = [0, 0, 1, 1, 1]
print(sum(live) / ____(live))答案: len
为什么: 比率用正例数量除以观测数量。
这段程序打印出什么?
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。
代码的输出结果是什么?
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。
屏幕上会显示什么?
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。
这段代码会输出什么?
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 道题。