计算混淆矩阵
正如您在视频中所见,混淆矩阵是用于校准模型输出并检查所有可能预测结果(真正类、真负类、假正类、假负类)的非常有用的工具。
在创建混淆矩阵之前,您需要在给定阈值处"切分"预测概率,把概率转为类别预测的因子。请将 ifelse() 与 factor() 结合使用,如下所示:
pos_or_neg <- ifelse(probability_prediction > threshold, positive_class, negative_class)
p_class <- factor(pos_or_neg, levels = levels(test_values))
caret 中的 confusionMatrix() 在 base R 的 table() 基础上做了改进,除了表中的基本比率外,还添加了许多有用的辅助统计量。您可以使用预测结果以及真实结果来计算混淆矩阵(及相关统计量),例如:
confusionMatrix(p_class, test_values)
本练习是课程的一部分
在 R 中使用 caret 的机器学习
练习说明
- 使用
ifelse()创建字符向量m_or_r:当p大于 0.5 时取正类"M",否则取负类"R"。 - 将
m_or_r转换为因子p_class,其水平与test[["Class"]]的水平相同。 - 使用
confusionMatrix()构建混淆矩阵,传入p_class和test数据集中的"Class"列。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# If p exceeds threshold of 0.5, M else R: m_or_r
# Convert to factor: p_class
# Create confusion matrix