클래스 가중치와 재표본화, 불균형 학습을 조정하는 두 방법

페이지 정보

profile_image
작성자 관리자
댓글 0건 조회 39회 작성일 26-10-09 07:13

본문

분류 데이터에서 어떤 클래스는 많고 다른 클래스는 적을 때, 학습에 어떤 조정을 할지 고민하게 됩니다. 클래스 가중치는 학습에서 각 클래스가 반영되는 비중을 조정하고, 재표본화는 학습에 제공할 표본 구성을 바꾸는 접근입니다.

둘은 같은 목적에 쓰일 수 있지만 동일한 작업은 아닙니다. 무엇을 바꿨는지와 평가 자료를 어떻게 남겼는지를 구분해야 실험 결과를 제대로 비교할 수 있습니다.

서로 다른 수량의 색상 블록과 노트북이 놓인 학습 책상

AI 생성 삽화 · 개념 이해를 위한 AI 연출 이미지이며 실제 시스템 구성도나 측정 결과가 아닙니다.

핵심 정리
가중치는 클래스의 학습 비중을, 재표본화는 학습 표본 구성을 조정합니다. 먼저 데이터를 나누고 학습 구간에서만 조정을 적용하며 같은 평가 집합으로 효과를 비교합니다.


1. 비율이 다르다는 사실과 문제 정의를 구분합니다

가상의 분류 자료에 일반 사례 900개와 관심 사례 100개가 있다고 생각해 봅니다. 관심 사례가 적다는 사실만으로 두 클래스를 반드시 같은 개수로 만들어야 한다는 결론이 나오지는 않습니다.

실제 서비스에서 어떤 오류를 줄여야 하는지와 자료가 어떻게 수집됐는지를 먼저 살펴야 합니다. 모든 입력을 일반 사례라고 답해도 이 가상 자료에서는 정확도가 90%가 되지만 관심 사례를 하나도 찾지 못합니다.

이는 계산을 설명하기 위한 예시이며 실제 모델 성능이 아닙니다. 관심 사례를 놓치는 것과 일반 사례를 잘못 알리는 것의 영향을 나누어 평가 목표를 정합니다.

학습 조정을 하기 전 기준 모델과 클래스별 결과를 기록하면 무엇이 달라졌는지 비교하기 쉽습니다. 자료 수가 적은 이유가 수집 누락인지 원래 드문 사건인지도 확인할 질문입니다.

숫자의 균형을 맞추는 작업이 잘못된 정답이나 누락된 특성을 자동으로 해결하지는 않습니다. 어떤 문제를 해결하려는 실험인지 먼저 문장으로 적어 두는 것이 좋습니다.


2. 클래스 가중치는 원본 행을 늘리는 기능이 아닙니다

클래스 가중치를 지원하는 모델에서는 클래스별 비중을 학습에 반영할 수 있습니다. 예를 들어 scikit-learn의 로지스틱 회귀는 class_weight 설정을 제공합니다.

설정을 넣었다고 원본 데이터 파일의 행이 자동으로 늘어나는 것은 아닙니다. 학습 알고리즘이 가중치를 어떻게 사용하고 다른 가중치와 어떻게 결합하는지는 해당 모델의 문서를 확인해야 합니다.

모든 모델이 같은 이름과 방식으로 지원한다고 가정하지 않습니다. 가상의 실험에서 관심 클래스에 더 큰 비중을 주었다면 그 값과 선택 근거를 기록합니다.

값이 크다는 이유만으로 관심 클래스의 실제 사례가 새로 생긴 것은 아닙니다. 같은 소수 사례에서 배우는 정보의 범위에는 여전히 한계가 있을 수 있습니다.

가중치를 바꾼 실행과 바꾸지 않은 실행을 같은 평가 자료에서 비교하고 다른 설정까지 동시에 바꾸었다면 별도 실험으로 구분합니다. 학습 비중을 조정하는 것과 최종 예측의 임계값을 바꾸는 것도 다른 단계입니다.

관련 공식 문서


3. balanced 설정의 계산 기준을 확인합니다

scikit-learn의 compute_class_weight는 balanced 방식에서 클래스 빈도에 반비례하는 가중치를 계산하는 규칙을 제공합니다. 표본 가중치를 주지 않은 경우 전체 표본 수를 클래스 수와 해당 클래스 표본 수의 곱으로 나누는 방식입니다.

앞의 가상 자료 1,000개와 두 클래스를 사용하면 900개인 클래스의 값은 약 0.556, 100개인 클래스의 값은 5가 됩니다. 두 클래스의 단순 합산 가중치는 각각 약 500으로 맞춰지는 계산입니다.

이것이 모든 업무에서 최적인 비용 비율이라는 뜻은 아닙니다. 계산 규칙이 정한 균형과 서비스에서 중요하게 보는 오류의 비용은 구분해야 합니다.

어떤 자료로 빈도를 계산했는지와 클래스 이름의 대응도 남깁니다. 정수 라벨 0과 1의 의미를 바꾸고도 이전 가중치를 그대로 쓰면 의도와 달라질 수 있습니다.

여러 분할로 실험한다면 각 학습 구간에서 적용한 설정을 확인합니다. 자동 계산 옵션을 썼다는 한 줄보다 계산에 참여한 자료 범위가 분명한 기록이 유용합니다.

관련 공식 문서


