深度学习03 评价指标

本文介绍了深度学习模型的评估指标,包括混淆矩阵的四个组成部分:TP、FP、FN、TN,以及accuracy_score、Precision和Recall的概念与计算方式。同时,讨论了AUC和ROC曲线在衡量模型性能中的作用。
摘要由CSDN通过智能技术生成

混淆矩阵

p

TP(True Positive):【真的正例】,模型预测为正例,实际是正例【预测正确】

核酸结果显示他感染了病毒,实际上他确实感染了病毒。

FP(False Positive):【假的正例】,模型预测为正例,实际是反例

核酸结果显示他感染了病毒,但是,实际上他**并没有**感染病毒。

FN(False Negative):【假的反例】,模型预测为反例,实际是正例

核酸结果显示他没感染病毒,但是,实际上他确实感染了病毒。

TN(True Negative):【真的反例】,模型预测为反例,实际是反例【预测正确】

核酸结果显示他没感染病毒,实际上他真的没有感染病毒。

>>> from sklearn.metrics import confusion_matrix

>>> y_true = ["cat", "dog", "cat", "cat"]
>>> y_pred = ["cat", "cat", "dog", "dog"]

>>> confusion_matrix(y_true, y_pred, labels=["dog","cat"])
array([[0, 1],
       [2, 1]])

accuracy_score(acc)

  • 准确率,直接比对实际值预测值,看有多少预测正确

  • 使用方法:sklearn.metrics.accuracy_score(y_true, y_pred, normalize=True)

    • normalize的默认值为True,返回正确分类的比例(百分比)
    • normalize如果为False,返回正确分类的样本数(数量)
>>> from sklearn.metrics import accuracy_score

>>> data_label  = [0, 1, 2, 3] # 真实值
>>> predict   =   [1, 1, 2, 3] # 预测值

>>> accuracy_score(y_true = data_label, y_pred = predict) # 0.75
0.75
>>> accuracy_score(y_true = data_label, y_pred = predict, normalize=False) #3
3

Precision(查准率)

表示在模型识别为正类的样本中,真正为正类的样本所占的比例。一般情况下,查准率越高,说明模型的效果越好。

Precision = T P T P + F P \text{Precision} = \frac{TP}{TP+FP} Precision=TP+FPTP

Recall(查全率)

模型正确识别出为正类的样本的数量占总的正类样本数量的比值。

一般情况下,Recall越高,说明有更多的正类样本被模型预测正确,模型的效果越好。

Recall = T P T P + F N \text{Recall} = \frac{TP}{TP+FN} Recall=TP+FNTP

auc和roc曲线

p

roc曲线:横轴FP,纵轴TP,连接成线

fpr, tpr, thresholds=sklearn.metrics.roc_curve(y_true,y_score,pos_label=None,sample_weight=None,drop_intermediate=True)

y_true: 即真实标签

y_score : 即模型的预测结果【概率形式】

pos_label:指定正类是哪个

>>> import numpy as np
>>> from sklearn import metrics
>>> import matplotlib.pyplot as plt
>>> from sklearn.metrics import auc

>>> y = np.array(['+','+','-','-']) #y为数据的真实标签
>>> scores = np.array([0.1, 0.2, 0.35, 0.8]) #scores为分类其预测的得分
>>> fpr, tpr, thresholds = metrics.roc_curve(y, scores, pos_label='+') #得到fpr,tpr, thresholds

>>> fpr, tpr, thresholds

(array([0. , 0.5, 1. , 1. ]),
 array([0., 0., 0., 1.]),
 array([1.8 , 0.8 , 0.35, 0.1 ]))

thresholds: 阈值,score ≥ \geq 阈值就是正类

fpr:false postive rate

tpr:true postive rate

>>> plt.plot(fpr,tpr,marker = 'o')
>>> plt.show() # 画图
>>> auc(fpr, tpr) # 计算auc
0.67777777

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值