我正在建造2个模型。
模型1
modelgb = GradientBoostingClassifier()
modelgb.fit(x_train,y_train)
predsgb = modelgb.predict_proba(x_test)[:,1]
metrics.roc_auc_score(y_test,predsgb, average='macro', sample_weight=None)
模型2
model = LogisticRegression()
model = model.fit(x_train,y_train)
predslog = model.predict_proba(x_test)[:,1]
metrics.roc_auc_score(y_test,predslog, average='macro', sample_weight=None)
如何在一个图中绘制两个ROC曲线,并使用图例&每个模型的AUC分数文本?
答案 0 :(得分:9)
尝试根据您的数据进行调整:
from sklearn import metrics
import numpy as np
import matplotlib.pyplot as plt
plt.figure(0).clf()
pred = np.random.rand(1000)
label = np.random.randint(2, size=1000)
fpr, tpr, thresh = metrics.roc_curve(label, pred)
auc = metrics.roc_auc_score(label, pred)
plt.plot(fpr,tpr,label="data 1, auc="+str(auc))
pred = np.random.rand(1000)
label = np.random.randint(2, size=1000)
fpr, tpr, thresh = metrics.roc_curve(label, pred)
auc = metrics.roc_auc_score(label, pred)
plt.plot(fpr,tpr,label="data 2, auc="+str(auc))
plt.legend(loc=0)
答案 1 :(得分:2)
类似这样的事情...
Question2
答案 2 :(得分:1)
from sklearn.metrics import plot_roc_curve
fig = plot_roc_curve( clf, x_train_bow, y_train)
fig = plot_roc_curve( clf, x_test_bow, y_test, ax = fig.ax_)
fig.figure_.suptitle("ROC curve comparison")
plt.show()
基本上 plot_roc_curve
函数绘制分类器的 roc_curve。因此,如果我们在没有指定 plot_roc_curve
参数的情况下使用 ax
两次,它将绘制两个图形。所以这里我们将第一个图形存储在图形变量中并访问它的轴并提供给下一个 plot_roc_curve
函数,以便仅显示第一个图形的轴的图。
答案 3 :(得分:0)
from sklearn.metrics import plot_roc_curve
classifiers = [log_reg, decision_tree, decision_forest]
ax = plt.gca()
for i in classifiers:
plot_roc_curve(i, X_test, y_test, ax=ax)