분류(Classification) 모델
“이 데이터가 어떤 종류(범주) 인가를 구분하는 모델”
즉: 결과값이 글자나 라벨(label) 형태 데이
(예: 합격/불합격, 고양이/강아지, 스팸/일반메일 등)
🔹 예시
공부시간 결과
| 20시간 | 합격 |
| 10시간 | 불합격 |
- 이 데이터를 학습해서
- “15시간 공부한 학생은 합격일까 불합격일까?” 를 맞추는 문제 👉 분류 문제
🔹 대표 알고리즘
- Logistic Regression (이름은 회귀지만, 분류용!)
- Decision Tree Classifier
- Random Forest Classifier
- K-Nearest Neighbors (KNN)
- XGBoost Classifier
🔹 성능 평가 지표
- 정확도 (Accuracy) → 얼마나 많이 맞췄는가
- 정밀도 (Precision) → 맞다고 한 것 중 진짜로 맞은 비율
- 재현율 (Recall) → 실제 정답 중 모델이 잘 찾아낸 비율
- F1-score, Confusion Matrix 등
분류 모델 평가란?
분류 모델은 정답(실제값) 과 예측값 이 같은지 다른지를 비교해서
“얼마나 정확하게 맞췄는가”로 성능을 평가
💡핵심 아이디어
분류 모델은 어떤 데이터가 0인지(부정), 1인지(긍정) 를 예측하는 모델
예를 들어:
- 스팸메일(1)인가 아닌가(0)
- 환자가 병이 있다(1) 없다(0)
- 시험 합격(1) 불합격(0)
분류 모델 평가 지표(Accuracy, Precision, Recall)

실제값 예측값 이름 뜻
| 1 | 1 | TP (True Positive) | 실제 1을 1로 예측함 (정답) |
| 0 | 0 | TN (True Negative) | 실제 0을 0으로 예측함 (정답) |
| 1 | 0 | FN (False Negative) | 실제 1을 0으로 예측함 (놓침) |
| 0 | 1 | FP (False Positive) | 실제 0을 1로 예측함 (잘못 탐지) |
Confusion Matrix 혼동행렬 = cross tab
# 모듈 불러오기
from sklearn.metrics import confusion_matrix
# 성능 평가
confusion_matrix(y_test, y_pred)
(1) 정확도 (Accuracy) 또는 정분류율
전체 중에 모델이 정답을 맞춘 비율

# 모듈 불러오기
from sklearn.metrics import accuracy_score
# 성능 평가
accuracy_score(y_test, y_pred)
(2) 정밀도 (Precision)
모델이 ‘1’이라고 예측한 것 중에 실제로 1인 비율

# 모듈 불러오기
from sklearn.metrics import precision_score
# 성능 평가
precision_score(y_test, y_pred, average=None)
(3) 재현율 (Recall) 또는 민감도
실제로 1인 것 중에서 모델이 1이라고 맞춘 비율

# 모듈 불러오기
from sklearn.metrics import recall_score
# 성능 평가
recall_score(y_test, y_pred, average=None)
(4) F-1 Score
정밀도(Precision) 와 재현율(Recall) 을 한 번에 고려해서 평가하는 지표를 설명
모델이 얼마나 정확하게 예측했는지(Precision) 와
얼마나 놓치지 않고 잘 찾아냈는지(Recall)
두 가지를 균형 있게 잘하고 있는가를 나타내는 점수
→ 정밀도(Precision) 와 재현율(Recall) 의 조화평균(Harmonic Mean)
조화평균(Harmonic Mean) 을 쓰는 이유는,
둘 중 하나라도 값이 작으면 전체 점수도 확 떨어지게 만들기 때문

지표 값
| Precision | 1.0 |
| Recall | 0.1 |
모델이 "맞다고 한 건 다 맞긴 하지만" 거의 다 놓침 (Recall 낮음)

F1이 낮다 → 균형이 안 맞다는 뜻
지표 값
| Precision | 0.8 |
| Recall | 0.8 |
둘 다 고르게 좋을 때

F1도 높음 → 균형이 잘 맞는 좋은 모델
한 줄 요약
지표 의미 F1-Score와 관계
| Precision | “맞다고 한 것 중 진짜 맞은 비율” | 너무 높고 Recall 낮으면 불균형 ⚠️ |
| Recall | “진짜 맞는 것 중 맞게 예측한 비율” | 너무 높고 Precision 낮으면 불균형 ⚠️ |
| F1-Score | “두 성능의 균형” | 둘 다 적당히 높을 때 최고 |
언제 F1-Score를 쓰냐면
✔️ 정답(1)이 적은 불균형 데이터일 때
✔️ Precision과 Recall 둘 다 중요할 때
예: 스팸메일 분류, 질병 진단, 이상 탐지 등
F1-Score는 “정확히 맞춘 비율(Precision)”과
“놓치지 않은 비율(Recall)”을 균형 있게 평가하는 점수
값이 1에 가까울수록 → 완벽한 분류 모델!
# 모듈 불러오기
from sklearn.metrics import f1_score
# 성능 평가
f1_score(y_test, y_pred, average=None)