The accuracy trap
If 1% of users churn, a model that predicts "no one churns" is 99% accurate and 0% useful. Class imbalance is not a problem of the model; it is a problem of the metric. Switch to PR-AUC or a cost-weighted score and the trap disappears.
Three honest responses
- Change the metric — PR-AUC, F-beta, recall at fixed precision, expected cost.
- Change the threshold — leave the model as-is, pick the operating point that respects the cost matrix.
- Change the sampling — class weights, downsampling the majority, SMOTE for tabular minority synthesis.
What not to do
Do not oversample naïvely without a CV pipeline that resamples inside each fold. Do not use SMOTE before the train/val split. Do not chase 50/50 balance just because a textbook said so; the right balance is the one that minimizes the metric you actually care about.
"교과서가 그랬다는 이유로 50/50 balance를 추구하지 마. 옳은 balance는 너가 진짜 신경 쓰는 metric을 최소화하는 그거야." 클래스 불균형 공부하면서 배운 최고의 인사이트입니다. 무조건 소수 클래스를 샘플링 업하든가 ,smote, rose...사용하든가 아무 생각없이 자동으로 설정했어요.(자격증 공부때문에).