You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取逻辑回归模型预测结果的混淆矩阵?

泰坦尼克号模型混淆矩阵计算问题解决方法

问题核心原因

  1. calculateConfusionMatrix(mlr包函数)需要真实标签与预测标签配对才能生成混淆矩阵,但titanic_test数据集默认不含Survived真实标签;
  2. 你仅传入了预测响应值,不符合函数的参数要求。

解决方法一:训练集交叉验证(无需外部测试集)

直接在训练阶段通过交叉验证评估模型并获取混淆矩阵:

# 定义10折交叉验证策略
cv_strategy <- makeResampleDesc("CV", iters = 10)
# 执行交叉验证,指定评估指标包含混淆矩阵
cv_results <- resample(logReg, titanicTask, resampling = cv_strategy, measures = list(cm))
# 查看混淆矩阵
print(cv_results$measures.test$cm)

解决方法二:使用带真实标签的测试集

如果你有包含Survived真实标签的测试数据,可通过以下两种方式计算:

方式1:利用Prediction对象直接计算

确保测试数据集包含Survived列,预测后直接传入函数:

# 假设titanicNewClean_unseen包含Survived真实标签
titanic_prediction <- predict(logRegModel, newdata = titanicNewClean_unseen)
# 生成混淆矩阵
confusion_mat <- calculateConfusionMatrix(titanic_prediction)
print(confusion_mat)

方式2:手动传入真实与预测标签

若真实标签单独存储(比如变量true_survived):

# 提取预测标签
pred_survived <- titanic_prediction$data$response
# 计算混淆矩阵
confusion_mat <- calculateConfusionMatrix(pred = pred_survived, true = true_survived)
print(confusion_mat)

补充提示

  • titanic包的titanic_test默认无Survived标签,若需用该数据集评估,需自行获取完整测试集标签(如从Kaggle泰坦尼克竞赛数据集下载);
  • 若使用mlr的新版本mlr3,需改用confusion_matrix()函数,用法类似:
library(mlr3)
confusion_mat <- confusion_matrix(pred_survived, true_survived)

内容的提问来源于stack exchange,提问作者Rizzle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 20:50:28