适配CNN、Tensorflow框架的 生成混淆矩阵ROC曲线的库
时间: 2024-02-01 18:13:32 浏览: 131
对于生成混淆矩阵和ROC曲线的库,我推荐使用Scikit-learn。Scikit-learn是一个强大的Python机器学习库,提供了许多用于分类和模型评估的工具。以下是使用Scikit-learn生成混淆矩阵和ROC曲线的步骤:
1. 安装Scikit-learn库
你可以使用pip或conda安装Scikit-learn库:
```
pip install -U scikit-learn
```
```
conda install scikit-learn
```
2. 导入必要的库
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix, roc_curve, auc
```
3. 准备数据
假设你已经有了测试集的真实标签和模型预测的标签,可以将它们存储在两个numpy数组中:
```python
y_true = np.array([0, 1, 1, 0, 1, 0, 0, 1])
y_pred = np.array([0, 1, 1, 0, 0, 1, 0, 1])
```
4. 生成混淆矩阵
可以使用`confusion_matrix`函数生成混淆矩阵:
```python
cm = confusion_matrix(y_true, y_pred)
print(cm)
```
输出结果为:
```
[[3 1]
[1 3]]
```
其中,第一行表示真实标签为0和1的样本数,第一列表示预测标签为0和1的样本数。例如,混淆矩阵中的3表示真实标签为0且预测标签为0的样本数。
5. 绘制ROC曲线
可以使用`roc_curve`函数计算ROC曲线的假阳性率(FPR)、真阳性率(TPR)和阈值(thresholds):
```python
fpr, tpr, thresholds = roc_curve(y_true, y_pred)
```
然后,可以使用`auc`函数计算ROC曲线下的面积(AUC):
```python
roc_auc = auc(fpr, tpr)
print('AUC = %.2f' % roc_auc)
```
最后,可以使用Matplotlib绘制ROC曲线:
```python
plt.plot(fpr, tpr, color='darkorange', lw=2, label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver operating characteristic')
plt.legend(loc="lower right")
plt.show()
```
这将绘制一个ROC曲线,其中橙色曲线是ROC曲线,虚线是随机猜测的曲线。
阅读全文