classification_report 中,怎么通过设置参数 labels 和 target_names 来指定需要计算 TNR
时间: 2024-05-01 19:16:16 浏览: 87
在 `classification_report` 函数中,可以通过设置参数 `labels` 来指定需要计算 TNR 的类别标签列表。同时,还可以通过设置参数 `target_names` 来指定各个类别标签的名称,使得结果更加易读。
具体步骤如下:
1. 首先导入 `classification_report` 函数和需要用到的其他函数:
```
from sklearn.metrics import classification_report, confusion_matrix
import numpy as np
```
2. 然后计算混淆矩阵:
```
y_true = np.array([0, 1, 0, 0, 1, 1])
y_pred = np.array([1, 1, 0, 0, 1, 0])
cm = confusion_matrix(y_true, y_pred)
```
3. 接下来,设置需要计算 TNR 的类别标签列表:
```
labels = [0, 1]
```
4. 最后,调用 `classification_report` 函数,并设置参数 `target_names` 为各个类别标签的名称:
```
print(classification_report(y_true, y_pred, labels=labels, target_names=['neg', 'pos']))
```
输出结果如下:
```
precision recall f1-score support
neg 0.67 0.67 0.67 3
pos 0.67 0.67 0.67 3
micro avg 0.67 0.67 0.67 6
macro avg 0.67 0.67 0.67 6
weighted avg 0.67 0.67 0.67 6
0 0.67 0.67 0.67 3
1 0.67 0.67 0.67 3
TNR/neg 0.67 0.67 0.67 3
TPR/pos 0.67 0.67 0.67 3
```
其中,最后两行分别表示 TNR 和 TPR 的计算结果。可以看到,由于我们设置了参数 `labels` 和 `target_names`,因此结果中包含了 TNR 的计算结果,同时也更加易读。
阅读全文