브리프유 브리프유 로그인
자청의 유튜브 추출기

유튜브 영상의 자막과 AI요약을 추출해보세요

AI 채팅

BETA

분류 모델 평가 지표 완벽 가이드: MAE, F1, ROCAUC 제대로 이해하기!

게시일: 작성자: 자청의 유튜브 추출기

머신러닝 분류 모델 완전 정복! 🚀

이번 시간에는 머신러닝에서 두 번째로 중요한 문제인 분류 문제와 모델 성능을 제대로 평가하는 방법들을 알아볼 거야.

1. 분류 문제란 뭘까? 🤔

앞에서 배운 회귀 문제는 숫자를 예측하는 거였잖아? 예를 들어 집값을 예측하거나, 내일의 온도를 예측하는 것처럼 말이야.

하지만 분류 문제는 데이터를 범주로 나누는 거야. 마치 스팸 메일인지 아닌지, 시험에 합격인지 불합격인지, 환자가 특정 질병에 걸렸는지 아닌지를 구분하는 거지. 숫자를 맞추는 게 아니라, '이건 A다', '저건 B다' 하고 딱 정해주는 거라고 생각하면 돼.

2. 모델 성능 평가, 왜 중요할까? 🧐

모델이 얼마나 일을 잘하는지 알려면 평가를 해야겠지? 분류 문제에서는 여러 가지 평가 지표를 사용하는데, 이걸 제대로 이해해야 모델을 제대로 쓸 수 있어.

2.1. 혼동 행렬 (Confusion Matrix) 📊

가장 기본이 되는 평가 도구야. 실제 값과 모델이 예측한 값을 표로 정리해서 보여줘.

  • TP (True Positive): 실제 양성인데, 모델도 양성으로 잘 맞춘 경우. (예: 실제 암인데 암이라고 예측)
  • TN (True Negative): 실제 음성인데, 모델도 음성으로 잘 맞춘 경우. (예: 실제 암이 아닌데 암이 아니라고 예측)
  • FP (False Positive): 실제 음성인데, 모델이 양성으로 잘못 예측한 경우. (예: 실제 암이 아닌데 암이라고 예측 - 거짓 양성)
  • FN (False Negative): 실제 양성인데, 모델이 음성으로 잘못 예측한 경우. (예: 실제 암인데 암이 아니라고 예측 - 거짓 음성)

이 표를 보면 모델이 어떤 부분에서 실수를 많이 하는지 한눈에 알 수 있어.

2.2. 정확도 (Accuracy) 🎯

가장 직관적인 지표야. 전체 데이터 중에서 모델이 맞춘 비율이지.

$$
\text{정확도} = \frac{\text{맞춘 개수}}{\text{전체 개수}}
$$

하지만 데이터가 불균형할 때는 정확도만으로는 모델 성능을 제대로 알기 어려울 수 있어. 예를 들어, 100명 중에 99명이 암이 아닌데, 모델이 전부 '암 아님'으로 예측해도 정확도는 99%가 나오잖아.

2.3. 정밀도 (Precision) 🔍

모델이 '양성'이라고 예측한 것들 중에서, 실제로 '양성'인 비율이야.

$$
\text{정밀도} = \frac{\text{TP}}{\text{TP} + \text{FP}}
$$

정밀도가 높다는 건, 모델이 '양성'이라고 예측했을 때 틀릴 확률이 적다는 뜻이야. 거짓 양성(FP)을 줄이는 데 중요해.

2.4. 재현율 (Recall) / 민감도 (Sensitivity) 📈

실제로 '양성'인 것들 중에서, 모델이 '양성'으로 제대로 예측한 비율이야.

$$
\text{재현율} = \frac{\text{TP}}{\text{TP} + \text{FN}}
$$

재현율이 높다는 건, 실제 '양성'인 것들을 모델이 놓치지 않고 잘 찾아낸다는 뜻이야. 거짓 음성(FN)을 줄이는 데 중요해.

2.5. F1 스코어 (F1 Score) ⚖️

정밀도와 재현율의 조화 평균이야. 둘 다 중요할 때 사용해.

$$
\text{F1 스코어} = 2 \times \frac{\text{정밀도} \times \text{재현율}}{\text{정밀도} + \text{재현율}}
$$

정밀도와 재현율이 비슷할수록 F1 스코어가 높아져.

2.6. ROC 곡선 (ROC Curve) & AUC (Area Under the Curve) 🏞️

  • ROC 곡선: 모델이 '양성'이라고 판단하는 기준(임계값)을 바꿀 때마다, 재현율(민감도)과 특이도(1 - 거짓 양성률)의 관계를 그래프로 나타낸 거야.
  • AUC: ROC 곡선 아래의 면적이야. 이 면적이 1에 가까울수록 모델의 분류 성능이 좋다고 볼 수 있어.

3. 어떤 지표가 중요할까? 🤷‍♀️

상황에 따라 어떤 지표가 더 중요한지가 달라져.

  • 의료, 보안 분야: 재현율이 중요할 때가 많아. 암 환자를 놓치거나, 보안 시스템에서 위험을 감지하지 못하면 큰일이니까. (거짓 음성 FN을 줄이는 게 중요!)
  • 광고 추천, 스팸 메일 필터링: 정밀도가 중요할 때가 있어. 엉뚱한 광고를 추천하거나, 정상 메일을 스팸으로 분류하면 짜증 나잖아. (거짓 양성 FP를 줄이는 게 중요!)

정밀도와 재현율은 서로 반비례하는 경향이 있어서, 하나를 높이면 다른 하나가 낮아지는 트레이드 오프(trade-off) 관계가 있어. 그래서 F1 스코어나 AUC 같은 종합적인 지표로 모델 성능을 평가하는 거지.

4. 실제 코드 실습 💻

이론만으로는 부족하니까, 실제 코드로 모델을 학습시키고 평가 지표들을 계산해 볼 거야.

  • 로지스틱 회귀 (Logistic Regression): 이름은 '회귀'지만, 분류 문제에 사용되는 모델이야.
  • 라이브러리 활용: sklearn 같은 라이브러리를 사용하면 혼동 행렬, 정확도, 정밀도, 재현율, F1 스코어, ROC 곡선 등을 쉽게 계산하고 시각화할 수 있어.

마무리 💡

분류 모델은 단순히 정확도만으로 평가하면 안 돼. 정밀도, 재현율, F1 스코어, ROC AUC 등 다양한 지표를 종합적으로 살펴봐야 모델의 진짜 성능을 알 수 있어. 실제 시험에서도 어떤 지표를 계산하라고 나올 수 있으니, 오늘 배운 내용과 코드 실행 방법을 잘 익혀두면 문제 푸는 데 큰 도움이 될 거야! 수고 많았어! 😊

최근 검색 기록