答案頁 · 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. 12.0
  2. 3.0正確答案
  3. 1.0
  4. 15.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 道題。

練習本課