더북(TheBook)

7.2.3 앙상블 분류기의 평가와 튜닝

이 절에서는 본 적 없는 데이터에 대한 MajorityVoteClassifier의 일반화 성능을 확인하기 위해 테스트 데이터셋에 대한 ROC 곡선을 그려 보겠습니다. 테스트 데이터셋은 모델 선택에 사용하지 않았다는 것을 기억하세요. 테스트 데이터셋의 목적은 편향되지 않은 분류기의 일반화 성능을 추정하기 위해서입니다.

>>> from sklearn.metrics import roc_curve
>>> from sklearn.metrics import auc
>>> colors = ['black', 'orange', 'blue', 'green']
>>> linestyles = [':', '--', '-.', '-']
>>> for clf, label, clr, ls \
...         in zip(all_clf, clf_labels, colors, linestyles):
...     # 양성 클래스의 레이블이 1이라고 가정합니다
...     y_pred = clf.fit(X_train,
...                      y_train).predict_proba(X_test)[:, 1]
...     fpr, tpr, thresholds = roc_curve(y_true=y_test,
...                                      y_score=y_pred)
...     roc_auc = auc(x=fpr, y=tpr)
...     plt.plot(fpr, tpr,
...              color=clr,
...              linestyle=ls,
...              label='%s (auc = %0.2f)' % (label, roc_auc))
>>> plt.legend(loc='lower right')
>>> plt.plot([0, 1], [0, 1],
...          linestyle='--',
...          color='gray',
...          linewidth=2)
>>> plt.xlim([-0.1, 1.1])
>>> plt.ylim([-0.1, 1.1])
>>> plt.grid(alpha=0.5)
>>> plt.xlabel('False positive rate (FPR)')
>>> plt.ylabel('True positive rate (TPR)')
>>> plt.show()
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.