r语言 - 混淆矩阵敏感性和特异性长度匹配,但数据不能具有比参考更多的水平



问题:

测量灵敏度所需的混淆矩阵&特异性。

问题:

对于混淆矩阵数据,我有匹配的级别,在混淆矩阵中,数据的级别不能超过参考,所以当我的级别匹配时(例如,下面的列表(,那么关于"数据不能超过参考"的错误是指什么?引用是"model_prediction"[last length((/str((。我的因变量是一个因子变量。

尝试的工作量:

对于R代码,首先我使用因子结果进行预测,并包含na.action:

loans_predict_fcm <- factor(predict(full, newdata = data_train, type = "response", na.action = na.pass))

具有来自单独表格((的结果,例如pred_table;我成功地使用公式计算了灵敏度和特异性ok。然而,我想用一个混淆的Matrix((来交叉确认这一点。但我很难让confusionMatrix((正常工作。

Sensitivity <- 100*(pred_table[1,1])/sum(pred_table[1,1] + pred_table[1,1])
Specificity <- 100*(pred_table[2,2])/sum(pred_table[2,1] + pred_table[2,2])

当我尝试使用因子predict((运行confusionMatrix((时。然后检查级别,发现它们不匹配,这就是为什么confusionMatrix((在数据上失败的原因,它不能有比引用更多的级别,在本次运行model_prediction时。

confusionMatrix(loans_predict_fcm, model_prediction, positive="1")
identical (levels(loans_predict_fcm), levels(model_prediction))
> FALSE
> length(loans_predict_fcm)
[1] 27724
> str(loans_predict_fcm)
Factor w/ 27424 levels "0.13079979710253",..: 15967 9625 15966 10703 7830 12394 21291 15023 17920 18442 ...
- attr(*, "names")= chr [1:27724] "11413" "2561" "25337" "1643" ...
> length(loans_train_data$statusRank)
[1] 27724
> str(loans_train_data$statusRank)
Factor w/ 2 levels "Bad","Good": 2 2 2 1 1 2 2 2 1 2 ...
> length(model_prediction)
[1] 27724
> str(model_prediction)
Factor w/ 2 levels "Bad","Good": 2 2 2 2 2 2 2 2 2 2 ...
> 

对于混淆矩阵灵敏度&具体的问题是,列名和行名有差异,所以我能够使用一个自定义函数来解决这个问题,这个函数基本上是对colnames((和rownames(。

最新更新