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

使用confusionMatrix函数报错:数据含未找到的水平,求解决方法

解决confusionMatrix报错:The data contain levels not found in the data

错误原因

confusionMatrix要求真实标签(reference)和预测标签(data)的因子水平必须完全一致。你的场景中:

  • as.factor(AAA)生成的因子包含E水平
  • BBB的因子水平固定为["A","B","C","D","L"],无E
    两者水平不匹配,触发报错。

解决方法

方法1:统一所有可能的水平(推荐,保留全部类别信息)

先合并真实标签和预测标签的所有水平,再将两者转为包含统一水平的因子:

# 提取所有需要覆盖的水平
all_levels <- unique(c(AAA, levels(BBB)))

# 将真实标签和预测标签转为统一水平的因子
ref_factor <- factor(AAA, levels = all_levels)
pred_factor <- factor(BBB, levels = all_levels)

# 重新调用confusionMatrix
confusionMatrix(reference = ref_factor, data = pred_factor, mode='everything')

方法2:仅保留预测标签的水平(过滤/转换真实标签)

如果AAA中的E是无效类别,或你只需要分析BBB包含的水平:

  • 方式A:将真实标签转为和预测标签一致的水平(E会被设为NA,需确认是否接受)
ref_factor <- factor(AAA, levels = levels(BBB))
confusionMatrix(reference = ref_factor, data = BBB, mode='everything')
  • 方式B:直接过滤掉真实标签中含E的样本(同步过滤预测标签)
# 筛选出AAA属于BBB水平的样本索引
valid_samples <- AAA %in% levels(BBB)
# 仅用有效样本计算混淆矩阵
confusionMatrix(reference = factor(AAA[valid_samples]), 
                data = BBB[valid_samples], 
                mode='everything')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:35:19