R语言中NeuralNet神经网络单值准确率计算方法咨询
神经网络准确率计算方法
是否需要生成混淆矩阵
仅计算单值准确率不需要生成混淆矩阵。如果需要进一步分析不同类别的错分情况,可以额外生成混淆矩阵做辅助判断,不影响准确率单值的输出。
具体实现步骤
你目前的代码已经得到了模型的概率输出predict_outNN2,只需要补全以下代码即可得到准确率单值,可直接追加在你现有代码的末尾:
- 第一步:将概率输出转换为类别标签
根据你的分类任务类型选择对应代码:
# 二分类任务(标签为0和1时,阈值可根据业务需求调整) predict_class <- ifelse(predict_outNN2 > 0.5, 1, 0) # 多分类任务(取每行概率最大的索引作为预测类别) predict_class <- apply(predict_outNN2, 1, which.max) # 若原始标签从0开始,需额外执行:predict_class <- predict_class - 1
- 第二步:计算单值准确率
准确率的计算逻辑为「预测正确的样本数 / 总测试样本数」,直接用R的均值函数即可快速计算:
# 先统一预测值和真实标签的类型,避免对比出错 wineclassesTest <- as.integer(as.character(wineclassesTest)) predict_class <- as.integer(predict_class) accuracy <- mean(predict_class == wineclassesTest) # 打印输出准确率单值 print(accuracy)
- (可选)生成混淆矩阵
如果需要查看详细分类结果,可以执行以下代码生成混淆矩阵:
confusion_matrix <- table(Predicted = predict_class, Actual = wineclassesTest) print(confusion_matrix)
结果说明
输出的accuracy就是你需要的单值准确率,取值范围在0到1之间,数值越接近1代表模型的整体预测效果越好。
内容的提问来源于stack exchange,提问作者Xray25
相关产品推荐
相关产品推荐

