더북(TheBook)

정밀도-재현율 곡선도 비슷한 방식으로 그릴 수 있습니다. RocCurveDisplay 클래스를 PrecisionRecall Display 클래스로 바꿉니다. PrecisionRecallDisplay 객체에서 정밀도와 재현율을 추출하여 평균값을 계산할 때 사용합니다. 다만 재현율과 정밀도가 1에서부터 기록되기 때문에 두 배열을 뒤집어 정밀도 평균값을 계산합니다.

>>> from sklearn.metrics import PrecisionRecallDisplay
>>> fig, ax = plt.subplots(figsize=(7, 5))
>>> mean_precision = 0.0
>>> mean_recall = np.linspace(0, 1, 100)
>>> for i, (train, test) in enumerate(cv):
...     pipe_lr.fit(X_train2[train], y_train[train])
...     pr_disp = PrecisionRecallDisplay.from_estimator(pipe_lr, 
...                                                     X_train2[test],
...                                                     y_train[test],
...                                                     name=f'Fold {i}', ax=ax)
...     mean_precision += interp(mean_recall,
...                              pr_disp.recall[::-1], 
...                              pr_disp.precision[::-1])
>>> plt.plot([0, 1], [1, 0],
...          linestyle='--', color=(0.6, 0.6, 0.6),
...          label='Random guessing')
>>> mean_precision /= len(cv)
>>> mean_auc = auc(mean_recall, mean_precision)
>>> plt.plot(mean_recall, mean_precision, 'k--',
...          label='Mean ROC (area = %0.2f)' % mean_auc, lw=2)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.