W3School TIY Editor

  • W3School 在线教程
  • 改变方向
  • 暗黑模式
​x
 
# 这三行代码使编译器支持绘图功能:
import sys
import matplotlib
matplotlib.use('Agg')
​
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import accuracy_score, confusion_matrix, roc_auc_score, roc_curve
​
n = 10000
y = np.array([0] * n + [1] * n)
​
# 生成两种概率预测值:
y_prob_1 = np.array(
    np.random.uniform(.25, .5, n//2).tolist() + 
    np.random.uniform(.3, .7, n).tolist() + 
    np.random.uniform(.5, .75, n//2).tolist()
)
y_prob_2 = np.array(
    np.random.uniform(0, .4, n//2).tolist() + 
    np.random.uniform(.3, .7, n).tolist() + 
    np.random.uniform(.6, 1, n//2).tolist()
)
​
def plot_roc_curve(true_y, y_prob):
    """
    根据预测概率绘制ROC曲线
    """
    
    fpr, tpr, thresholds = roc_curve(true_y, y_prob)
    plt.plot(fpr, tpr)
    plt.xlabel('假阳性率(FPR)')
    plt.ylabel('真阳性率(TPR)')
​
# 绘制第一种概率预测的 ROC 曲线:
plot_roc_curve(y, y_prob_1)
​
# 这两行代码使编译器能够输出图形:
plt.savefig(sys.stdout.buffer)
sys.stdout.flush()