混淆矩阵 confusion matrix

本文深入解析了混淆矩阵这一概念,详细阐述了其在机器学习评估中的应用。包括精确度、召回率、F1分数等关键指标的计算方法,帮助读者理解模型性能评估的核心要素。

混淆矩阵(confusion matrix)(也称误差矩阵)是一种特殊的, 具有两个维度的(实际和预测)列联表(contingency table),并且两维度中都有着一样的类别的集合。

 

 

  实际的类别  
 Total =P + N 正例   positive (P)负例 negative(N)Prevalence = P / Total 精确度 Accuracy  =  (TP + TN) / Total 
预测的类别 预测正例真阳性(TP)    true positive假阳性(FP)   false positive 精度 Precision       PPV= TP / (TP + FP)False discovery rate   FDR = FP / (FP+TP)
预测负例假阴性(FN)   false negative真阴性(TN)   true negative 错误遗漏率           False omission rate   FOR = FN / (FN+TN)Negative            predictive value            NPV = TN / (TN+FN)
  召回率 Recall  = TP / (TP+FN)False positive rate (FPR)= FP / (FP+TN)Positive likelihood ratio (LR+) = TPR/FPRDiagnostic odds ratio (DOR) = LR+/LR−
  False negative rate (FNR)= FN / (TP+FN)True negative rate (TNR) = TN /(FP+TN)Negative likelihood ratio (LR−) = FNR/TNRF1 score = 2 · (Precision · Recall) /(Precision + Recall)

 

精确度 Accuracy = (TP + TN) / Total 

精度  Precision = TP / (TP + FP)

召回率 Recall = TP / P

F1 = 2 · (Precision · Recall) /(Precision + Recall)

 

混淆矩阵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]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值