由混淆矩阵图像计算精确率
时间: 2023-09-15 22:19:04 浏览: 65
混淆矩阵是一个 $n\times n$ 的矩阵,其中 $n$ 是分类的数量。对于二元分类问题,混淆矩阵的形式如下:
| | 预测为正例 | 预测为反例 |
| --- | --- | --- |
| **实际为正例** | 真正例 (TP) | 假反例 (FN) |
| **实际为反例** | 假正例 (FP) | 真反例 (TN) |
其中,TP 表示真正例的数量,FN 表示假反例的数量,FP 表示假正例的数量,TN 表示真反例的数量。
精确率(Precision)是指在所有预测为正例的样本中,真正例的比例,计算公式为:
$$ Precision = \frac{TP}{TP + FP} $$
对于多分类问题,计算精确率的方式类似,只需要将每个类别的 TP 和 FP 累加即可。
以下是 Python 代码实现:
```python
def calculate_precision(confusion_matrix):
"""
根据混淆矩阵计算精确率
:param confusion_matrix: 混淆矩阵,二维数组
:return: 精确率,浮点数
"""
num_classes = confusion_matrix.shape[0]
precision = 0.0
for i in range(num_classes):
tp = confusion_matrix[i, i]
fp = np.sum(confusion_matrix[:, i]) - tp
if tp + fp == 0:
precision += 0.0
else:
precision += tp / (tp + fp)
precision /= num_classes
return precision
```
其中,`confusion_matrix` 是混淆矩阵,类型为二维数组。`np.sum` 表示对数组进行求和操作。