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

     

    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로 예측했다는 의미입니다(대각선 요소는 각 클래스에 대한 올바른 분류 개수를 나타내며, 비대각선 요소는 잘못된 분류를 제공합니다).

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