混淆矩阵敏感性和特异性长度匹配,但数据的级别不能多于参考

Posted

技术标签:

【中文标题】混淆矩阵敏感性和特异性长度匹配,但数据的级别不能多于参考【英文标题】:Confusion Matrix Sensitivity & Specificity length match but data cannot have more levels than reference 【发布时间】:2020-07-20 07:06:59 【问题描述】:

问题:

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

问题:

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

尝试过的努力:

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

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

使用来自单独 table() 的结果,例如 pred_table;我成功地使用公式计算了灵敏度和特异性。但是,我想用一个混淆矩阵()来交叉确认这一点。但我无法让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 ...
> 

【问题讨论】:

【参考方案1】:

对于混淆矩阵敏感性和特异性问题,列名和行名存在差异,所以我能够使用自定义函数来解决它,这基本上是 colnames() 和 rownames() 上的 setdiff,并创建了一个矩阵向量 mat.or.vec() 用于缺失列名的长度。

【讨论】:

以上是关于混淆矩阵敏感性和特异性长度匹配,但数据的级别不能多于参考的主要内容,如果未能解决你的问题,请参考以下文章

R语言加载UCI糖尿病数据集并启动Rattle GUI调用party包中的ctree函数构建条件推理树模型Rattle混淆矩阵使用R自定义编写函数通过混淆矩阵计算特异度敏感度PPVNPV

R语言使用caret包的predict函数对模型在测试集上的表现进行推理和预测计算模型的混淆矩阵设置参数mode计算基于混淆矩阵产生的衍生指标(特异度敏感度F1ppvnpv等)

R语言编写自定义函数计算分类模型评估指标:准确度特异度敏感度PPVNPV数据数据为模型预测后的混淆矩阵比较多个分类模型分类性能(逻辑回归决策树随机森林支持向量机)

使用混淆矩阵和插入符号统计的灵敏度和特异性的零 R 模型计算

为多模型寻找模型最优参数多模型交叉验证可视化指标计算多模型对比可视化(系数图误差图混淆矩阵校正曲线ROC曲线AUCAccuracy特异度灵敏度PPVNPV)结果数据保存

混淆矩阵中的错误数据的级别不能多于参考