📅  最后修改于: 2023-12-03 14:53:17.009000             🧑  作者: Mango
在机器学习和数据分析中,F1 分数是一种广泛使用的评估指标,用于衡量分类模型的性能。在 R 中,你可以使用一些方法来计算 F1 分数。
F1 分数是准确率 (precision) 和召回率 (recall) 的调和平均值。准确率衡量模型预测的正例中真实正例的比例,而召回率衡量模型找到的真实正例的比例。
F1 分数的计算公式如下:
F1 = 2 * (precision * recall) / (precision + recall)
在 R 中,你可以使用以下方法来计算 F1 分数:
# 安装 caret 包(如果尚未安装)
install.packages("caret")
# 载入 caret 包
library(caret)
# 创建一个实际标签向量和一个预测标签向量
actual_labels <- c(1, 0, 1, 1, 0)
predicted_labels <- c(1, 1, 0, 1, 0)
# 使用 confusionMatrix 函数计算 F1 分数
confusion_matrix <- confusionMatrix(data = factor(predicted_labels), reference = factor(actual_labels))
f1_score <- confusion_matrix$byClass["F1"]
使用上述代码中的 "actual_labels" 和 "predicted_labels" 向量替换成你自己的实际和预测标签向量。confusionMatrix
函数将计算混淆矩阵并返回 F1 分数。
# 创建一个自定义函数来计算 F1 分数
f1_score <- function(actual_labels, predicted_labels) {
tp <- sum(actual_labels == 1 & predicted_labels == 1)
fp <- sum(actual_labels == 0 & predicted_labels == 1)
fn <- sum(actual_labels == 1 & predicted_labels == 0)
precision <- tp / (tp + fp)
recall <- tp / (tp + fn)
f1 <- 2 * (precision * recall) / (precision + recall)
return(f1)
}
# 使用自定义函数计算 F1 分数
actual_labels <- c(1, 0, 1, 1, 0)
predicted_labels <- c(1, 1, 0, 1, 0)
f1 <- f1_score(actual_labels, predicted_labels)
在上述代码中,自定义函数 f1_score
接受实际标签向量和预测标签向量作为参数,并使用这些向量来计算 F1 分数。
请确保在计算 F1 分数之前,你已经定义和计算了准确率和召回率。你可以使用类似的方法来计算这些度量。
以上是两种计算 R 中 F1 分数的方法。你可以根据个人偏好选择其中一种方法来计算你的模型的 F1 分数。