科特曲线(ROC曲线,又称接收者工作特征曲线)是用于评估分类模型性能的一种方法。Python中的sklearn库提供了简便的方法来绘制科特曲线,下面是一个简单的例子:
from sklearn.metrics import roc_curve import matplotlib.pyplot as plt y_true = [0, 0, 1, 1] y_scores = [0.1, 0.4, 0.35, 0.8] fpr, tpr, thresholds = roc_curve(y_true, y_scores) plt.plot(fpr, tpr) plt.plot([0, 1], [0, 1], linestyle='--') plt.title('ROC curve') plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plt.show()
以上代码将生成一个简单的科特曲线,其中红色的虚线是随机猜测的基线。曲线越靠近左上角(0,1),分类器的性能越好。
我们还可以使用AUC(Area Under Curve)指标来比较不同模型的性能。例如,我们可以将以上代码修改为:
from sklearn.metrics import roc_auc_score import matplotlib.pyplot as plt y_true = [0, 0, 1, 1] y_scores = [0.1, 0.4, 0.35, 0.8] auc = roc_auc_score(y_true, y_scores) print("AUC:", auc) fpr, tpr, thresholds = roc_curve(y_true, y_scores) plt.plot(fpr, tpr) plt.plot([0, 1], [0, 1], linestyle='--') plt.title('ROC curve') plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plt.show()
以上代码将在绘制科特曲线的同时,输出AUC的值。AUC的值越接近1,模型性能越好。