개요
F1 스코어(F1 Score)는 기계학습과 데이터과학 분야에서 분류 모델의 성능을 평가하는 데 널리 사용되는 지표 중 하나입니다. 특히 정밀도(Precision)와 재현율(Recall)이 모두 중요한 상황에서 두 지표의 조화 평균(Harmonic Mean)을 계산하여 모델의 균형 잡힌 성능을 평가하는 데 유용합니다. F1 스코어는 불균형 데이터셋(Imbalanced Dataset)에서 특히 중요한 평가 척도로 간주되며, 이진 분류(Binary Classification)뿐만 아니라 다중 분류(Multi-class Classification) 문제에도 확장하여 사용할 수 있습니다.
정밀도와 재현율의 개념
F1 스코어를 이해하기 위해서는 먼저 정밀도와 재현율의 정의를 알아야 합니다. 이 두 지표는 혼동 행렬(Confusion Matrix)을 기반으로 계산됩니다.
혼동 행렬의 구성 요소
|
예측: 양성 |
예측: 음성 |
| 실제: 양성 |
참 양성 (TP) |
거짓 음성 (FN) |
| 실제: 음성 |
거짓 양성 (FP) |
참 음성 (TN) |
- TP(True Positive): 실제 양성인 것을 올바르게 양성으로 예측
- FP(False Positive): 실제 음성인 것을 잘못되어 양성으로 예측
- FN(False Negative): 실제 양성인 것을 잘못되어 음성으로 예측
- TN(True Negative): 실제 음성인 것을 올바르게 음성으로 예측
정밀도 (Precision)
정밀도는 모델이 "양성"으로 예측한 사례 중 실제로 양성인 비율을 나타냅니다.
[
\text{Precision} = \frac{TP}{TP + FP}
]
정밀도가 높다는 것은 거짓 양성(FP)이 적다는 의미이며, 모델이 양성으로 예측할 때 신뢰할 수 있음을 나타냅니다.
재현율 (Recall)
재현율은 실제 양성 사례 중에서 모델이 얼마나 잘 찾아냈는지를 나타냅니다.
[
\text{Recall} = \frac{TP}{TP + FN}
]
재현율이 높을수록 모델이 실제 양성 사례를 놓치지 않고 잘 탐지한다는 의미입니다.
F1 스코어의 정의와 계산
F1 스코어는 정밀도와 재현율의 조화 평균으로 정의됩니다. 산술 평균 대신 조화 평균을 사용하는 이유는 두 값이 모두 높아야 높은 F1 점수를 얻을 수 있도록 하기 위함입니다. 즉, 하나의 값이 낮으면 전체 점수가 크게 떨어집니다.
[
F1 = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}
]
F1 스코어의 특징
- 값의 범위는 0에서 1 사이입니다. 1에 가까울수록 성능이 우수함을 의미합니다.
- 정밀도와 재현율 중 하나라도 0이면 F1 스코어는 0이 됩니다.
- 불균형 데이터에서 정확도(Accuracy)가 왜곡될 수 있는 문제를 보완합니다. 예를 들어, 부정 클래스가 99%, 긍정 클래스가 1%인 데이터셋에서 모든 샘플을 부정으로 예측하면 정확도는 99%지만, 재현율은 0이 되어 F1 스코어도 0이 됩니다.
F1 스코어는 정밀도와 재현율에 동일한 가중치를 부여하지만, 특정 상황에서는 한 지표를 더 중요시할 수 있습니다. 이를 위해 Fβ 스코어가 제안되었습니다.
[
F_\beta = (1 + \beta^2) \times \frac{\text{Precision} \times \text{Recall}}{(\beta^2 \times \text{Precision}) + \text{Recall}}
]
- β > 1: 재현율에 더 큰 가중치를 부여 (예: 질병 진단에서 모든 환자를 찾아내는 것이 중요할 때)
- β < 1: 정밀도에 더 큰 가중치를 부여 (예: 스팸 메일 필터링에서 정상 메일을 스팸으로 잘못 분류하는 것을 피하고 싶을 때)
- β = 1: F1 스코어와 동일
다중 분류 문제에서의 F1 스코어
F1 스코어는 이진 분류 외에도 다중 분류(Multi-class Classification) 문제에 적용할 수 있습니다. 이 경우 각 클래스별로 F1 스코어를 계산한 후, 이를 평균하여 전체 성능을 평가합니다. 대표적인 평균화 방식은 다음과 같습니다:
| 방식 |
설명 |
| 마이크로(Micro) |
모든 클래스의 TP, FP, FN을 합쳐서 전체 정밀도와 재현율을 계산 후 F1 계산. 데이터 불균형에 강함. |
| 매크로(Macro) |
각 클래스별 F1 스코어를 계산한 후 단순 평균. 소수 클래스에도 동일한 중요도 부여. |
| 가중치(Weighted) |
각 클래스의 F1 스코어를 그 클래스의 샘플 수에 따라 가중 평균. 데이터 분포 반영. |
사용 사례와 중요성
- 의료 진단: 암 여부 진단 등에서 재현율이 중요하지만, 정밀도도 무시할 수 없음. F1 스코어는 두 요소의 균형을 평가.
- 스팸 탐지: 정밀도가 높아야 정상 메일이 스팸으로 잘못 분류되는 일을 줄일 수 있음. 하지만 F1 스코어로 전체 성능 점검.
- 감성 분석: 긍정/부정/중립 등 다중 분류에서 매크로 F1을 사용해 각 감성 카테고리의 성능 균형을 평가.
참고 자료 및 관련 문서
F1 스코어는 단순한 정확도보다 풍부한 정보를 제공하며, 모델 개선 과정에서 중요한 의사결정 도구로 활용됩니다. 데이터의 특성과 비즈니스 요구사항에 따라 적절한 Fβ 스코어나 평균 방식을 선택하는 것이 중요합니다.
# F1 스코어
## 개요
F1 스코어(F1 Score)는 기계학습과 데이터과학 분야에서 분류 모델의 성능을 평가하는 데 널리 사용되는 지표 중 하나입니다. 특히 **정밀도(Precision)**와 **재현율(Recall)**이 모두 중요한 상황에서 두 지표의 조화 평균(Harmonic Mean)을 계산하여 모델의 균형 잡힌 성능을 평가하는 데 유용합니다. F1 스코어는 불균형 데이터셋(Imbalanced Dataset)에서 특히 중요한 평가 척도로 간주되며, 이진 분류(Binary Classification)뿐만 아니라 다중 분류(Multi-class Classification) 문제에도 확장하여 사용할 수 있습니다.
---
## 정밀도와 재현율의 개념
F1 스코어를 이해하기 위해서는 먼저 정밀도와 재현율의 정의를 알아야 합니다. 이 두 지표는 **혼동 행렬(Confusion Matrix)**을 기반으로 계산됩니다.
### 혼동 행렬의 구성 요소
| | **예측: 양성** | **예측: 음성** |
|----------------|----------------|----------------|
| **실제: 양성** | 참 양성 (TP) | 거짓 음성 (FN) |
| **실제: 음성** | 거짓 양성 (FP) | 참 음성 (TN) |
- **TP**(True Positive): 실제 양성인 것을 올바르게 양성으로 예측
- **FP**(False Positive): 실제 음성인 것을 잘못되어 양성으로 예측
- **FN**(False Negative): 실제 양성인 것을 잘못되어 음성으로 예측
- **TN**(True Negative): 실제 음성인 것을 올바르게 음성으로 예측
### 정밀도 (Precision)
정밀도는 모델이 "양성"으로 예측한 사례 중 실제로 양성인 비율을 나타냅니다.
\[
\text{Precision} = \frac{TP}{TP + FP}
\]
정밀도가 높다는 것은 거짓 양성(FP)이 적다는 의미이며, 모델이 양성으로 예측할 때 신뢰할 수 있음을 나타냅니다.
### 재현율 (Recall)
재현율은 실제 양성 사례 중에서 모델이 얼마나 잘 찾아냈는지를 나타냅니다.
\[
\text{Recall} = \frac{TP}{TP + FN}
\]
재현율이 높을수록 모델이 실제 양성 사례를 놓치지 않고 잘 탐지한다는 의미입니다.
---
## F1 스코어의 정의와 계산
F1 스코어는 정밀도와 재현율의 **조화 평균**으로 정의됩니다. 산술 평균 대신 조화 평균을 사용하는 이유는 두 값이 모두 높아야 높은 F1 점수를 얻을 수 있도록 하기 위함입니다. 즉, 하나의 값이 낮으면 전체 점수가 크게 떨어집니다.
\[
F1 = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}
\]
### F1 스코어의 특징
- 값의 범위는 **0에서 1 사이**입니다. 1에 가까울수록 성능이 우수함을 의미합니다.
- 정밀도와 재현율 중 하나라도 0이면 F1 스코어는 0이 됩니다.
- 불균형 데이터에서 정확도(Accuracy)가 왜곡될 수 있는 문제를 보완합니다. 예를 들어, 부정 클래스가 99%, 긍정 클래스가 1%인 데이터셋에서 모든 샘플을 부정으로 예측하면 정확도는 99%지만, 재현율은 0이 되어 F1 스코어도 0이 됩니다.
---
## F1 스코어의 확장: Fβ 스코어
F1 스코어는 정밀도와 재현율에 동일한 가중치를 부여하지만, 특정 상황에서는 한 지표를 더 중요시할 수 있습니다. 이를 위해 **Fβ 스코어**가 제안되었습니다.
\[
F_\beta = (1 + \beta^2) \times \frac{\text{Precision} \times \text{Recall}}{(\beta^2 \times \text{Precision}) + \text{Recall}}
\]
- **β > 1**: 재현율에 더 큰 가중치를 부여 (예: 질병 진단에서 모든 환자를 찾아내는 것이 중요할 때)
- **β < 1**: 정밀도에 더 큰 가중치를 부여 (예: 스팸 메일 필터링에서 정상 메일을 스팸으로 잘못 분류하는 것을 피하고 싶을 때)
- **β = 1**: F1 스코어와 동일
---
## 다중 분류 문제에서의 F1 스코어
F1 스코어는 이진 분류 외에도 다중 분류(Multi-class Classification) 문제에 적용할 수 있습니다. 이 경우 각 클래스별로 F1 스코어를 계산한 후, 이를 평균하여 전체 성능을 평가합니다. 대표적인 평균화 방식은 다음과 같습니다:
| 방식 | 설명 |
|------|------|
| **마이크로(Micro)** | 모든 클래스의 TP, FP, FN을 합쳐서 전체 정밀도와 재현율을 계산 후 F1 계산. 데이터 불균형에 강함. |
| **매크로(Macro)** | 각 클래스별 F1 스코어를 계산한 후 단순 평균. 소수 클래스에도 동일한 중요도 부여. |
| **가중치(Weighted)** | 각 클래스의 F1 스코어를 그 클래스의 샘플 수에 따라 가중 평균. 데이터 분포 반영. |
---
## 사용 사례와 중요성
- **의료 진단**: 암 여부 진단 등에서 재현율이 중요하지만, 정밀도도 무시할 수 없음. F1 스코어는 두 요소의 균형을 평가.
- **스팸 탐지**: 정밀도가 높아야 정상 메일이 스팸으로 잘못 분류되는 일을 줄일 수 있음. 하지만 F1 스코어로 전체 성능 점검.
- **감성 분석**: 긍정/부정/중립 등 다중 분류에서 매크로 F1을 사용해 각 감성 카테고리의 성능 균형을 평가.
---
## 참고 자료 및 관련 문서
- [Scikit-learn: F1 Score](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html)
- [Confusion Matrix – 위키백과](https://ko.wikipedia.org/wiki/혼동_행렬)
- [Precision and Recall – Google Machine Learning Guide](https://developers.google.com/machine-learning/crash-course/classification/precision-and-recall)
F1 스코어는 단순한 정확도보다 풍부한 정보를 제공하며, 모델 개선 과정에서 중요한 의사결정 도구로 활용됩니다. 데이터의 특성과 비즈니스 요구사항에 따라 적절한 Fβ 스코어나 평균 방식을 선택하는 것이 중요합니다.