"설문 데이터 기반 패널 응답 예측" 에서의 분류성능지표
Accuracy (정확도)
정확도는 모델이 얼마나 정확하게 예측했는지를 측정하는 지표입니다.
예를 들어, 설문 데이터에서 패널의 취향을 예측한다고 가정해봅시다.
한 질문에서 패널 10명 중 9명의 취향을 올바르게 예측하고,
1명의 취향을 잘못 예측했다면 모델의 정확도는 90%가 됩니다.
정확도는 클래스(카테고리)가 동일한 분포를 가질 때 유용한 지표입니다.
예를 들어, 설문 응답 데이터에서 모든 카테고리의 응답 비율이 균등하다면 정확도는 적합한 평가 지표가 됩니다.
Imbalanced data example (데이터 불균형 사례)
설문 데이터에서 특정 응답이 다른 응답에 비해 현저히 많은 경우를 생각해 봅시다.
예를 들어, 응답자의 99%가 "집에서 휴식을 취하는 것을 선호한다"고 답했고,나머지 1%만 "야외에서 활동하는 것을 선호한다"고 답했다고 가정합시다.
이런 경우, 어떤 패널이 "야외 활동"을 선호하는지 예측하는 모델을 만들려고 한다면, 모델이 잘못 학습할 가능성이 높습니다.
만약 모델이 모든 응답을 "집에서 휴식"으로 예측한다면, 명백히 잘못된 모델이겠지만 정확도는 99%로 높게 나타날 것입니다. 이는 모델이 실제로는 전혀 유의미하지 않음에도 불구하고, 정확도를 평가 지표로 사용했기 때문입니다.
결론적으로, 데이터가 불균형할 때 정확도는 좋은 평가 지표가 아닙니다.
Solving imbalanced data through metrics (데이터 불균형 문제 해결하기)
데이터 불균형 문제를 해결하는 한 가지 방법은 F1 Score를 사용하는 것입니다. F1 Score는 단순히 예측이 틀린 개수만 보는 것이 아니라, 틀린 유형까지 고려하여 모델을 평가합니다. F1 Score를 계산하기 위해서는 **Precision (정밀도)**와 Recall (재현율) 개념이 필요합니다.
Precision and Recall: foundations of the F1 Score
Precision (정밀도): F1 Score의 첫 번째 구성 요소
Precision은 "모델이 True라고 예측한 것 중 실제로 True인 비율"을 나타냅니다.
- 설문 예시: 모델이 "패널이 특정 질문에서 '야외 활동'을 선호한다고 예측"한 경우, 그 중 실제로 "야외 활동"을 선호하는 비율입니다.
정확하지 않은 모델은 많은 응답을 Positive로 예측할 것입니다(예: 많은 패널이 야외 활동을 선호한다고 예측). 하지만 이러한 예측 중 많은 부분이 Noise(잘못된 Positive 예측)로 포함될 것입니다.
Precision이 높은 모델은 "pure(순수)"한 Positive를 예측합니다. 예를 들어, "야외 활동"을 선호한다고 예측한 패널은 실제로 모두 "야외 활동"을 선호한다는 의미입니다.
Recall (재현율): F1 Score의 두 번째 구성 요소
Recall은 "실제로 True인 것 중에서 모델이 True라고 예측한 비율"을 나타냅니다.
- 설문 예시: "실제로 '야외 활동'을 선호하는 패널" 중 모델이 "야외 활동"을 올바르게 찾아낸 비율입니다.
Recall이 높은 모델은 전체 데이터에서 Positive 케이스(야외 활동 선호 패널)를 놓치지 않고 잘 예측합니다.
Precision vs Recall
Precision과 Recall의 차이를 이해하기 위해, 설문 데이터를 다음과 같이 비유해봅시다:
- 설문 데이터를 통해 "특정 취미를 가진 사람들을 찾아내야 한다"고 가정해봅시다.
- Precision은 "모델이 찾은 응답(취미를 가진 사람들)이 얼마나 정확한지"를 측정합니다.
- Recall은 "모델이 전체 응답 데이터에서 필요한 정보를 얼마나 잘 찾아냈는지"를 측정합니다.
예를 들어, 모델이 설문 데이터를 기반으로 응답자가 골프를 좋아한다고 예측했다고 가정해봅시다:
- Precision이 높은 모델은 "골프를 좋아한다고 예측된 응답"이 모두 실제로 골프를 좋아하는 응답이라는 것을 보장합니다.
- Recall이 높은 모델은 "전체 골프를 좋아하는 응답자"를 가능한 한 많이 찾아내는 데 집중합니다.
Precision-Recall Trade-Off
이상적으로는 모델이 Positive를 모두 제대로 분류하고, Positive만 정확히 분류하면 됩니다. 하지만 Precision과 Recall은 종종 상충 관계(trade-off)를 가지며, 두 지표를 동시에 높이기는 어렵습니다.
- Precision이 높은 모델은 Recall이 낮아질 가능성이 있습니다. (Noise를 줄이기 위해 Positive를 덜 예측)
- Recall이 높은 모델은 Precision이 낮아질 가능성이 있습니다. (많은 Positive를 찾기 위해 Noise가 증가)
The F1 Score: combining Precision and Recall
F1 Score는 Precision과 Recall의 조화평균(Harmonic Mean)으로, 두 지표의 균형을 측정합니다. 공식은 아래와 같습니다:
F1=2⋅Precision⋅RecallPrecision+RecallF1 = 2 \cdot \frac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}}
- 왜 조화평균을 사용할까?
- Precision과 Recall 중 더 작은 값에 큰 영향을 받게 하기 위해 사용합니다.
- 예를 들어:
- Precision = 0.9, Recall = 0.1 → F1 Score = 0.18
- Precision = 0.6, Recall = 0.4 → F1 Score = 0.48
Conclusion (결론)
결론적으로, F1 Score는 Precision과 Recall이 모두 높을 때 높은 값을 가지며, 0.0 ~ 1.0 사이의 값을 가집니다(예: 0.87).
설문 데이터를 기반으로 패널의 선호도를 예측할 때, 데이터가 불균형한 경우(예: 특정 카테고리에 응답이 치우친 경우) **정확도(Accuracy)**만으로는 모델의 성능을 제대로 평가하기 어렵습니다. 이때 F1 Score를 사용하면 모델의 성능을 더욱 공정하게 평가할 수 있습니다.
예를 들어:
- 설문 데이터에서 응답자 99%가 "집에서 휴식을 선호"하고, 1%만 "야외 활동을 선호"한다고 가정.
- 모든 패널을 "집에서 휴식을 선호"한다고 예측하는 모델의 정확도는 99%로 높게 보일 수 있습니다.
- 하지만 F1 Score로 평가하면 Recall이나 Precision이 0에 가까워져, 모델이 실제로는 나쁜 성능을 가진 것을 알 수 있습니다.
따라서, 데이터가 불균형한 설문 데이터에서는 F1 Score와 같은 메트릭을 사용하여 공정하게 모델을 평가해야 합니다.