评估决策树
您可以通过评估模型在测试数据上的表现来判断模型的质量。由于模型并未在这些数据上训练,因此这是对模型的客观评估。
混淆矩阵可以清晰地对"预测值 vs. 已知真实值"进行拆分。它有 4 个单元格,分别表示如下计数:
- 真负(TN)— 模型预测为负,真实结果也为负
- 真正(TP)— 模型预测为正,真实结果也为正
- 假负(FN)— 模型预测为负,但真实结果为正
- 假正(FP)— 模型预测为正,但真实结果为负。
这些计数(TN、TP、FN 和 FP)之和应等于测试数据中的记录数,而测试数据只是航班数据的一个子集。您可以将其与测试数据的记录数进行比较,即 flights_test.count()。
注意: 这些预测是在"测试"数据上得到的,因此计数会比在训练数据上做预测时更小。
本练习是课程的一部分
使用 PySpark 进行机器学习
练习说明
- 通过统计
label与prediction的组合来创建混淆矩阵。显示结果。 - 分别统计真负(TN)、真正(TP)、假负(FN)和假正(FP)的数量。
- 计算准确率。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# 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)