4. 재표본화는 어떤 표본을 제공할지 바꿉니다

과대표본화는 적은 클래스의 표본을 늘리는 접근이며 imbalanced-learn은 단순한 무작위 반복과 합성 표본을 만드는 방법을 구분해 설명합니다. 같은 표본을 반복하는 것과 새로운 실제 사례를 수집하는 것은 다릅니다.

합성 표본 역시 현실에서 새로 관측한 사례라고 해석해서는 안 됩니다. 과소표본화는 많은 쪽의 일부를 선택하는 접근으로 이해할 수 있으며 어떤 표본을 남기는지는 방법에 따라 다릅니다.

따라서 같은 개수로 맞췄더라도 학습에 사용한 정보가 같다고 볼 수 없습니다. 가상의 900개와 100개 자료에서 900개 쪽을 줄이면 제외된 사례가 무엇인지에 따라 결과가 달라질 수 있습니다.

반대로 작은 쪽을 반복해 늘리면 실제 고유 사례 수는 그대로일 수 있습니다. 원본 개수와 학습에 제공한 개수, 고유 사례 수를 나누어 적으면 이런 차이가 보입니다.

도구 이름만 기록하기보다 어떤 클래스에 어떤 조정을 했는지와 난수 설정을 함께 남기는 편이 좋습니다.

관련 공식 문서

관련 공식 문서


5. 자료를 나눈 뒤 학습 구간에서 적용합니다

전체 자료를 먼저 재표본화한 뒤 학습과 테스트로 나누면 평가에 사용할 정보가 표본 생성이나 선택 과정에 관여할 수 있습니다. imbalanced-learn 공식 안내는 이런 처리에서 데이터 누수와 평가 분포 변경이 발생할 수 있음을 설명합니다.

먼저 평가 역할을 나누고 재표본화는 학습 과정 안에 두는 것이 기본적인 점검 사항입니다. 교차 검증을 한다면 각 분할의 학습 구간에만 해당 처리가 적용되는지 확인합니다.

도구의 파이프라인에 넣었다는 사실만으로 이미 변형해 둔 전체 데이터의 문제가 사라지는 것은 아닙니다. 어떤 시점에 무엇을 적용했는지를 기록해야 합니다.

평가 자료의 클래스 비율을 임의로 맞춘 결과와 실제 사용 환경을 반영한 평가 결과도 구분합니다. 실험용 비교에서 균형 자료를 별도로 사용했다면 목적과 구성 조건을 명시합니다.

최종 성능을 좋게 보이게 하려고 평가 대상 자체를 바꾸지 않습니다. 원본 자료를 보존하고 학습용 변환 결과와 다른 파일로 관리하면 확인하기 수월합니다.

관련 공식 문서


6. 한 번에 하나의 조정부터 비교합니다

입문 실험에서는 기준 모델, 가중치 적용 모델, 재표본화 적용 모델을 구분해 비교하는 구성이 이해하기 쉽습니다. 두 방법을 동시에 쓸 수도 있지만 어떤 효과가 어디에서 왔는지 설명하기 어려워질 수 있습니다.

이 제안은 모든 문제에 정해진 실험 순서를 강요하는 것이 아니라 변화의 원인을 분리해 보기 위한 방법입니다. 평가 표에는 전체 정확도 외에도 관심 클래스의 정밀도와 재현율 등 목적에 맞는 지표와 사례 수를 함께 둡니다.

어느 방법이 항상 우수하다고 결론 내리지 않고 자료와 모델 조건에서 확인한 결과를 적습니다. 학습 시간이나 메모리 사용이 달라졌다면 성능과 별도 항목으로 기록합니다.

잘못 분류된 사례를 살펴볼 때는 단순한 비율 문제인지 정답 정의와 입력 품질의 문제인지 구분할 질문을 만듭니다. 선택한 설정은 별도의 최종 평가 자료에서 확인합니다.

데이터의 균형을 맞췄다는 사실보다 어떤 오류가 어떻게 변했는지를 설명하는 것이 실험의 결과입니다.


7. 자주 묻는 질문

Q1. 클래스 가중치를 쓰면 소수 클래스 데이터가 늘어나나요?

원본 행 수를 늘리는 기능과는 다릅니다. 해당 모델이 학습에서 클래스별 비중을 반영하는 방식이므로 실제 고유 사례 수와 구분해 기록합니다.

Q2. 과대표본화는 실제 데이터를 더 수집한 것과 같나요?

반복하거나 합성한 표본은 새로 관측한 실제 사례와 다릅니다. 사용한 방법과 원본·변환 후 수량을 나누어 적고 정보의 한계를 평가에서 확인해야 합니다.

Q3. 테스트 자료도 절반씩 맞춰야 하나요?

최종 평가 목적과 실제 사용 조건을 반영해야 하므로 자동으로 같은 비율로 맞추지 않습니다. 별도 균형 평가를 한다면 그 목적을 밝히고 원래 분포에서의 결과와 구분합니다.

Q4. 가중치와 재표본화를 함께 쓰면 더 좋아지나요?

항상 좋아진다고 보장할 수 없습니다. 각각의 효과를 비교하고 함께 적용한 설정도 같은 평가 자료에서 검증해 어떤 오류가 달라졌는지 확인합니다.


참고 자료

댓글목록

등록된 댓글이 없습니다.