R使用neuralnet做泰坦尼克号分类时confusionMatrix报错求助
R语言neuralnet分类混淆矩阵报错解决方案
错误原因
报错信息Error: \data` and `reference` should be factors with the same levels.的中文含义为:**错误:data和reference`需为具有相同水平的因子**,触发原因是你传入的两个参数均不符合函数要求:
- 第一个参数
Prediksi是neuralnet输出的连续概率数值向量,既不是分类标签也不是因子类型 - 第二个参数
test是包含10个特征的完整测试集矩阵,不是混淆矩阵要求的单维真实标签向量
解决步骤
- 将预测概率转换为二分类标签并转为因子类型,分类阈值默认取0.5,可根据业务需求调整:
Prediksi_label <- as.factor(ifelse(Prediksi > 0.5, 1, 0))
- 从测试集矩阵中提取真实存活标签列,转为同水平因子:
true_label <- as.factor(test[, "Survived"])
- 重新执行混淆矩阵计算:
confusionMatrix(Prediksi_label, true_label)
校验说明
可执行以下代码确认两个因子的水平完全一致:
identical(levels(Prediksi_label), levels(true_label))
返回值为TRUE即可正常运行。
内容的提问来源于stack exchange,提问作者Send
相关产品推荐
相关产品推荐

