데이터 균형 조정안녕하세요,
제 응답 비율이 27%에 불과해서 데이터 분석 전에 데이터 균형을 맞추고 싶습니다. 먼저 목표 열을 기준으로 계층화된 검증 열을 생성하여 훈련, 검증, 테스트 세트를 만들었습니다. 제 질문은 훈련 세트와 검증 세트 모두에서 데이터를 균형 있게 조정해야 하는지, 아니면 테스트 세트에는 적용하지 않아야 하는지, 아니면 훈련 세트에서만 데이터를 균형 있게 조정해야 하는지입니다. SMOTE 기법과 모델 스크리닝 플랫폼의 교차 검증 기법을 결합된 데이터베이스(훈련, 검증, 테스트)에 사용하고, 검증 열은 테스트 세트 성능 분석에 사용하고 싶습니다. 이 방법이 교차 검증 전에 데이터 균형을 맞추는 방법일까요? 다른 제안도 환영합니다.
문안 인사,
월요일
기본 데이터 분석 및 모델링예측 모델링 및 머신 러닝Re: 데이터 밸런싱안녕하세요 @루 ,
저는 분류를 위한 SMOTE나 다른 균형 기법에 대해 엇갈린 감정을 가지고 있습니다.
- SMOTE는 학습 단계에서 두 클래스의 비율을 완전히 변경하기 때문에 분류기의 보정을 완전히 "파괴"합니다. 즉, 분류기가 계산한 확률이 데이터셋에서 실제로 측정된 확률과 일치하지 않습니다. 이는 특정 응용 분야(의료, 금융/은행 등)에서 특히 민감할 수 있는데, 최종 다수 클래스 대신 계산된 확률이 필요할 수 있기 때문입니다.
- 더욱이, 원본 논문 과 이후 연구에서 확인된 바에 따르면 SMOTE는 분류기가 의사결정 트리나 나이브 베이즈와 같은 약한 학습 모델일 때만 작은 이점을 제공합니다. 랜덤 포레스트, XGBoost 등과 같은 최첨단/"강력한" 모델과 함께 사용할 경우 SMOTE는 이점을 제공하지 못하며, 오히려 학습에 해로울 수 있습니다. 다른 연구: 머신 러닝 기반 예측 모델에 대한 클래스 불균형 보정의 해악: 시뮬레이션 연구 - Carriero - 2025 - 의학 통계 - Wiley 온라인 도서관
대부분의 연구에서 이러한 기술에 대한 결론은 동일합니다. " 강력한 분류기를 사용하여 적절하고 최상의 예측을 달성하고 데이터 균형을 맞추는 것은 필요하지도 유익하지도 않다 " 또는 " 계층 불균형을 수정하는 것은 항상 필요하지 않으며 개인 기준으로 신뢰할 수 있는 위험 추정치를 산출하는 것을 목표로 하는 임상 예측 모델에 해로울 수도 있다 ".
- SMOTE는 약한 학습기를 사용하거나 의사결정 임계값을 조정할 수 없는 경우와 같이 특정 상황에서 유용할 수 있지만, 선택한 성능 지표에 따라 상대적인 이점이 달라질 수 있습니다. 그 외에는 사용하지 않는 것이 좋습니다.
소수 집단의 27%는 큰 불균형이 아니며, 의사결정 임계값을 조정하거나 이익 행렬을 지정하는 것과 같은 기존 방법을 사용하면 분류기의 성능을 상황에 맞게 조정할 수 있습니다. 새로운 특성/변수를 추가하고, 모델을 돕기 위해 데이터 전처리(특성 공학)를 수행하고, 새로운 데이터를 추가하거나 가장 대표적이고 다른 관측치를 선택하고, 비교 및 벤치마킹을 위해 여러 모델을 시도하는 것 또한 성능 향상에 도움이 될 수 있습니다.
불균형 데이터는 훈련 세트의 소수 집단이 충분히 대표적이지 않거나, 특성이 레이블을 나타내는 지표로 적합하지 않기 때문에 문제가 된다는 점을 이해하는 것이 중요합니다. 이상적인 시나리오는 이 두 가지 문제를 해결하여 불균형에도 불구하고 모델이 완벽하게 작동하는 것입니다.
따라서 워크플로에 SMOTE(또는 필요한 경우 전처리) 작업을 추가하는 것은 데이터 유출 및 과대 낙관적인 성능 기대를 방지하기 위해 신중하게 수행해야 합니다. SMOTE 또는 기타 균형 조정 기법은 학습 세트와 검증 세트(학습, 비교 및 가장 우수한 성능의 모델 선택)에 적용해야 하지만, 테스트 세트에는 적용해서는 안 됩니다. 모델은 "실제" 조건(심각한 불균형)에서 성능을 발휘하고 평가되어야 하기 때문입니다.
이 답변이 도움이 되기를 바랍니다.
Re: 데이터 밸런싱빅터, 명확한 조언 감사합니다.
당분간 "불균형 분류" 추가 기능을 사용하여 모델의 성능을 확인하고, SMOTE와 TOMEC 밸런싱을 적용하고 가중치를 적용하지 않은 신경망, 부트스트랩 포레스트, 부스팅 트리 모델에 대한 정밀도 재현율(Precision Recall)과 ROC AUC를 계산해 보았습니다. 하지만 AUC는 전혀 향상되지 않았습니다. 따라서 데이터 밸런싱을 적용하더라도 성능 향상에는 별 도움이 되지 않을 것 같습니다.
귀하의 지원에 감사드립니다.
문안 인사
월요일
Re: 데이터 밸런싱안녕, 러스.
학습, 검증, 테스트 행을 구분하는 검증 열이 있습니다. 중첩 교차 검증을 적용할 때 모델 스크리닝 플랫폼에서 이 열을 지정해야 할까요? 이 열의 포함 여부에 따라 성능 통계 요약이 달라지는 것을 확인했습니다.
이 경우 권장되는 접근 방식이 무엇인지 확인해 주시겠습니까?
ML 모델의 성능을 비교하고 보고하고 싶습니다.
F1, MCC, Sens, Spec, FP, FN 등과 같은 현재 제작된 요약 보고서보다 더 자세한 내용을 빠르게 얻을 수 있는 방법이 있습니까?
문안 인사,
월요일
Re: 데이터 밸런싱안녕하세요 @루 ,
모델 스크리닝 플랫폼을 시작할 때 교차 검증 옵션을 선택한 경우 검증 열을 추가해도 아무것도 변경되지 않습니다. 선택한 교차 검증 옵션이 검증 열을 대신하게 되기 때문입니다. 모델 스크리닝 플랫폼을 시작합니다 (검증 부분).
다른 결과가 나오는 것은 난수 시드를 수정하지 않은 경우 난수 시드로 인한 것입니다. 교차 검증 옵션을 선택할 때 검증 열을 추가하거나 추가하지 않으면 고정된 난수 시드를 사용하더라도 동일한 결과가 나타납니다.

모델 평가, 비교 및 선택이라는 (광범위한) 주제와 관련하여 몇 가지 다른 주제가 관련 검증 전략을 찾는 데 도움이 될 수 있습니다.
ML 모델(예: 신경망 및 랜덤 포레스트)에 k-폴드 교차 검증을 수행하고 고정 테스트 데이터에서 모델 성능을 확인하는 방법은 무엇입니까? 모델 스크리닝
하나 이상의 유효성 검사 열
k-폴드 적합 품질을 사용한 교차 검증
1개만 남기기 또는 k-겹 교차 검증 방법??
교차 검증 - 검증 열 방법
이 답변이 도움이 되기를 바랍니다.