R语言mltools包Matthews相关系数(mcc)函数运行报错问题问询
报错原因定位
mltools包的mcc()函数仅支持三种互斥的入参模式,三种模式不能同时使用,你当前代码同时传入了三类参数,触发了参数校验报错:
- 模式1:仅传入
actuals(真实标签)和preds(预测标签) - 模式2:仅传入
TP/FP/TN/FN四个混淆矩阵统计值 - 模式3:仅传入
confusionM(现成的混淆矩阵对象)
额外注意:你训练模型时将因变量Y转为了因子类型,预测输出的pred_rf也是因子类型,而测试集的data.test$Y是数值类型,如果选用模式1需要先统一二者数据类型。
解决方法
三个方案任选其一即可:
方案1:使用真实标签+预测标签计算
# 统一预测值和真实值的数据类型 pred_rf_num <- as.numeric(as.character(pred_rf)) metrics_rf <- data.frame(MCC_rf = mcc(actuals = data.test$Y, preds = pred_rf_num))
方案2:使用混淆矩阵四个统计值计算
metrics_rf <- data.frame(MCC_rf = mcc(TP = tab_rf[1,1], FP = tab_rf[1,2], TN = tab_rf[2,2], FN = tab_rf[2,1]))
方案3:直接传入现成混淆矩阵计算
metrics_rf <- data.frame(MCC_rf = mcc(confusionM = tab_rf))
内容的提问来源于stack exchange,提问作者Hecar
相关产品推荐
相关产品推荐

