2017-03-20 1 views
2

Je construis deux modèles.Comment tracer plusieurs courbes ROC dans un tracé avec légende et scores AUC en python?

Modèle 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) 

Modèle 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) 

Comment puis-je tracer les courbes ROC dans une parcelle, avec un texte de légende & des scores AUC pour chaque modèle?

+0

quelle bibliothèque utilisez-vous? – Julien

+0

j'ai matplotlib, cependant tout ce que vous pouvez suggérer - je peux importer la bibliothèque pertinente – Pb89

+0

je demandais le modèle ... – Julien

Répondre

2

Essayez adaptant à vos données:

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)