모델의 성능은 어느 정도인가요?

scikit-learn으로 배우는 지도 학습

George Boorman

Core Curriculum Manager, DataCamp

분류 지표

  • 정확도로 모델 성능 측정:

    • 올바르게 분류된 샘플의 비율

    • 항상 유용한 지표는 아님

scikit-learn으로 배우는 지도 학습

클래스 불균형

  • 사기성 은행 거래 예측을 위한 분류

    • 거래의 99%는 정상이며, 1%는 사기입니다
  • 모든 거래에 대해 사기 아님(NONE)으로 예측하는 분류기를 만들 수 있습니다

    • 99%의 정확도

    • 하지만 실제로는 사기 거래를 예측하는 데 매우 서툶

    • 원래 목적을 달성하지 못함

  • 클래스 불균형: 불균등한 클래스 빈도

  • 성능을 평가할 다른 방법 필요

scikit-learn으로 배우는 지도 학습

분류 성능 평가를 위한 혼동 행렬

혼동 행렬

confusion_matrix.png

scikit-learn으로 배우는 지도 학습

분류 성능 평가

predicted_labels.png

scikit-learn으로 배우는 지도 학습

분류 성능 평가

actual_labels.png

scikit-learn으로 배우는 지도 학습

분류 성능 평가

confusion_matrix.png

scikit-learn으로 배우는 지도 학습

분류 성능 평가

true_positive.png

scikit-learn으로 배우는 지도 학습

분류 성능 평가

true_negative.png

scikit-learn으로 배우는 지도 학습

분류 성능 평가

false_negative.png

scikit-learn으로 배우는 지도 학습

분류 성능 평가

false_positive.png

scikit-learn으로 배우는 지도 학습

분류 성능 평가

confusion_matrix.png

  • 정확성 {{{1}}}

ch3_1_v3.030.png

scikit-learn으로 배우는 지도 학습

정밀도

precision.png

  • 정밀도

precision_formula.png

  • 높은 정밀도 = 낮은 거짓 양성률
  • 높은 정밀도: 합법적인 거래가 사기일 것으로 예상되는 경우가 많지 않음
scikit-learn으로 배우는 지도 학습

재현율

recall.png

  • 재현율

recall_formula.png

  • 높은 재현율 = 낮은 거짓 음성률
  • 높은 재현율: 대부분의 사기성 거래를 정확하게 예측
scikit-learn으로 배우는 지도 학습

F1 점수

  • F1 점수: $2 * \frac{precision \ * \ recall}{precision \ + \ recall}$
scikit-learn으로 배우는 지도 학습

scikit-learn의 혼동 행렬

from sklearn.metrics import classification_report, confusion_matrix

knn = KNeighborsClassifier(n_neighbors=7)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=42)
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
scikit-learn으로 배우는 지도 학습

scikit-learn의 혼동 행렬

print(confusion_matrix(y_test, y_pred))
[[1106   11]
 [ 183   34]]
scikit-learn으로 배우는 지도 학습

scikit-learn의 분류 보고서

print(classification_report(y_test, y_pred))
              precision    recall  f1-score   support

           0       0.86      0.99      0.92      1117
           1       0.76      0.16      0.26       217

    accuracy                           0.85      1334
   macro avg       0.81      0.57      0.59      1334
weighted avg       0.84      0.85      0.81      1334
scikit-learn으로 배우는 지도 학습

연습해 봅시다!

scikit-learn으로 배우는 지도 학습

Preparing Video For Download...