정밀도-재현율 곡선도 비슷한 방식으로 그릴 수 있습니다. 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)