ROC 커브 메소드 정의

2021. 5. 8. 02:39데이터 사이언스/모델링 결과 확인

ㅇ 모듈 임포트 

import matplotlib.pyplot as plt

from matplotlib.colors import ListedColormap

 

from sklearn.metrics import accuracy_score

from sklearn.metrics import roc_curve

from sklearn.metrics import roc_auc_score

 

from IPython.display import Image

 

ㅇ 개별 ROC 결과 예시 

 

 

 

ㅇ 종합 ROC 결과 예시

 

 

 

 

 

ㅇ 메소드 정의

1. 개별 ROC #############################

def plot_roc(model):

    y_pred_prob = model.predict_proba(X_test)[:,1]

    fpr, tpr, thresholds = roc_curve(y_test, y_pred_prob)

    plt.plot(fpr, tpr)

    plt.xlim([0.01.0])

    plt.ylim([0.01.0])

    plt.plot([01], [01],'r--')

    plt.title('ROC curve for Bank marketing Classifier', fontsize = 15)

    plt.xlabel('False positive rate (1-Specificity)', fontsize = 15)

    plt.ylabel('True positive rate (Sensitivity)', fontsize = 15)

    plt.text(x = 0.02, y = 0.9, s = ('AUC Score:',round(roc_auc_score(y_test, y_pred_prob),4)))

    plt.grid(True)

 

 

ㅇ 종합 ROC 코드 예시 #####################

plot_roc(gnb_model)

plot_roc(knn_model)

plot_roc(decision_tree)

plot_roc(rf_classification)

plot_roc(ada_model)

plot_roc(gboost_model)

plot_roc(xgb_model)

plot_roc(lgb_model)

plot_roc(cat_model)

plot_roc(stack_model)

plt.xlim([0.01.0])

plt.ylim([0.01.0])



plt.plot([01], [01],'r--')

 

plt.title('ROC curve analysis', fontsize = 15)

plt.xlabel('False positive rate (1-Specificity)', fontsize = 15)

plt.ylabel('True positive rate (Sensitivity)', fontsize = 15)

 

plt.legend(prop={'size':13}, loc='lower right')

plt.grid(True)