하마가 분석하마

[machine learning class] 3. 검증 및 평가 메트릭-1 본문

Machine learning class

[machine learning class] 3. 검증 및 평가 메트릭-1

Rrohchan 2021. 2. 17. 20:34

  데이터 분석 공모전과 실무에서는 다양한 메트릭을 사용한다. 필요에 따라 비즈니스 문제에 맞는 메트릭을 만들어야 한다. 비지도 학습 메트릭은 주관적인 경우가 많기에 지도 학습 메트릭 위주로 살펴보겠다.

 

<분류 학습에서의 메트릭의 종류>

  • 정확도 (accuracy)
  • 정밀도 (Precision)
  • 리콜 (Recall)
  • F1 스코어
  • AUC (Area Under the ROC curve)
  • 로그 손실
  • 정밀도 at k (P@k)
  • 평균 정밀도 at k (AP@K)
  • MAP@k (Mean Average Precision at k)

<회귀 학습에서의 메트릭의 종류>

  • MAE (Mean Absolute Error)
  • MSE (Mean Squared Error)
  • RMSE (Root Mean Squared Error)
  • RMSLE (Root Mean Squared Log Error)
  • MPE (Mean Percentage Error)
  • MAPE (Mean Absolute Percentage Error)
  • R^2 (결정계수)
어떤 경우에 어떠한 메트릭을 사용해야 하는지, 각 메트릭은 어떤 식으로 계산하는 건지 아는 것은 매우 중요하다. 여기서 각 메트릭에 대한 자세한 설명은 생략하겠다. 메트릭의 선택은 데이터와 타겟 변수의 종류에 따라 달라진다.

 

  이진분류의 예를 보자. 타겟 변수가 2가지 값으로 이루어진 이진 분류 (binary classification) 문제의 예로 흉부 엑스레이 이미지를 들어보겠다. 정상 흉부 엑스레이 이미지 (음성의 값을 가짐)와 기흉이 있는 흉부 엑스레이 이미지 (양성의 값을 가짐)로부터 기흉 유무를 분류하는 모델을 만드는 게 목적인 상황을 가정하겠다. 각각의 이미지는 100장씩 존재한다.  

  먼저 데이터 분할을 한다고 보면 학습 데이터 100장, 검증 데이터 100장과 같이 나눌 수 있다. (모든 경우가 5:5로 학습 세트와 검증 세트를 나누진 않는다.) 각 세트에는 50장의 양성 이미지와 50장의 음성 이미지, 총 100장의 샘플이 있다.

  이진분류에서 양성과 음성 샘플의 개수가 같을 때는 일반적으로 정확도, 정밀도, 리콜, F1 메트릭을 사용한다.

 

1. 정확도

 

  머신러닝에서 사용하는 메트릭 중 가장 직관적인 메트릭으로 모델이 얼마나 정확하게 분류하는지를 측정한다. 총 200장의 이미지를 가지고 있는 흉부 엑스레이 이미지 데이터의 경우 180장을 정확하게 분류한다면 그 모델의 정확도는 90%라 할 수 있다.

 

  만약 처음 타겟 변수의 비율이 다르다면 어떨까? 200개의 이미지 데이터가 180개의 음성 이미지와 20개의 양성 이미지로 구성되어 있다고 보자. 학습 세트와 검증 세트도 이와 마찬가지로 비율이 구성될 것이다. 이처럼 타겟 변수가 편향되어 있을 때 정확도는 모델의 성능을 평가하는 데 적합하지 않다. 모델의 정확도가 높더라도 실제 상황에서 무의미할 수 있기 때문이다.

  타겟 변수가 편향되어 있을 때는 정밀도를 사용하는 것이 좋다. 정밀도에 대해 알아보자

 

2. 정밀도

  • TP (True Positive) : 양성으로 예측했을 때, 실제값도 양성인 경우
  • TN (True Negative) : 음성으로 예측했을 때, 실제값도 음성인 경우
  • FP (False Positive) : 양성으로 예측했을 때, 실제값은 음성인 경우
  • FN (False Negative) : 음성으로 예측했을 때, 실제값은 양성인 경우

오차행렬 (confusion matrix)

 정확도 = 예측값과 실제값이 동일한 개수 / 전체 데이터 개수 = (TP+TN) / (TP+TN+FP+FN)

 

