📅  最后修改于: 2023-12-03 14:56:52.362000             🧑  作者: Mango
在机器学习中,经常需要评估分类模型的性能, ROC 曲线是一种常用的评估分类器性能的方法。本文将介绍如何使用 keras 绘制 ROC 曲线。
在绘制 ROC 曲线之前,需要准备数据集、训练模型和计算预测概率。在本文中,我们使用 Sklearn 自带的鸢尾花数据集,使用逻辑回归模型进行分类,示例代码如下:
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
model = LogisticRegression()
model.fit(X_train, y_train)
y_prob = model.predict_proba(X_test)
在上述代码中,我们使用 train_test_split
将数据集分为训练集和测试集,并使用逻辑回归模型对数据进行分类,最终得到测试集每个样本的预测概率 y_prob
。
绘制 ROC 曲线需要计算分类器在不同阈值下的真阳性率(True Positive Rate, TPR)和假阳性率(False Positive Rate, FPR)。在 Python 中,可以使用 Scikit-learn 自带的 roc_curve
函数计算 TPR 和 FPR,代码如下:
from sklearn.metrics import roc_curve
fpr, tpr, thresholds = roc_curve(y_test, y_prob[:, 1])
在上述代码中,roc_curve
函数需要传入测试集的真实标签和每个样本的预测概率,计算得到 FPR、TPR 和阈值 thresholds
。
绘制 ROC 曲线的代码如下:
import matplotlib.pyplot as plt
plt.plot(fpr, tpr)
plt.plot([0, 1], [0, 1], linestyle='--')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('ROC Curve')
plt.show()
在上述代码中,我们通过 plot
函数将 FPR 和 TPR 画成坐标系上的线段,并在左下角到右上角画出一条斜率为 1 的虚线,表示分类器随机预测的情况。最终,我们使用 xlabel
、ylabel
和 title
函数添加坐标轴和标题,调用 show
函数展示 ROC 曲线。
完整代码如下:
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import roc_curve
import matplotlib.pyplot as plt
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
model = LogisticRegression()
model.fit(X_train, y_train)
y_prob = model.predict_proba(X_test)
fpr, tpr, thresholds = roc_curve(y_test, y_prob[:, 1])
plt.plot(fpr, tpr)
plt.plot([0, 1], [0, 1], linestyle='--')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('ROC Curve')
plt.show()
运行以上代码,即可绘制出 ROC 曲线。
绘制 ROC 曲线是评估分类模型性能的常用方法,它可以帮助我们选择最佳阈值和评估不同分类器的性能。在本文中,我们介绍了如何使用 keras 绘制 ROC 曲线,包括准备数据、计算 TPR 和 FPR、绘制 ROC 曲线等步骤。