本答案頁包含 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 道題。