파이썬에서는 다음과 같이 정확도, 정밀도, 재현율을 구할 수 있습니다.
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로 예측했다는 의미입니다(대각선 요소는 각 클래스에 대한 올바른 분류 개수를 나타내며, 비대각선 요소는 잘못된 분류를 제공합니다).