評估 Decision Tree
你可以透過評估模型在測試資料上的表現來判斷模型品質。因為模型並未用這些資料進行訓練,這能提供對模型的客觀評估。
「混淆矩陣」能清楚呈現預測值與真實值的對照。它有四個格子,各自代表以下計數:
- True Negatives(TN)— 模型預測為負向結果,且真實結果也是負向
- True Positives(TP)— 模型預測為正向結果,且真實結果也是正向
- False Negatives(FN)— 模型預測為負向結果,但真實結果是正向
- False Positives(FP)— 模型預測為正向結果,但真實結果是負向。
這些計數(TN、TP、FN、FP)的總和應等於測試資料中的紀錄數。測試資料只是 flights 資料的一個子集。你可以和測試資料的紀錄數 flights_test.count() 作比較。
注意:這些預測是針對「測試」資料產生的,所以計數會比對「訓練」資料做預測時來得小。
本練習屬於課程
使用 PySpark 的機器學習
練習說明
- 透過計數
label與prediction的組合來建立混淆矩陣。顯示結果。 - 分別計算 True Negatives、True Positives、False Negatives、False Positives 的數量。
- 計算準確率。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Create a confusion matrix
prediction.groupBy(____, 'prediction').____().____()
# Calculate the elements of the confusion matrix
TN = prediction.filter('prediction = 0 AND label = prediction').count()
TP = prediction.____('____ AND ____').____()
FN = prediction.____('____ AND ____').____()
FP = prediction.____('____ AND ____').____()
# Accuracy measures the proportion of correct predictions
accuracy = ____
print(accuracy)