Python에서 정밀 리콜 곡선을 만드는 방법


기계 학습에서 분류 모델을 사용할 때 모델 품질을 평가하기 위해 자주 사용하는 두 가지 지표는 정밀도와 재현율입니다.

정확도 : 전체 긍정적 예측을 기준으로 긍정적 예측을 수정합니다.

이는 다음과 같이 계산됩니다.

  • 정확도 = 참양성 / (참양성 + 거짓양성)

알림 : 전체 실제 긍정에 대한 긍정적 예측 수정

이는 다음과 같이 계산됩니다.

  • 미리 알림 = 참 긍정 / (참 긍정 + 거짓 부정)

특정 모델의 정밀도와 재현율을 시각화하기 위해 정밀도-재현율 곡선을 만들 수 있습니다. 이 곡선은 다양한 임계값에 대한 정밀도와 재현율 간의 균형을 보여줍니다.

Python의 정밀 리콜 곡선

다음 단계별 예에서는 Python에서 로지스틱 회귀 모델에 대한 정밀 재현율 곡선을 만드는 방법을 보여줍니다.

1단계: 패키지 가져오기

먼저 필요한 패키지를 가져옵니다.

 from sklearn import datasets
from sklearn. model_selection import train_test_split
from sklearn. linear_model import LogisticRegression
from sklearn. metrics import precision_recall_curve
import matplotlib. pyplot as plt

2단계: 로지스틱 회귀 모델 적합

다음으로 데이터세트를 생성하고 여기에 로지스틱 회귀 모델을 적용하겠습니다.

 #create dataset with 5 predictor variables
X, y = datasets. make_classification (n_samples= 1000 ,
                                    n_features= 4 ,
                                    n_informative= 3 ,
                                    n_redundant= 1 ,
                                    random_state= 0 )

#split dataset into training and testing set
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size= .3 , random_state= 0 )

#fit logistic regression model to dataset
classifier = LogisticRegression()
classify. fit (X_train, y_train)

#use logistic regression model to make predictions
y_score = classify. predict_proba (X_test)[:, 1 ]

3단계: 정밀도-재현율 곡선 만들기

다음으로 모델의 정밀도와 재현율을 계산하고 정밀도-재현율 곡선을 만듭니다.

 #calculate precision and recall
precision, recall, thresholds = precision_recall_curve(y_test, y_score)

#create precision recall curve
fig, ax = plt. subplots ()
ax. plot (recall, precision, color=' purple ')

#add axis labels to plot
ax. set_title (' Precision-Recall Curve ')
ax. set_ylabel (' Precision ')
ax. set_xlabel (' Recall ')

#displayplot
plt. show () 

Python의 정밀 리콜 곡선

x축은 재현율을 나타내고 y축은 다양한 임계값에 대한 정밀도를 나타냅니다.

재현율이 증가하면 정밀도가 감소합니다.

이는 두 측정항목 간의 절충안을 나타냅니다. 모델의 재현율을 높이려면 정밀도가 감소해야 하며 그 반대의 경우도 마찬가지입니다.

추가 리소스

Python에서 로지스틱 회귀를 수행하는 방법
Python에서 혼동 행렬을 만드는 방법
ROC 곡선을 해석하는 방법(예제 포함)

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다