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
ratio = .95
n_0 = int((1-ratio) * n)  # 少数类样本数
n_1 = int(ratio * n)      # 多数类样本数
​
y = np.array([0] * n_0 + [1] * n_1)  # 真实标签
​
# 从假设模型中获取的概率值(不总是预测众数类):
y_proba_2 = np.array(
    np.random.uniform(0, .7, n_0).tolist() +  # 类别 0 的预测概率
    np.random.uniform(.3, 1, n_1).tolist()    # 类别 1 的预测概率
)
y_pred_2 = y_proba_2 > .5  # 以 0.5 为阈值生成预测标签
​
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 曲线并输出 AUC 分数:
plot_roc_curve(y, y_proba_2)
print(f'模型 2 AUC 分数: {roc_auc_score(y, y_proba_2)}')
​
# 这两行代码使编译器能够输出图形:
plt.savefig(sys.stdout.buffer)
sys.stdout.flush()