我正在尝试以下示例:
target_cm_table_pred <- prediction(data_item_col, T_or_F_col)target_cm_table_perf <- performance(target_cm_table_pred,"mat")
我不明白为什么我无法像使用“auc”那样从输出中获得一个单独的系数值,你有什么想法吗?我是说,我需要写什么才能得到系数的值?
回答:
这是我编写的一个小函数,用于获取Matthews相关系数的值。这个函数以混淆矩阵作为输入值。根据你的问题,你只需要从预测值的类别中创建一个混淆矩阵。你可以使用caret包中的confusionMatrix函数来创建这个矩阵。
conf_matrix <- confusionMatrix(data=logit1_trc, train$y))
logit1_trc: 预测值,train$y: 响应变量
你可以直接将这个混淆矩阵传递给创建的函数,并获取系数。
Matt_Coef <- function (conf_matrix){ TP <- conf_matrix$table[1,1] TN <- conf_matrix$table[2,2] FP <- conf_matrix$table[1,2] FN <- conf_matrix$table[2,1] mcc_num <- (TP*TN - FP*FN) mcc_den <- as.double((TP+FP))*as.double((TP+FN))*as.double((TN+FP))*as.double((TN+FN)) mcc_final <- mcc_num/sqrt(mcc_den) return(mcc_final)}
希望这对你有帮助