MATLAB求深度学习指标

本文介绍了混淆矩阵的概念及其在深度学习模型评估中的应用,包括TruePositive、FalseNegative、FalsePositive和TrueNegative的定义。通过MATLAB代码展示了如何计算精确率、召回率,并提及了准确率的计算方法。
摘要由CSDN通过智能技术生成

概念

 介绍混淆矩阵:

详细定义概率见小白入门-深度学习模型各类评估指标大全(一)_大模型五大类评测指标-CSDN博客

True Positive(TP):真正类。样本的真实类别是正类,并且模型识别的结果也是正类。

 False Negative(FN):假负类。样本的真实类别是正类,但是模型将其识别为负类。

 False Positive(FP):假正类。样本的真实类别是负类,但是模型将其识别为正类。

 True Negative(TN):真负类。样本的真实类别是负类,并且模型将其识别为负类。 

精确率是指模型正确预测正样本数与模型预测出的全部正样本数的比例。召回率则衡量了模型正确预测为正样本的数量与真正的正样本总数的比例。计算公式如下:

精确率(Precision) = TP / (TP + FP)

召回率(Recall) = TP / (TP + FN)

代码实现

matlab绘制混淆矩阵,求精确率与召回率代码:

confMat1 = confusionmat(validationDS.Labels, labels);
precision_class= diag(confMat1)'./sum(confMat1, 1);
weights_precision = sum(confMat1, 2)'/ sum(confMat1(:)); % 计算每个类别的权重   
 precision = sum(precision_class .* weights_precision) % 计算加权平均的模型召回率 
 
recall_class = diag(confMat1)./sum(confMat1, 2);
weights_recall = sum(confMat1, 2) / sum(confMat1(:)); % 计算每个类别的权重   
 recall = sum(recall_class .* weights_recall) % 计算加权平均的模型召回率 

得到的混淆矩阵confMat1,纵向为实际标签,横向为预测标签。

sum(confMat1,1),表示对confMat1的列求和,相当于求TP+FP;sum(confMat1,2),表示对confMat1的行求和,相当于求TP+FN,这里采用加权平均法求精确率与召回率,其中,权重为每个类别在实际标签中的占比。

往往模型训练中还会计算准确率(accuracy),我采用的是正确例子/总例子的方法,代码如下:

sum(diag(confMat1),'all')/sum(confMat1,'all')

(matlab中,对矩阵中所有数求和,要用all)

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值