더북(TheBook)

파이썬에서는 다음과 같이 정확도, 정밀도, 재현율을 구할 수 있습니다.

 

In [17]:

# 혼동행렬을 위한 sklearn 라이브러리를 호출합니다
import numpy as np
import sklearn.metrics as metrics

y = np.array([1, 1, 1, 1, 0, 0]) # 0은 정상, 1은 암환자
p = np.array([1, 1, 0, 0, 0, 0]) # 예측 값

# sklearn(sklearn.metrics)을 이용하여 정확도, 정밀도, 재현율, F1 스코어를 계산합니다
# accuracy_score() 함수로 정확도를 계산합니다
print('accuracy', metrics.accuracy_score(y,p))
# precision_score() 함수로 정밀도를 계산합니다
print('precision', metrics.precision_score(y,p))
print('recall', metrics.recall_score(y,p)) # recall_score() 함수로 재현율을 계산합니다
print('f1', metrics.f1_score(y,p)) # f1_score() 함수로 F1 스코어를 계산합니다

# 정확도, 정밀도, 재현율, F1 스코어를 한 번에 출력합니다
print(metrics.classification_report(y,p)) 
print(metrics.confusion_matrix(y,p))
accuracy 0.6666666666666666
precision 1.0
recall 0.5
f1 0.6666666666666666
              precision  recall  f1-score   support

           0       0.50    1.00      0.67         2
           1       1.00    0.50      0.67         4

    accuracy                         0.67         6
   macro avg       0.75    0.75      0.67         6
weighted avg       0.83    0.67      0.67         6

[[2 0]
 [2 2]]

 

마지막 confusion_matrix(y,p)의 결과인 [2 0][2 2]는 첫 행에서 실제로 0인 데이터 두 개를 정확하게 0으로 예측했다는 의미이며, 두 번째 행은 실제로 1인 데이터 네 개 중 두 개만 1로 예측했다는 의미입니다(대각선 요소는 각 클래스에 대한 올바른 분류 개수를 나타내며, 비대각선 요소는 잘못된 분류를 제공합니다).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.