首页 > 编程知识 正文

混淆矩阵精度评价

时间:2023-11-22 01:02:59 阅读:289268 作者:NFWL

混淆矩阵是机器学习中常用的评估模型性能的工具。而在分类任务中,模型评价的一项重要指标就是精度。本文将从多个方面对混淆矩阵精度评价做详细的阐述,其中将包括混淆矩阵的构成、准确率、召回率、F1分数等内容。

一、混淆矩阵构成

混淆矩阵(Confusion Matrix)又称误差矩阵,是通过比较分类器分类结果与实际情况的情况统计得到。混淆矩阵是一个N×N矩阵,其中N是目标类别总数。其构成如下图所示:

                         预测结果      
          |正例(P)      反例(N)
———————————————-
实际情况|正例(P)      TN             FP
        |反例(N)      FN             TP

其中,TN(true negative)表示将负类预测为负类的数量;FP(false positive)表示将负类预测为正类的数量;FN(false negative)表示将正类预测为负类的数量;TP(true positive)表示将正类预测为正类的数量。

二、准确率

准确率(Accuracy)是刻画分对样本的能力。准确率越高,分类的效果就越好。准确率计算公式如下:

accuracy = (TP + TN) / (TP + TN + FP + FN)

其中,TP表示真正例、TN表示真反例、FP表示假正例、FN表示假反例。准确率越高,模型的优劣越好。

三、召回率

召回率(Recall)是描述正样本正确率的指标。召回率越高,正类分对的能力越强。召回率计算公式如下:

recall = TP / (TP + FN)

其中,TP表示真正例、FN表示假反例。召回率越高,模型对正样本的提取就越准确。

四、精确率

精确率(Precision)是描述分对样本正确率的指标。精确率越高,分类器分对的概率越高。精确率计算公式如下:

precision = TP / (TP + FP)

其中,TP表示真正例、FP表示假正例。精确率越高,分类器将负样本错误分成正样本的可能性就越小。

五、F1分数

F1分数(F1-score)是精确率和召回率的调和平均值。F1分数计算公式如下:

F1 = 2 * precision * recall / (precision + recall)

其中,precision表示精确率,recall表示召回率。

完整的评价代码示例

from sklearn.metrics import confusion_matrix, accuracy_score, precision_score, recall_score, f1_score

# 构造混淆矩阵
y_true = [1, 0, 0, 1, 1, 0, 0, 1]
y_pred = [1, 0, 0, 1, 0, 1, 0, 1]
cm = confusion_matrix(y_true, y_pred)
print(cm)

# 计算准确率
acc = accuracy_score(y_true, y_pred)
print(acc)

# 计算召回率
recall = recall_score(y_true, y_pred)
print(recall)

# 计算精确率
precision = precision_score(y_true, y_pred)
print(precision)

# 计算F1分数
f1 = f1_score(y_true, y_pred)
print(f1)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。