You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于阈值1.5创建分类列并计算准确率及混淆矩阵(R语言)

R语言分类任务实现:结果标记、准确率计算与混淆矩阵

测试数据

首先加载你提供的测试数据:

data <- structure(list(Spike_Numeric = c(2, 2, 2, 2, 2, 2), pred = c(1.98074853133856, 2.02043203671689, 1.77571051892715, 1.71595663747364, 1.5370482202268, 2.05764433439194)), row.names = c("1", "2", "3", "4", "5", "6"), class = "data.frame")

步骤1:创建result列

根据pred列的值生成result列:pred < 1.5标记为1,否则标记为2。用基础R的ifelse()就能快速实现:

data$result <- ifelse(data$pred < 1.5, 1, 2)

生成后的数据集如下:

Spike_Numeric     pred    result
1             2 1.980749       2
2             2 2.020432       2
3             2 1.775711       2
4             2 1.715957       2
5             2 1.537048       2
6             2 2.057644       2

步骤2:计算分类准确率

通过对比result和Spike_Numeric列的匹配比例,得到准确率:

accuracy <- mean(data$result == data$Spike_Numeric) * 100
cat(paste0(accuracy, "%\n"))

输出结果:

100% 

步骤3:混淆矩阵与特异性、敏感性计算

当存在分类错误时,用table()生成混淆矩阵,再手动计算敏感性(针对类别1)和特异性(针对类别2)。同时兼容只有单一类别的情况:

# 生成混淆矩阵
conf_mat <- table(Actual = data$Spike_Numeric, Predicted = data$result)

# 计算指标
if (all(dim(conf_mat) == c(2,2))) {
  # 两类都存在的情况
  sensitivity <- conf_mat[1,1] / sum(conf_mat[1,])  # TP/(TP+FN)
  specificity <- conf_mat[2,2] / sum(conf_mat[2,])  # TN/(TN+FP)
} else {
  # 仅单一类别的情况
  if (all(data$Spike_Numeric == 2)) {
    sensitivity <- NA  # 无类别1样本,无法计算敏感性
    specificity <- 1   # 所有类别2预测正确,特异性100%
  } else if (all(data$Spike_Numeric == 1)) {
    sensitivity <- 1   # 所有类别1预测正确,敏感性100%
    specificity <- NA  # 无类别2样本,无法计算特异性
  }
}

# 输出结果
print("混淆矩阵:")
print(conf_mat)
cat("\n敏感性:", ifelse(is.na(sensitivity), "无法计算(无类别1样本)", paste0(sensitivity*100, "%")), "\n")
cat("特异性:", ifelse(is.na(specificity), "无法计算(无类别2样本)", paste0(specificity*100, "%")), "\n")

针对示例数据的输出:

[1] "混淆矩阵:"
         Predicted
Actual    2
       2  6

敏感性: 无法计算(无类别1样本) 
特异性: 100% 

内容的提问来源于stack exchange,提问作者confusedindividual

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 14:40:49