[머신러닝] Classification evaluation measure

2021. 5. 25. 23:06·연구 Research/인공지능 Artificial Intelligent

모델을 만들고 나서 이 모델이 실제로 사용되기 위해서는 모델의 성능을 고려해야 합니다.

 

 

  • Sensitivity (민감도, True positive rate, recall) : 실제 true인 것 중에 모델이 true라고 예측한 비율

    $\text{Sensitivity = }\frac{TP}{TP+FN}$

 

  • Specificity (True negative rate) : 실제 false인 것 중에 모델이 false라고 예측한 비율

    $\text{Specificity = }\frac{TN}{FP+TN}$

 

  • Precision : 모델이 true라고 예측한 것 중에 실제로 true인 비율

    $\text{Precision = }\text{TP}{TP+FP}$

 

  • F1 score : precision과 recall의 조화평균

    $\text{F1 score = }2*\frac{Precision*Recall}{Precision+Recall}$

 

 

recall은 실제 true인 것 중에 모델이 true라고 예측한 비율이고, precision은 모델이 true라고 예측한 것 중에 실제로 true인 비율입니다.

f1 score는 불균형 데이터의 성능을 평가할 때 유용하게 쓸 수 있습니다.

만약 데이터 자체가 true값이 지나치게 많으면 대충 예측해도 true값이 많아서 recall이 높게 나옵니다. 그러나 결국에는 모델이 true라고 한 것 중에 정말로 true인 것을 찾아보면 그 값이 낮을 수도 있고, 이는 모델 자체의 성능이 썩 좋지 않다는 것을 말합니다. 따라서 precision, recall를 종합적으로 고려할 필요가 있습니다.

 

예를 들어 recall이 1이고 precision이 0.1인 경우를 생각해보겠습니다.

 

실제 true값을 모델이 모두 true라고 예측한 것은 맞지만 모델이 예측한 true 중 실제 true인 경우는 10퍼센트밖에 되지 않는 것입니다. 극단적으로 말하면, 무조건 true라고 내뱉는 모델이 있을 때 데이터에 true가 10퍼센트이면 당연히 recall이 1, precision은 0.1이 나올 것입니다.

 

이런 모델은 말도 안되는 모델이지만, 단순하게 recall과 precision을 일반평균 낸다면 0.55로, 아주 나쁘다고 보기는 어려울 수도 있습니다.

하지만 f1 score를 계산하면 $2*\frac{1*0.1}{1+0.1}=0.18$이기 때문에 f1 score가 매우 낮으므로 이 모델을 폐기할 것입니다. (실제로 모델을 학습하다보면 데이터가 편향된 경우에 accuracy는 높은데 f1이 아주 낮은 경우가 생깁니다.)

 

편향된 데이터를 다룰 때는 accuracy만 보는 것이 아니라 f1 score도 고려해주어야 합니다.

저작자표시 비영리 변경금지 (새창열림)

'연구 Research > 인공지능 Artificial Intelligent' 카테고리의 다른 글

[머신러닝] Boosting method  (0) 2021.05.26
[머신러닝] Logistic Regression  (0) 2021.05.25
[머신러닝] Decision Tree  (0) 2021.05.25
[머신러닝] Unsupervised learning : Clustering  (0) 2021.05.25
[인공지능수학] Probability & Statistics 개념 복습  (0) 2021.02.28
'연구 Research/인공지능 Artificial Intelligent' 카테고리의 다른 글
  • [머신러닝] Boosting method
  • [머신러닝] Logistic Regression
  • [머신러닝] Decision Tree
  • [머신러닝] Unsupervised learning : Clustering
보통의공대생
보통의공대생
수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.
  • 보통의공대생
    뛰는 놈 위에 나는 공대생
    보통의공대생
  • 전체
    오늘
    어제
    • 분류 전체보기 (460)
      • 공지 (1)
      • 영어 공부 English Study (40)
        • 텝스 TEPS (7)
        • 글 Article (21)
        • 영상 Video (10)
      • 연구 Research (99)
        • 최적화 Optimization (3)
        • 데이터과학 Data Science (7)
        • 인공지능 Artificial Intelligent (40)
        • 제어 Control (45)
      • 프로그래밍 Programming (103)
        • 매트랩 MATLAB (25)
        • 파이썬 Python (33)
        • 줄리아 Julia (2)
        • C++ (3)
        • 리눅스 우분투 Ubuntu (6)
      • 항공우주 Aeronautical engineeri.. (21)
        • 항법 Navigation (0)
        • 유도 Guidance (0)
      • 기계공학 Mechanical engineering (13)
        • 열역학 Thermodynamics (0)
        • 고체역학 Statics & Solid mechan.. (10)
        • 동역학 Dynamics (1)
        • 유체역학 Fluid Dynamics (0)
      • 수학 Mathematics (34)
        • 선형대수학 Linear Algebra (18)
        • 미분방정식 Differential Equation (3)
        • 확률및통계 Probability & Sta.. (2)
        • 미적분학 Calculus (1)
        • 복소해석학 Complex Analysis (5)
        • 실해석학 Real Analysis (0)
      • 수치해석 Numerical Analysis (21)
      • 확률 및 랜덤프로세스 Random process (2)
      • 추론 & 추정 이론 Estimation (3)
      • 기타 (26)
        • 설계 프로젝트 System Design (8)
        • 논문작성 Writing (55)
        • 세미나 Seminar (2)
        • 생산성 Productivity (3)
      • 유학 생활 Daily (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Dear abby
    인공지능
    텝스
    논문작성
    Julia
    서버
    MATLAB
    matplotlib
    수치해석
    우분투
    텝스공부
    Numerical Analysis
    Statics
    IEEE
    논문작성법
    딥러닝
    obsidian
    에러기록
    생산성
    LaTeX
    Zotero
    pytorch
    옵시디언
    고체역학
    WOX
    JAX
    Python
    teps
    Linear algebra
    ChatGPT
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
보통의공대생
[머신러닝] Classification evaluation measure
상단으로

티스토리툴바