快速答案
本答案頁包含 Python 模型評估與準確率 的 4 道選擇題、4 道填空題和 4 道輸出預測題,每題都給出準確答案和簡短解釋。
答案已完整展示,建議先嘗試作答,再用本頁核對。第一次練習最好從互動練習頁開始。
為什麼要保留獨立的測試集?
答案: 估計模型在未見樣本上的表現
為什麼: 獨立測試集比再次評估訓練資料更誠實。
精準率的分母是什麼?
答案: 預測為正的樣本數
為什麼: 精準率等於真正例除以真正例加假正例。
召回率的分母是什麼?
答案: 真實正例數
為什麼: 召回率等於真正例除以真正例加假負例。
執行結果是什麼?
actual = [1, 1, 0, 0]
predicted = [1, 0, 0, 1]
print(sum(a == 1 and p == 1 for a, p in zip(actual, predicted)))答案: 1
為什麼: 只有第一對樣本的真實值為 1 且預測為 1。
補全真正例條件。
actual = [1, 1, 0, 0]
predicted = [1, 0, 0, 1]
tp = sum(a == 1 and p == ____ for a, p in zip(actual, predicted))
print(tp)答案: 1
為什麼: 真正例要求真實標籤和預測都為正。
補全精準率的分母。
tp, fp, fn = 8, 2, 4
precision = tp / (tp + ____)
print(round(precision, 2))答案: fp
為什麼: 精準率除以所有預測正例:真正例加假正例。
補全召回率的分母。
tp, fp, fn = 8, 2, 4
recall = tp / (tp + ____)
print(round(recall, 2))答案: fn
為什麼: 召回率除以所有真實正例:真正例加假負例。
補全準確率的分母。
actual = [1, 1, 0, 0]
predicted = [1, 0, 0, 1]
accuracy = sum(a == p for a, p in zip(actual, predicted)) / ____(actual)
print(round(accuracy, 2))答案: len
為什麼: 準確率用正確預測數除以樣本總數。
這段程式列印出什麼?
actual = [1, 1, 0, 0]
predicted = [1, 0, 0, 1]
tp = sum(a == 1 and p == 1 for a, p in zip(actual, predicted))
tn = sum(a == 0 and p == 0 for a, p in zip(actual, predicted))
fp = sum(a == 0 and p == 1 for a, p in zip(actual, predicted))
fn = sum(a == 1 and p == 0 for a, p in zip(actual, predicted))
print(tp, tn, fp, fn)答案: 1 1 1 1
為什麼: 混淆矩陣的四個格子各有一個樣本。
程式碼的輸出結果是什麼?
tp, fp, fn = 8, 2, 4
precision = tp / (tp + fp)
print(round(precision, 2))答案: 0.8
為什麼: 精準率是 8 除以 10,保留兩位為 0.8。
螢幕上會顯示什麼?
tp, fp, fn = 8, 2, 4
recall = tp / (tp + fn)
print(round(recall, 2))答案: 0.67
為什麼: 召回率是 8 除以 12,保留兩位為 0.67。
這段程式碼會輸出什麼?
actual = [0] * 95 + [1] * 5
predicted = [0] * 100
accuracy = sum(a == p for a, p in zip(actual, predicted)) / len(actual)
print(round(accuracy, 2))答案: 0.95
為什麼: 全部預測為負能得到 95% 準確率,但沒有找到一個正例。
先試一遍題目
打開 Python 模型評估與準確率 練習頁,用即時回饋回答同樣的 12 道題。