ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 20221124 = Recall & Precision
    PYTHON 2022. 11. 24. 16:20
    1. Recall (재현율)
    
    - Recall은 실제 True인 것 중에서 모델이 True라고 예측한 것의 비율
    
    Recall이 중요한 이유
    
    - 2종 오류일 때 위험 요소가 커지는 경우를 대비하기 위해서
    
    Scikit-learn
    
    - 하이퍼 파라미터 “average” 
    - None : 각 class마다 recall 점수가 반환됨
    - binary : 이진분류에서만 사용됨
    - micro : 총 TP, FN, FP를 이용해 스코어를 계산
    - macro / weighted / samples
    
    from sklearn.metrics import recall_score
    y_true = [0, 1, 2, 0, 1, 2]
    y_pred = [0, 2, 1, 0, 0, 1]
    recall_score(y_true, y_pred, average='macro')
    2. Precision (정밀도)
    
    - 모델이 True 라고 예측하였을 때 실제도 True인 비율
    - 예측이 1일 때를 기준으로 확률을 보는 것
    - 일어나지 않은 일을 일어났다고 판단하는 것을 오류로 간주
    
    Precision이 중요한 이유
    
    - 1종 오류 발생 시 업무에 지장을 주기 때문에 precision을 기준으로 오차를 분석해야 함
    3. Recall & Precision Trade off
    
    - 정밀도와 재현율은 상호보완적인 평가지표이다. 한쪽이 높아지면 한쪽은 낮아지는 관계를 가지고 있다. 
    - 임계값 조정을 통해 재현율과 정밀도 중 어느 것을 강조할지 정할 수 있다.
    4. F1-score
    
    - Precision과 Recall의 조화평균
    - 두 지표를 평균값을 통해 하나의 값으로 나타내는 방법
    
    F1-score는 언제 사용하는가?
    
    - 주로 분류 클래스 간의 데이터가 불균형이 심각할때
    - 정밀도와 재현율은 둘 중 하나만 채용해서는 예측 성능 평가 지표로 불완전하기 때문에
    - 정확도의 경우, 데이터 분류 클래스가 균일하지 못하면 머신러닝 성능을 제대로 나타낼 수 없기 때문에
    
    from sklearn.metrics import f1_score
    
    f1 = f1_score(y_test, y_pred)
    5. Curve
    
    1) PR curve(Precision Recall curve)
    
    - x축이 Recall, y축이 Precision인 곡선을 의미
    - 곡선 아래 면적 (AUC, area under curve) 가 1에 가까울수록 정확도가 높다고 볼 수 있음
    - Deep learning classification 성능 평가로 활용되기도 하며, 임계값에 따라 달라지는
    - precision과 recall값의 변화를 곡선으로 표현한 것
    
    # PR curve 라이브러리 불러오기
    from sklearn.metrics import precision_recall_curve
    
    2) ROC curve (Receiver operating characteristic curve) & AUC
    
    - ROC curve와 AUC는 서로 동일하다고 볼 수 있지만 표현하는 방식에 차이가 있다.
    - ROC curve는 x축을 FPR지표, y축을 TPR지표로 하는 그래프로 표현하는 방식
    - FPR (False Positive Rate) = TN / (FP + TN)
    - TPR (True Positivie Rate) = TP / (FN + TP)
    - AUC는 이 ROC curve를 점수로 환산한 방식
    - 값이 1에 가까울수록 좋은 값이다.
    - 값이 0에 가까우면 최악의 값
    - 값이 0.5이면 분류능력이 전혀없다는 뜻
    
    # roc_curve 라이브러리 불러오기
    from sklearn.metrics import roc_curve

    'PYTHON' 카테고리의 다른 글

    20221129 = 딥 러닝 , Tensorflow  (0) 2022.11.29
    20221128 = 분류 측정지표  (0) 2022.11.28
    20221123 = 강의자료정리 (Boosting)  (2) 2022.11.23
    20221122-1 = Neural Network  (1) 2022.11.22
    20221122 = PCA, Clustering  (1) 2022.11.22
Designed by Tistory.