我已经有一段时间没有使用R了,所以也许我只是还不习惯它,但是..我在R中有一个表,有两列,第一列是预测值(值可以是0或1),第二列是实际值(也是0或1)。我需要找到召回率、精确度和f-measure,但在R中找不到一个好的函数(我也读到了ROCR,但我所能做的就是创建一些图,但我真的不需要图,我需要的是数字)。
在R中有没有什么好的函数来寻找精确度,召回率和f-度量?有什么不同的方法吗?
发布于 2012-09-25 06:40:21
首先,我创建一个数据集,如下所示
> predict <- sample(c(0, 1), 20, replace=T)
> true <- sample(c(0, 1), 20, replace=T)我认为预测值中的那些1就是检索到的值。检索的总数量为
> retrieved <- sum(predict)精度,即检索到的相关实例的分数,是
> precision <- sum(predict & true) / retrievedRecall是检索到的相关实例的分数,是
> recall <- sum(predict & true) / sum(true)F度量是2*精度*召回/(精度+召回)是
> Fmeasure <- 2 * precision * recall / (precision + recall)发布于 2016-02-14 23:14:48
只是将Patrick的答案整齐地打包到一个函数中……
measurePrecisionRecall <- function(predict, actual_labels){
precision <- sum(predict & actual_labels) / sum(predict)
recall <- sum(predict & actual_labels) / sum(actual_labels)
fmeasure <- 2 * precision * recall / (precision + recall)
cat('precision: ')
cat(precision * 100)
cat('%')
cat('\n')
cat('recall: ')
cat(recall * 100)
cat('%')
cat('\n')
cat('f-measure: ')
cat(fmeasure * 100)
cat('%')
cat('\n')
}发布于 2018-10-19 05:12:34
您可以使用caret包中的confusionMatrix()函数获取所有这些指标。
# Create a sample
predicted <- as.factor(sample(c(0, 1), 100, replace=T))
realized <- as.factor(sample(c(0, 1), 100, replace=T))
# Compute the confusion matrix and all the statistics
result <- confusionMatrix(predicted, realized, mode="prec_recall")
result
result$byClass["Precision"]
result$byClass["Recall"]
result$byClass["F1"]https://stackoverflow.com/questions/12572357
复制相似问题