- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用以下代码使用 RandomForest 作为分类器计算敏感性、特异性、NPV 和 PPV。
suppressMessages(require(randomForest));
classifier <- randomForest(x.train,y.train,ntree=300,importance=T)
prediction <<- predict(classifier,x.test,type="response")
suppressMessages(require(caret));
accuracyData <- confusionMatrix(prediction,y.test)
在 accuracyData 中,我拥有有关预测质量(灵敏度、特异性等)的所有信息。
无论如何,我想针对不同的阈值进行计算,但我不知道如何在我的代码中指定这样的值。
最佳答案
问题在于,当您预测“响应”时,您正在做出二分法的决定,并且您正在丢失有关您的不确定性的信息。那时已经应用了一个阈值来做出决定。如果你想尝试不同的阈值,你应该输出响应的概率。例如
#sample data
set.seed(15)
x<- matrix(runif(100,0,5), ncol=1)
y<- 3-2*x[,1] + rnorm(100, 2, 2)
y<- factor(ifelse(y>median(y), "A","B"))
x.train<-x[1:50,, drop=F]
y.train<-y[1:50]
x.test<-x[-(1:50),,drop=F]
y.true<-y[-(1:50)]
#fit the model
library(randomForest)
classifier <- randomForest(x.train,y.train,ntree=500,importance=T)
prediction <- predict(classifier,x.test, type="prob")
#calculate performance
library(pROC)
mroc<-roc(y.true, prediction[,1], plot=T)
然后我们可以计算不同阈值的兴趣值
coords(mroc, .5, "threshold", ret=c("sensitivity","specificity","ppv","npv"))
# sensitivity specificity ppv npv
# 0.7586207 0.8095238 0.8461538 0.7083333
coords(mroc, .9, "threshold", ret=c("sensitivity","specificity","ppv","npv"))
# sensitivity specificity ppv npv
# 0.9655172 0.6666667 0.8000000 0.9333333
关于r - 在 R 中计算不同阈值的敏感性、特异性、NPV 和 PPV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25043409/
我已经生成了一些分数来帮助预测某事是 (1) 还是否 (0),假设数据包括: scores = c(10:20) response = c(0,0,1,0,1,0,1,1,0,1,1) mydata
我在 R 中使用插入符号进行逻辑回归: ctrl <- trainControl(method = "repeatedcv", number = 10, repeats = 10,
我在 R 中使用插入符号进行逻辑回归: ctrl <- trainControl(method = "repeatedcv", number = 10, repeats = 10,
我使用以下代码使用 RandomForest 作为分类器计算敏感性、特异性、NPV 和 PPV。 suppressMessages(require(randomForest)); clas
我一直在使用 R 中的 pROC 包为对应于特定阈值的 SP 和 SN 值生成自举置信区间。但是,我一直无法找到一种方法来为 PPV 和 NPV 值生成 CI。 pROC 中是否存在这样的函数? 最佳
我使用以下代码使用 RandomForest 作为分类器计算敏感性、特异性、NPV 和 PPV。 suppressMessages(require(randomForest)); clas
我正在使用 PyML用于 SVM 分类。但是,我注意到当我使用 LOO 评估多类分类器时,结果对象不报告灵敏度和 PPV 值。相反,它们是 0.0: from PyML import * from P
我是一名优秀的程序员,十分优秀!