예측하려는 값이 범주형일 때, 즉 이탈이냐 잔류냐, 사기냐 정상이냐, 승인이냐 거절이냐를 나눌 때는 분류 모델을 사용합니다. 문제는 어떤 모델을 선택할지, 그 성능을 어떻게 평가해야 하는지입니다.
Watch out
주요 모델
로지스틱 회귀
선형 모델이며 계산 속도가 빠르고 해석이 쉽습니다. 각 변수의 영향을 설명할 수 있는 계수를 얻습니다. 기본 비교 모델로 많이 쓰이며, 스케일링과 대체로 선형적인 경계가 필요합니다.
의사결정나무
단순한 if-then 분기로 읽기 쉽습니다. 단독으로는 과적합하기 쉽지만, 훨씬 강한 앙상블의 토대가 됩니다.
랜덤포레스트
여러 트리가 함께 투표합니다. 견고하고 별도의 튜닝이 많이 필요하지 않으며 비선형 관계도 잘 다뤄서, 기본 선택으로 많이 사용됩니다.
그래디언트 부스팅 / XGBoost
이전 모델의 오차를 보완하도록 트리를 순차적으로 학습합니다. 표 형식 데이터에서 높은 성능을 보이는 경우가 많지만 튜닝 비용이 듭니다.
SVM & KNN
SVM은 최대 마진 초평면을 찾고(스케일에 민감), KNN은 최근접 이웃으로 분류합니다(단순하지만 대규모 데이터에서 느림). 둘 다 스케일링된 변수가 필요합니다.
어떤 모델을 선택해야 할까?
| 모델 | 해석성 | 적합한 상황 |
|---|---|---|
| 로지스틱 회귀 | 높음 | 기본 모델, 설명 가능한 결과 |
| 랜덤포레스트 | 중간 | 기본 선택, 적은 튜닝 |
| XGBoost | 낮음 | 표 데이터 최고 정확도 |
| SVM / KNN | 낮음 | 작고 잘 스케일된 데이터 |
중요한 지표
- 정밀도(Precision): 양성이라 예측한 것 중 맞은 비율
- 재현율(Recall): 실제 양성 중 잡아낸 비율
- F1: 정밀도와 재현율의 균형
- ROC-AUC: 모든 임계값에 걸친 순위 품질
위 혼동 행렬이 이 모든 지표의 계산 기반이 됩니다. 하나의 점수를 믿기 전에 먼저 확인하는 것이 좋습니다.
흔한 실수
- 불균형 문제를 정확도만으로 판단
- 학습/테스트 분할 없이 학습 데이터를 평가에 그대로 사용하는 것
- 분할 전에 스케일링·결측 대치를 수행해 데이터 누수(Data Leakage)가 발생하는 것
- 랜덤포레스트로 충분한 성능을 보이는데도 XGBoost를 과도하게 튜닝하는 것
SKARI Model Lab에서 모델 비교
Model Lab은 바로 이를 위해 만들어졌습니다. 별도의 코드 작성 없이 같은 데이터에 여러 분류 모델을 학습시켜 동일한 조건에서 비교합니다.
- 한 데이터셋에 로지스틱·랜덤포레스트·XGBoost·SVM 등을 적합
- 정확도·정밀도·재현율·F1·ROC-AUC를 나란히 비교
- 각 모델의 혼동 행렬과 변수 중요도 확인
Takeaway
자주 묻는 질문
어떤 모델로 시작할까요?
기본 모델로 로지스틱 회귀, 기본 선택지로 랜덤포레스트로 시작하세요. 더 높은 예측 성능이 필요하다면 XGBoost로 넘어가세요.
이 모델들은 스케일링이 필요한가요?
로지스틱·SVM·KNN은 필요하고, 트리 기반(랜덤포레스트, XGBoost)은 스케일링의 영향을 거의 받지 않습니다.
정확도와 F1 중 무엇을 볼까요?
클래스가 불균형하거나 두 오류 유형의 비용이 다를 때는 언제나 F1(또는 정밀도/재현율)을 쓰세요.
결론
모든 상황에서 가장 뛰어난 분류 모델은 없습니다. 데이터의 특성, 클래스 균형, 해석 가능성 요구 수준에 맞는 모델이 있을 뿐입니다. 동일한 조건에서 비교하고, 올바른 지표로 판단하세요.
Takeaway
회귀분석
결과가 범주가 아니라 숫자일 때
데이터 정규화 가이드
로지스틱·SVM·KNN에 필요한 스케일링
SKARI로 시작하기
모델을 몇 분 만에 학습·비교