如何利用混淆矩阵计算精确度及标签预测概率
如何利用混淆矩阵计算精确度及标签预测概率
混淆矩阵是评估分类模型性能的重要工具,它可以清晰地展示模型在各个类别上的预测情况。本文将介绍如何利用混淆矩阵计算模型的精确度以及每个标签的预测概率,并结合一个6分类问题的例子进行说明。
一、混淆矩阵
假设我们有一个6分类问题,其混淆矩阵如下:
| 预测标签 | 1 | 2 | 3 | 4 | 5 | 6 ||---|---|---|---|---|---|---|| 真实标签 1 | TP | FN | FN | FN | FN | FN || 真实标签 2 | FN | TP | FN | FN | FN | FN || 真实标签 3 | FN | FN | TP | FN | FN | FN || 真实标签 4 | FN | FN | FN | TP | FN | FN || 真实标签 5 | FN | FN | FN | FN | TP | FN || 真实标签 6 | FN | FN | FN | FN | FN | TP |
- TP (True Positive):预测正确,实际也正确的样本数。* FN (False Negative):预测错误,实际为该类别的样本数。
二、精确度计算
精确度 (Accuracy) 是指模型预测正确的样本数占总样本数的比例,计算公式如下:
精确度 = (TP + TN) / (TP + TN + FP + FN)
- TN (True Negative):预测正确,实际也不属于该类别的样本数。* FP (False Positive):预测错误,实际不属于该类别的样本数。
在本例中,由于是多分类问题,无法直接计算 TN 和 FP。我们可以将所有类别预测正确的样本数加和得到 TP,将所有类别预测错误的样本数加和得到 FN,然后根据上述公式计算精确度。
三、标签预测概率计算
标签预测概率是指模型将样本预测为某个特定标签的概率。以标签1为例,其预测概率计算公式如下:
标签1预测概率 = (TP1 + FN1) / (TP + TN + FP + FN)
- TP1:预测为标签1且真实标签为1的样本数。* FN1:预测为其他标签但真实标签为1的样本数。
四、Python代码示例
以下 Python 代码展示了如何使用 sklearn 库中的 confusion_matrix 函数计算混淆矩阵,并根据混淆矩阵计算精确度和标签预测概率:pythonfrom sklearn.metrics import confusion_matrix
假设真实标签为y_true,预测标签为y_predy_true = [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]y_pred = [1, 2, 3, 4, 6, 5, 1, 2, 4, 3, 5, 6]
计算混淆矩阵cm = confusion_matrix(y_true, y_pred)
计算精确度accuracy = cm.diagonal().sum() / cm.sum()
计算标签1的预测概率label_1_prob = (cm[0, 0] + cm[0, :].sum()) / cm.sum()
print(f'混淆矩阵: {cm}')print(f'精确度: {accuracy:.2f}')print(f'标签1预测概率: {label_1_prob:.2f}')
通过以上步骤,我们可以利用混淆矩阵轻松计算模型的精确度以及每个标签的预测概率,从而对模型的性能进行更全面的评估。
原文地址: https://www.cveoy.top/t/topic/fts4 著作权归作者所有。请勿转载和采集!