封装Sklearn中roc_curve函数画ROC曲线并使用roc_auc_score函数计算AUC

画ROC曲线封装函数

# 画ROC曲线函数
def plot_roc_curve(y_true, y_score):
    """
    y_true:真实值
    y_score:预测概率。注意:不要传入预测label!!!
    """
    from sklearn.metrics import roc_curve
    import matplotlib.pyplot as plt
    fpr,tpr,threshold = roc_curve(y_true, y_score, pos_label=1)
    plt.xlabel('False Positive Rate')
    plt.ylabel('Ture Positive Rate')
    plt.title('roc curve')
    plt.plot(fpr,tpr,color='b',linewidth=0.8)
    plt.plot([0,1], [0,1], 'r--')

计算AUC、画ROC曲线

封装Sklearn中roc_curve函数画ROC曲线并使用roc_auc_score函数计算AUC_第1张图片封装Sklearn中roc_curve函数画ROC曲线并使用roc_auc_score函数计算AUC_第2张图片

踩坑

如果传入的不是预测概率而是label,画出的ROC曲线会只有一个折线!!!比如逻辑回归会将预测概率以阈值转换为预测label,如果传入的不是概率而是预测label,如下面代码所示会导致画的ROC曲线只有一个折线:
封装Sklearn中roc_curve函数画ROC曲线并使用roc_auc_score函数计算AUC_第3张图片

你可能感兴趣的:(Scikit_learn,Python)