본문 바로가기
머신러닝

머신러닝 Accuracy, Precision, Recall, F1-Score, Confusion Matrix 이해하기

by 데싸루나 2023. 2. 13.

오늘은 머신러닝 모델, 특히 Classification model의 퍼포먼스를 평가하는 방법에 대해 알아보고자 합니다. True/False Positive, True /False Negative 그리고 Accuracy, Precision, Recall, F-1 Score의 개념에 대해 설명드리겠습니다. 

 

Classification 모델 평가 방법
Classification 모델 평가 방법

 

Confusion Matrix 그리고 True/False Positive, True/False Negative에 대하여

 

 

Classification 모델을 평가할 때, Confusion Matrix 를 보고 평가를 합니다. 이 컨퓨젼 매트릭스는 아래와 같이 구성되어있습니다. 여기서 True/False Positive, True/False Negative의 개념에 대해서 살펴보겠습니다. 

Confusion Matrix
Confusion Matrix

  • True Positive : 실제로도 Positive(1)이고, 예측도 Positive(1)로 된 경우 (위 테이블에서는 500)
  • False Positive : 실제로는 Negative(0)인데, 예측이 Positive(1)로 된 경우 (위 테이블에서는 50)
  • True Neative : 실제로도 Negative(0)이고, 예측도 Negative(0)로 된 경우 (위 테이블에서는 350)
  • False Negative : 실제로는 Positive(0)인데, 예측이 Negative(0)로 된 경우 (위 테이블에서는 100)

Accuracy의 한계점 

머신러닝 모델의 성능을 이야기할 때, 이 모델의 정확도(Accuracy)가 얼마나 좋은지에 대해 이야기합니다. 정확도는 올바르게 예측해낸 비중을 뜻합니다. 하지만 정확도(Accuracy)만을 가지고 모델의 퍼포먼스를 측정하기에는 한계가 있을 수 있습니다. 만약 skewed data를 가진 경우에는 더욱이 Accuracy만 가지고 평가하는 것은 충분하지 못한 방법입니다. 예를들면, 데이터에 900개의 Negative instance 와 100개의 Positive instance가 있고 모델이 모든 instance를 모두 Negative로 예측을 한다면, 이 모델은 Positive instance를 하나도 구분해내지 못함에도 불구하고 정확도는 90% (900/1000)가 되어 정확도가 엄청 높게 측정되어 자칫 잘 만들어진 모델로 잘못 판단될 수 있습니다. 

 

Precision, Recall, F1-Score 이해하기 

위에서 말한 Accuracy의 한계점을 보완하기위해 같이 볼 수 있는 세가지 평가기준이 있습니다. Precision, Recall, F1-Score입니다. 각각이 무엇을 의미하는지 알아보겠습니다. 

  • Precision(정밀도): Positive로 예측한 것 중 진짜로 Positive인 것의 비중 (위 예제에서는 500/550 * 100)
  • Recall(재현율) : 진짜 Positive인것 중 Positive로 예측된 것의 비중 (위 예제에서는 500/600 * 100)
  • F1-Score : Precision(정밀도)와 Recall(재현율)의 조화평균 값,  2 * (Precision * Recall) / (Precision + Recall)

 

 

어떤 기준을 사용할지 결정하는 방법

Precision, Recall, F1- Score 중에서 어떤걸 사용해서 모델을 평가할지는 주어진 비지니스 상황에 따라 달라집니다. 어떤 걸 더 중요하게 평가해야할지는 각 상황을 고려하여 결정해야합니다. 어떨 때는 Precision을 어떨 때는 Recall을 어떨 때는 F1-Score를 기준으로 삼는지 다음의 구체적인 예를 살펴보겠습니다. 

  • Precision이 중요한 경우: 스팸 메일 필터링의 경우는 정상적인 메일이 스팸에 분류되면 안되므로, precision이 더 중요한 경우입니다. 일부 스팸메일이 잘 걸러지지 않더라도, 진짜 스팸일 경우만 스팸메일로 분류되는게, 일부 스팸이 아닌 메일까지 포함하여 너무 많은 메일이 스팸으로 걸러지는 것 보다 낫기 때문입니다. 
  • Recall이 중요한 경우: Fraud Detection 같은 경우를 생각해볼 수 있습니다. 때로는 정상적인 거래를 Fraud로 예측을 하더라도, 최대한 많은 Fraud를 감지해내는게 중요하기 때문에  Recall이 높은 쪽으로 모델을 설계하는 것이 좋습니다. 
  • F1-Score가 중요한 경우: Sentiment Analysis(감정 분석)을 하는 경우를 생각해볼 수 있습니다. Positive 뿐만 아니라 Negative감정까지도 같이 중요하기 때문에 적절히 조화롭게 구별해내도록 모델을 설계해야하기 때문입니다.

 

머신러닝을 배울 때, 머신러닝 모델을 어떻게 평가해야하는지에 대해서도 이해하는 것은 굉장히 중요합니다. 오늘 이 포스팅을 통해 Supervised Learning(지도학습) Classification 모델의 평가방법에 대해서 알아봤습니다. Accuracy, Precision, Recall, F1-Score는 머신러닝에 있어서 가장 기초적인 개념들로 헷갈리지 않도록 잘 숙지해두는게 좋습니다. 각각 어떤 개념을 가지고 있는지, 어떻게 계산하는지 또한 각각 어떤 경우에 중요한 기준으로 활용되는지도 예시를 통해 알아보았습니다. 머신러닝 관련 아래 포스팅들도 함께 참고하세요. 

 

 

 

머신러닝 Linear Regression 과 Gradient Descent 알고리즘 이해하기

Linear Regression 모델은 Supervised Machine Learning(지도학습)에서 가장 기본적이고 많이 쓰이는 모델입니다. 이 포스팅에서는 기본적인 개념과 Linear Regression의 Cost Function, 이를 최적화하기 위한 Gradient De

datasciencediary.tistory.com

 

 

챗 GPT로 머신러닝 코딩 하기(파이썬)

챗 GPT가 코딩도 해준다는 사실을 알고 계셨나요? 대부분의 프로그래밍 언어에 대해 코딩을 해줍니다. 프롬프트 명령만 잘 해주면, 간단한 파이썬 머신러닝 코딩은 몇초만에 짜줍니다. 이를 활용

datasciencediary.tistory.com

 

댓글