python 用confusion_matrix 输出tn fp fn tp
时间: 2023-10-01 19:03:40 浏览: 265
可以使用sklearn.metrics模块中的confusion_matrix函数来输出tn, fp, fn, tp。
示例代码如下:
```python
from sklearn.metrics import confusion_matrix
y_true = [0, 1, 0, 1, 1, 0, 0, 1]
y_pred = [0, 1, 0, 1, 0, 1, 0, 1]
tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()
print('True Negative (TN):', tn)
print('False Positive (FP):', fp)
print('False Negative (FN):', fn)
print('True Positive (TP):', tp)
```
输出结果:
```
True Negative (TN): 2
False Positive (FP): 1
False Negative (FN): 2
True Positive (TP): 3
```
其中,y_true和y_pred分别是真实标签和预测标签,ravel()函数将输出的混淆矩阵展平为一维数组,然后用四个变量分别接收tn, fp, fn, tp。最后输出这四个变量即可。
相关问题
怎样用confusion_matrix输出FP样本个数
可以使用sklearn.metrics库中的confusion_matrix()函数来计算混淆矩阵,并从中获取FP样本个数。具体代码如下:
```python
from sklearn.metrics import confusion_matrix
# 假设y_true和y_pred是真实标签和预测标签
tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()
# 输出FP样本个数
print("FP样本个数:", fp)
```
其中,confusion_matrix()函数返回一个4x4的混淆矩阵,分别代表True Negative(TN)、False Positive(FP)、False Negative(FN)和True Positive(TP)的个数。使用ravel()函数将混淆矩阵展开成一维数组,然后通过索引取出FP的个数即可。
用confusion_matrix计算性能
Confusion matrix是评估分类模型性能的一种方法。它是一个二维矩阵,其中行表示实际类别,列表示预测类别。在二分类问题中,confusion matrix如下所示:
| | 预测正类 | 预测负类 |
| :----------: | :----------: | :----------: |
| **实际正类** | TP | FN |
| **实际负类** | FP | TN |
其中,TP表示真正例(True Positive),即实际为正例且被模型预测为正例的样本数;FN表示假反例(False Negative),即实际为正例但被模型预测为负例的样本数;FP表示假正例(False Positive),即实际为负例但被模型预测为正例的样本数;TN表示真反例(True Negative),即实际为负例且被模型预测为负例的样本数。
通过confusion matrix,可以计算出一些性能指标,如准确率、召回率、精确率和F1值等。这些指标可以帮助我们更全面地评估分类模型的性能。
例如,准确率可以表示为:
$Accuracy = \frac{TP + TN}{TP + FP + FN + TN}$
召回率可以表示为:
$Recall = \frac{TP}{TP + FN}$
精确率可以表示为:
$Precision = \frac{TP}{TP + FP}$
F1值可以表示为:
$F1 = \frac{2 \times Precision \times Recall}{Precision + Recall}$
在实际应用中,我们可以使用Python中的sklearn.metrics库计算confusion matrix及其相关指标。例如,下面的代码演示了如何计算confusion matrix和准确率:
```python
from sklearn.metrics import confusion_matrix, accuracy_score
y_true = [0, 1, 0, 1, 0, 0, 1, 1]
y_pred = [0, 1, 1, 1, 0, 0, 0, 1]
cm = confusion_matrix(y_true, y_pred)
accuracy = accuracy_score(y_true, y_pred)
print("Confusion matrix:\n", cm)
print("Accuracy:", accuracy)
```
输出结果为:
```
Confusion matrix:
[[3 1]
[2 2]]
Accuracy: 0.625
```
其中,confusion matrix为:
| | 预测正类 | 预测负类 |
| :--: | :--: | :--: |
| 实际正类 | 3 | 1 |
| 实际负类 | 2 | 2 |
准确率为0.625。
阅读全文