정밀도

  100개의 이미지 중, 10개의 음성 이미지와 2개의 양성 이미지를 잘못 예측했다. 따라서 TP, TN, FP, FN은 다음과 같다.

  • TP : 8
  • TN : 80
  • FP : 10
  • FN : 2

  정밀도를 계산하면 0.444이다. 이는 모델이 양성이라고 예측한 경우, 예측이 44.4% 맞았다고 해석할 수 있다.

 

3. 재현율 (recall)

재현율

 

  위의 예에서 재현율은 0.8이다. 이는 모델이 양성 이미지 중 80%를 맞게 예측했다고 해석할 수 있다.

 

좋은 모델은 정밀도와 재현율이 모두 높아야 한다. 흉부 엑스레이 이미지 데이터의 경우 재현율은 80%로 높았지만 정밀도는 44.4%로 낮았다. 이는 모델의 예측 중 FN은 적지만 FP가 많다는 의미이다. 기흉 분류와 같은 병의 진단에 있어서 낮은 FN은 좋은 소식이다.

 

  대부분의 모델은 확률을 예측하고, 이를 범주로 전환하기 위해 보통 0.5 또는 50%의 기준점을 사용한다. 때로는 이 값이 적합하지 않다. 기준점은 정밀도와 재현율에 큰 영향을 준다.

임계값에 따른 정밀도와 재현율의 변화

  • 임계값이 낮을수록 재현율은 높아지고 정밀도는 낮아짐
  • 임계값이 높을수록 정밀도는 높아지고 재현율은 낮아짐
  • 업무 환경에 맞게 상호보완할 수 있는 수준에서 적용

 

수치 조작으로 정밀도, 재현율 100% 만들 수  있지만 하나의 성능 평가만 강조하는 것은 좋지 않다. 그러므로 종합하여 평가할 수 있는 성능 지표가 필요하다.

 

4. F1 스코어

   F1 스코어는 정밀도와 재현율을 조합한 메트릭으로 정밀도와 재현율의 조화 평균으로 정의된다. 정밀도를 P, 재현율을 R이라고 하면 F1 스코어는 다음과 같다.

  정밀도와 재현율을 따로 확인하지 않고 F1 스코어를 사용할 수도 있다. F1 스코어는 0~1 사이의 값을 가지며 완벽한 예측 모델의 F1 스코어는 1이다.

 

편향된 데이터의 경우 정밀도, 재현율 혹은 F1 스코어를 이용하자.

 


  어떤 검증 및 평가지표를 사용하냐에 따라서 알고리즘을 바꿀 수도 있고, 파라미터를 전부 바꿀 수도 있다. 필자도 여러 공모전을 나가며 많지는 않지만 다양한 데이터를 접해보았다. 대부분의 데이터는 불균형 데이터이다. 불균형 데이터의 특징을 잘 파악해서 누가 더 많이 분류 및 예측해내느냐가 대회 입상의 포인트이다. 알고리즘 평가지표가 정확도일 때 상위권 팀의 정확도의 차이는 크지 않다.

  이전에 나갔던 천체분류 대회에서 교차검증을 진행할 때 불균형 데이터의 경우 정밀도를 확인해야 한다는 정보를 미리 알았다면 test 데이터에 대한 정확도를 조금 더 높일 수 있지 않을까 싶다.
  필자의 팀은 분석 과정에서 정확도 만으로 스태킹 하기 위한 알고리즘을 선별하고 파라미터를 수정했다. 공모전에서의 순위는 높았으나 분석 과정에서 조금 더 논리적으로 접근했다면 안정적이고 더 높은 정확도를 낼 수 있지 않았을까 생각한다.

  교내 대회라서 개별 링크를  타야 대회에 대한 정보를 알 수 있다. 글을 읽는 분들이 추후 스태킹을 시도할 때 보다 좋은 결과를 도출하시는데 도움이 되었으면 하는 마음에 대회의 코드공유 링크를 함께 첨부하겠다.

https://www.dacon.io/competitions/official/235638/codeshare/1980?page=1&dtype=recent&ptype=pub

 

단국대 소·중 데이터 분석 AI 경진대회

출처 : DACON - Data Science Competition

dacon.io

https://github.com/rch1025/Machine-learning-class

 

rch1025/Machine-learning-class

Several concepts and several tips that are important for data analysis can be learned. I studied based on 'Machine Learning Master Class'. - rch1025/Machine-learning-class

github.com