混淆矩阵(Confusion Matrix)分析

本文介绍了混淆矩阵的概念及其在机器学习中的应用。混淆矩阵是一种用于评估分类器性能的重要工具,通过真阳性、假阳性等指标帮助理解分类器的表现。文章还详细解释了如何从混淆矩阵中计算各种性能指标。

Content

ConfusionMatrix

Example

Talbe ofconfusion

Preference

 

Confusion Matrix

机器学习领域,混淆矩阵(confusion matrix),又称为可能性表格或是错误矩阵。它是一种特定的矩阵用来呈现算法性能的可视化效果,通常是监督学习(非监督学习,通常用匹配矩阵:matching matrix)。其每一列代表预测值,每一行代表的是实际的类别。这个名字来源于它可以非常容易的表明多个类别是否有混淆(也就是一个class被预测成另一个class)。

 

Example

假设有一个用来对猫(cats)、狗(dogs)、兔子(rabbits)进行分类的系统,混淆矩阵就是为了进一步分析性能而对该算法测试结果做出的总结。假设总共有 27 只动物:8只猫, 6条狗, 13只兔子。结果的混淆矩阵如下图:


在这个混淆矩阵中,实际有 8只猫,但是系统将其中3只预测成了狗;对于 6条狗,其中有 1条被预测成了兔子,2条被预测成了猫。从混淆矩阵中我们可以看出系统对于区分猫和狗存在一些问题,但是区分兔子和其他动物的效果还是不错的。所有正确的预测结果都在对角线上,所以从混淆矩阵中可以很方便直观的看出哪里有错误,因为他们呈现在对角线外面。

 

Table of confusion

在预测分析中,混淆表格(有时候也称为混淆矩阵),是由false positivesfalsenegativestrue positivestrue negatives组成的两行两列的表格。它允许我们做出更多的分析,而不仅仅是局限在正确率。准确率对于分类器的性能分析来说,并不是一个很好地衡量指标,因为如果数据集不平衡(每一类的数据样本数量相差太大),很可能会出现误导性的结果。例如,如果在一个数据集中有95只猫,但是只有5条狗,那么某些分类器很可能偏向于将所有的样本预测成猫。整体准确率为95%,但是实际上该分类器对猫的识别率是100%,而对狗的识别率是0%

对于上面的混淆矩阵,其对应的对猫这个类别的混淆表格如下:

 

假定一个实验有 Ppositive实例,在某些条件下有 N negative实例。那么上面这四个输出可以用下面的偶然性表格(或混淆矩阵)来表示:

 

 

公式陈列、定义如下:

True positive(TP)

eqv. with hit

True negative(TN)

eqv. with correct rejection

False positive(FP)

eqv. with false alarm, Type I error

False negative(FN)

eqv. with miss, Type II error

 

Sensitivity ortrue positive rate(TPR)

eqv. with hit rate, recall

TPR = TP/P = TP/(TP + FN)

Specificity(SPC)ortrue negative rate(TNR)

SPC = TN/N = TN/(FP + TN)

Precision orpositive prediction value(PPV)

PPV = TP/(TP + FP)

Negative predictive value(NPV)

NPV = TN/(TN + FN)

Fall-out orfalse positive rate(FPR)

FPR = FP/N = FP/(FP + TN)

False discovery rate(FDR)

FDR = FP/(FP + TP) = 1 - PPV

Miss Rate orFalse Negative Rate(FNR)

FNR = FN/P = FN/(FN + TP)

 

 

Accuracy(ACC)

ACC = (TP + TN)/(P + N)


Preference

 

WiKi:http://en.wikipedia.org/wiki/Confusion_matrix

混淆矩阵Confusion Matrix)是机器学习中评估分类模型性能的核心工具,尤其适用于二分类和多分类任务。它通过将模型的 “预测结果” 与数据的 “真实标签” 进行交叉统计,清晰地展示模型在不同类别上的预测准确性、错误类型及分布,为后续优化(如调整阈值、改进特征)提供直观依据[^1]。 从二分类角度来看,混淆矩阵有 4 个核心指标。在此基础上还能衍生出核心评估指标。而对于多分类混淆矩阵,则是二分类混淆矩阵的扩展与解读[^1]。 在实际应用中,可以基于 SVC 的方式来进行训练及预测,计算混淆矩阵。以下是一个示例代码,展示了如何使用 Python 和相关库来计算和展示混淆矩阵,同时计算召回率: ```python import matplotlib.pyplot as plt import numpy as np from sklearn.datasets import make_classification from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay from sklearn.model_selection import train_test_split from sklearn.svm import SVC from sklearn.metrics._classification import recall_score X, y = make_classification(random_state=0) X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0) print("真实的 Y值:", y_test) # SVC 方式 clf = SVC(random_state=0) clf.fit(X_train, y_train) predictions = clf.predict(X_test) print("预测的 Y值:", predictions) cm = confusion_matrix(y_test, predictions) disp = ConfusionMatrixDisplay(confusion_matrix=cm) r = recall_score(y_test, predictions, average='macro') print("\n", "recall score:", r) disp.plot() plt.show() ``` 上述代码使用`sklearn`库生成分类数据,将数据划分为训练集和测试集,使用 SVC 模型进行训练和预测,计算混淆矩阵和召回率,并将混淆矩阵进行可视化展示[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值