현재 선택한 빅데이터 분석 과정

빅데이터분석기사 필기 이론 학습

이론 목록으로 돌아가기

불균형 데이터 처리

불균형 자료의 평가 지표와 재표본화·임곗값 설정을 익힌다.

예상 읽기 11

핵심 요약

클래스 불균형은 한 클래스의 관측치가 다른 클래스보다 훨씬 적은 상태다. 불균형 자체가 오류는 아니지만 다수 클래스만 예측해도 정확도가 높게 보일 수 있으므로, 소수 클래스 비율보다 어떤 오분류가 더 큰 손실을 만드는지를 먼저 정의한다.

대응은 자료 수준의 과소·과대표집과 SMOTE, 알고리즘 수준의 클래스 가중치·비용 민감 학습, 의사결정 수준의 임곗값 조정으로 나뉜다. 모든 재표본추출은 각 훈련 폴드 안에서만 수행하고 검증·테스트 데이터는 운영 분포를 유지한다.

정밀도는 양성 비율에 영향을 받고, 재표본추출·가중 학습은 예측확률의 보정 상태를 바꿀 수 있다. 따라서 정밀도·재현율·F1·PR 곡선뿐 아니라 확률 보정, 업무 비용, 경보 처리 용량을 함께 평가한다.

학습 목표

  • 클래스 불균형과 오류 비용·라벨 품질 문제를 구분한다.
  • 혼동행렬에서 정밀도·재현율·특이도·F1·균형정확도를 계산한다.
  • 과소표집·과대표집·SMOTE·클래스 가중치의 장단점을 판별한다.
  • SMOTE의 거리 계산, 소수 표본 수, 범주형·그룹·시간 경계를 설명한다.
  • 유병률 변화가 정밀도와 확률 보정에 미치는 영향을 해석한다.
  • 비용과 운영 용량으로 임곗값을 선택하고 독립 테스트에서 평가한다.

1. 불균형 문제의 진단

양성 클래스가 1%인 자료에서 모든 관측치를 음성으로 예측하면 정확도는 99%지만 양성을 한 건도 발견하지 못한다. 처리 방법을 고르기 전에 다음을 확인한다.

  • 전체·기간·지역·채널별 클래스 건수와 비율
  • 소수 클래스 라벨의 정의, 누락, 지연 확정, 오표기
  • 같은 고객·장비의 중복 행과 그룹 구조
  • 양성을 놓치는 비용과 음성을 잘못 경보하는 비용
  • 각 분할과 교차검증 폴드의 양성 건수
  • 운영 시 예상 양성 비율과 경보 처리 용량

희귀 사건이 실제 업무 분포를 반영한다면 양성 비율을 50%로 만드는 것이 목적은 아니다. 훈련의 학습 가능성과 평가의 현실성을 분리하고, 드문 라벨이 데이터 수집 오류인지 실제 희귀 사건인지 먼저 판정한다.

2. 혼동행렬과 평가 지표

  • TP: 실제 양성을 양성으로 예측
  • FP: 실제 음성을 양성으로 예측
  • FN: 실제 양성을 음성으로 예측
  • TN: 실제 음성을 음성으로 예측
정밀도=(TP) ÷ (TP+FP), 재현율=(TP) ÷ (TP+FN), 특이도=(TN) ÷ (TN+FP), 정확도=(TP+TN) ÷ (TP+FP+FN+TN)
F1=(2·정밀도·재현율) ÷ (정밀도+재현율) =(2TP) ÷ (2TP+FP+FN), 균형정확도=(재현율+특이도) ÷ (2)
지표확인하는 질문핵심 주의점
정밀도양성 경보 중 실제 양성은 얼마인가?양성 비율과 임곗값에 영향 받음
재현율실제 양성 중 얼마를 찾았는가?FP 비용은 직접 반영하지 않음
특이도실제 음성 중 얼마를 음성으로 판정했는가?양성 탐지력과 함께 봐야 함
F1정밀도와 재현율의 조화평균은 얼마인가?TN과 실제 비용을 사용하지 않음
균형정확도양성·음성 인식률의 평균은 얼마인가?두 클래스 중요도를 같게 둠
PR 곡선·AP임곗값별 정밀도-재현율은 어떤가?기준 수준이 양성 비율에 영향 받음
ROC 곡선·AUC재현율과 거짓양성률의 순위 성능은 어떤가?희귀 양성에서는 작은 FPR도 많은 FP가 될 수 있음

$TP+FP=0$이면 양성 예측이 없어 정밀도 분모가 0이고, $TP+FN=0$이면 평가 자료에 실제 양성이 없어 재현율 분모가 0이다. 도구가 이를 0으로 표시하더라도 수학적으로 미정의일 수 있으므로 양성 건수와 처리 규칙을 함께 보고한다. F1도 정밀도와 재현율이 모두 0인 경우 분모가 0이다.

계산 예

$TP=30$, $FP=20$, $FN=10$, $TN=940$이면 다음과 같다.

  • 정밀도: $30/(30+20)=60%$
  • 재현율: $30/(30+10)=75%$
  • F1: $2\times30/(60+20+10)=66.67%$
  • 정확도: $(30+940)/1000=97%$

정확도 97%만 보면 좋아 보이지만, 실제 양성의 25%를 놓쳤다는 사실과 경보 40%가 거짓이라는 사실을 함께 봐야 한다.

3. 양성 비율, 정밀도와 확률 보정

민감도(재현율) $Se$, 특이도 $Sp$, 운영 양성 비율 $\pi$가 주어졌을 때 정밀도는 다음과 같이 표현할 수 있다.

정밀도=(Se·\pi) ÷ (Se·\pi+(1-Sp)(1-\pi))

$Se=0.80$, $Sp=0.98$, $\pi=0.01$이면 정밀도는 0.008 / (0.008 + 0.0198) ≈ 28.78%다. 같은 재현율·특이도라도 양성 비율이 낮아지면 정밀도는 일반적으로 낮아진다. 따라서 균형화한 테스트 세트의 정밀도를 운영 정밀도로 그대로 해석할 수 없다.

무작위 과대표집, SMOTE, 클래스 가중치는 학습 중 클래스의 상대적 영향을 바꾸므로 출력 점수가 운영 확률과 잘 맞지 않을 수 있다. 확률 자체를 의사결정에 사용하려면 원래 분포를 유지한 별도 검증 자료에서 보정 곡선, Brier 점수 등으로 보정 상태를 확인하고 필요하면 확률 보정을 학습한다. 보정 방법도 테스트 데이터가 아니라 훈련·검증 범위에서 정한다.

PR-AUC 또는 평균정밀도는 희귀 양성의 순위 성능에 유용하지만 양성 비율에 영향을 받으므로 다른 유병률의 데이터셋끼리 값만 직접 비교하지 않는다. ROC-AUC도 함께 볼 수 있으나 FPR의 분모가 많은 음성이어서 작은 FPR이 실제로는 많은 거짓 경보를 뜻할 수 있다.

4. 자료 수준 처리 방법

방법작동 방식장점위험·경계
무작위 과소표집다수 클래스 일부 제거계산량 감소, 소수 영향 증가다수 클래스 경계 정보 손실
무작위 과대표집소수 관측치 복제단순하고 원값 보존중복 학습과 과대적합
SMOTE소수 이웃 사이 보간단순 복제보다 다양한 합성점거리·경계·이상값·범주형에 민감
혼합·정제 방법합성 후 경계 표본 정리 등겹침 완화 가능파라미터와 정보 손실 증가

4.1 SMOTE 계산 원리와 조건

소수 관측치 $\mathbf{x}i$와 선택한 소수 이웃 $\mathbf{x}{nn}$ 사이에서 $u\in[0,1]$을 뽑으면 합성점은 다음과 같다.

\mathbfx_new=\mathbfxi+u(\mathbfxnn-\mathbfx_i)

SMOTE는 이웃 거리를 사용하므로 결측 처리와 필요한 스케일링을 해당 훈련 폴드 안에서 먼저 학습·적용한 뒤 수행한다. 전체 데이터로 스케일을 학습하거나 합성한 뒤 분할하면 누수가 생긴다.

이웃 수를 $k$로 사용하려면 해당 훈련 폴드 안에 기준점 외에 충분한 소수 관측치가 있어야 한다. 소수 표본이 1개뿐이면 두 점 사이 보간을 할 수 없고, 일반적으로 소수 표본 수가 $k+1$보다 작으면 $k$를 줄이거나 다른 방법을 선택해야 한다.

범주형 값을 연속 수치처럼 보간하면 존재하지 않는 범주 코드가 생긴다. 수치형·범주형 혼합 자료에는 범주를 고려한 변형 방법을 검토하고, 희귀 범주·이상값·클래스 겹침을 확인한다. 동일 고객·환자·장비 또는 시간 순서가 있으면 그룹·시간 경계를 넘어 이웃을 만들지 않는다.

5. 알고리즘과 의사결정 수준 처리

5.1 클래스 가중치와 비용 민감 학습

소수 클래스 오류에 더 큰 손실을 부여해 데이터를 복제하지 않고 목적함수에서 오류 중요도를 반영한다. 역빈도 가중치는 출발점일 뿐 실제 FN·FP 비용과 운영 용량을 자동으로 표현하지 않는다. 가중치도 훈련 범위에서 튜닝하고 확률 보정 변화를 확인한다.

5.2 임곗값과 기대 비용

확률 0.5는 고정 법칙이 아니다. FN 한 건의 비용을 $C_{FN}$, FP 한 건의 비용을 $C_{FP}$라 하면 단순 총오류비용은 다음과 같다.

총오류비용=C_FN· FN+C_FP· FP

임곗값을 낮추면 보통 재현율과 경보 수가 늘고, 임곗값을 높이면 보통 정밀도는 높아질 수 있지만 놓친 양성도 늘어난다. 검증 데이터에서 비용, 최소 재현율, 최대 FP, 상위 $k$건 또는 경보율 같은 운영 제약으로 임곗값을 정하고 테스트 데이터에서는 확정된 값을 한 번 평가한다.

모형이 확률 보정이 좋지 않아도 순위가 유용하면 상위 4% 검사처럼 용량 기반 정책을 사용할 수 있다. 단, 운영 건수 변화에 따라 실제 경보 수가 달라지므로 비율과 절대 처리량을 함께 관리한다.

6. 분할·교차검증·평가 절차

층화 분할은 각 세트의 클래스 비율 변동을 줄이지만 항상 최우선은 아니다. 동일 고객의 여러 행은 그룹 분할을, 미래 예측은 시간 분할을 우선한다. 매우 희귀한 양성은 폴드별 양성 건수를 먼저 확인하고 필요하면 폴드 수를 줄이거나 반복 평가와 불확실성 구간을 사용한다.

각 교차검증 반복에서 다음 순서를 지킨다.

  1. 그룹·시간·층화 조건에 맞춰 훈련 폴드와 검증 폴드를 나눈다.
  2. 훈련 폴드에서 결측 처리·인코딩·스케일링을 학습한다.
  3. 변환된 훈련 폴드에만 과소·과대표집 또는 SMOTE를 적용한다.
  4. 가중치·재표본 비율·SMOTE 이웃 수·모형 파라미터를 훈련 범위에서 선택한다.
  5. 원래 분포를 유지한 검증 폴드에서 지표·보정·비용·경보량을 평가한다.

최종 임곗값까지 선택했다면 독립 테스트 세트에는 재표본추출·재보정·재튜닝을 하지 않고 한 번만 적용한다. 재표본된 자료의 합성 행과 원본 행이 검증에 섞이지 않도록 파이프라인 전체를 폴드 내부에 둔다.

다중 클래스의 불균형

다중 클래스에서는 각 클래스를 양성으로 본 one-vs-rest 혼동행렬과 클래스별 지표를 확인한다. macro 평균은 각 클래스를 같은 비중으로 평균해 소수 클래스 성능을 드러내고, micro 평균은 전체 TP·FP·FN을 합쳐 계산하므로 다수 클래스의 영향이 클 수 있다. weighted 평균은 클래스 빈도로 가중되어 높은 값만으로 소수 클래스 성능을 보장하지 않는다.

7. 사례 적용

상황: 제조 공정 불량률은 0.8%이고 불량을 놓치면 회수 비용이 크다. 정상 제품 추가 검사 비용도 있으며 하루 검사 가능량은 전체 생산량의 4%다.

판단 과정:

  1. 시간 순서를 유지해 훈련·검증·테스트 기간을 나눈다.
  2. 각 훈련 폴드 안에서 전처리 후 클래스 가중치와 제한적 과대표집을 비교한다.
  3. 원래 분포의 검증 자료에서 재현율·정밀도·경보율·확률 보정을 확인한다.
  4. 경보율 4% 이내에서 회수 비용을 줄이는 임곗값을 선택한다.
  5. 실제 분포의 테스트 기간에 확정 파이프라인과 임곗값을 한 번 적용한다.

결론: 최대 정확도나 임의의 50:50 균형보다 회수 손실, 검사 용량, 확률 보정, 시간 변화에 견디는 운영 가능한 모형을 선택한다.

음성 950건과 양성 50건의 불균형에서 모두 음성으로 예측하면 정확도는 95%지만 양성 재현율은 0임을 보여 주는 막대그래프
음성 950건과 양성 50건의 불균형에서 모두 음성으로 예측하면 정확도는 95%지만 양성 재현율은 0임을 보여 주는 막대그래프

다수 클래스 950건, 소수 클래스 50건일 때 모두 음성으로 예측하면 정확도는 95%지만 양성 재현율은 0이다. 불균형 문제에서는 정확도만 보지 않고 정밀도·재현율·특이도·F1·PR 곡선과 오류 비용을 함께 본다.

BalancedAccuracy=(1) ÷ (2)((TP) ÷ (TP+FN)+(TN) ÷ (TN+FP))
학습 데이터 재표본, 비용 민감 학습, 운영 임곗값 조정의 세 처리 유형과 누수·확률보정 주의 비교
학습 데이터 재표본, 비용 민감 학습, 운영 임곗값 조정의 세 처리 유형과 누수·확률보정 주의 비교

재표본은 데이터 수준, 클래스 가중치는 알고리즘 수준, 임곗값은 의사결정 수준의 처리다. SMOTE 같은 합성 표본은 학습 폴드 안에서만 만들고 독립 검증 데이터는 원래 분포를 유지한다.

처리적용 위치핵심 주의
언더·오버·SMOTE학습 폴드검증 자료를 합성에 사용하지 않음
클래스 가중치손실함수확률 보정 변화 확인
임곗값 조정최종 점수FP·FN 비용과 운영 용량 반영

시험 판단 포인트

  • 불균형 상황에서는 정확도만으로 성능을 판단하지 않는다.
  • 정밀도는 운영 양성 비율에 영향을 받는다.
  • F1은 TN과 실제 오류 비용을 반영하지 않는다.
  • SMOTE는 소수 이웃 사이 보간이며 전처리 후 각 훈련 폴드 안에서 수행한다.
  • 소수 표본이 1개면 SMOTE 이웃 보간을 할 수 없다.
  • 재표본추출·클래스 가중치는 확률 보정에 영향을 줄 수 있다.
  • 검증·테스트는 실제 분포를 유지하고 임곗값은 비용·용량으로 정한다.

자주 틀리는 부분

  • 소수 클래스 비율이 작다는 이유만으로 수집 오류라고 단정하지 않는다.
  • 전체 데이터를 과대표집·SMOTE한 뒤 분할하지 않는다.
  • 재현율을 높이면 정밀도도 반드시 높아진다고 보지 않는다.
  • 균형화한 평가 세트의 정밀도를 운영 정밀도로 해석하지 않는다.
  • ROC-AUC가 높다는 이유만으로 실제 FP 건수가 적다고 단정하지 않는다.
  • 테스트 데이터로 확률 보정이나 임곗값을 다시 선택하지 않는다.
스스로 확인하기

개념 확인 문제

문제를 누르면 바로 아래에서 정답과 해설을 확인할 수 있습니다.

01$TP=30$, $FP=20$, $FN=10$일 때 정밀도·재현율·F1을 계산하여 제시하시오.
정답 및 해설

정밀도 60%, 재현율 75%, F1 66.67%

정밀도는 $30/(30+20)=0.60$, 재현율은 $30/(30+10)=0.75$, F1은 $2\times30/(60+20+10)=60/90=0.6667$이다.

02교차검증에서 SMOTE를 적용하는 절차를 올바르게 제시하시오.
정답 및 해설

각 훈련 폴드에서 거리 전처리를 학습한 뒤 SMOTE를 적용하고 검증 폴드는 원래 분포로 평가한다.

SMOTE의 이웃과 합성점은 각 훈련 폴드 안에서만 만들어야 한다. 거리 기반 합성에 필요한 결측 처리·스케일링도 해당 훈련 폴드에서 학습한다.

03재현율과 특이도가 같은 모형을 양성 비율이 더 낮은 운영 환경에 적용할 때 일반적으로 나타나는 변화는?
정답 및 해설

정밀도가 낮아질 수 있다.

같은 재현율과 특이도에서도 양성 비율이 낮아지면 거짓 양성이 실제 양성보다 상대적으로 많아져 정밀도가 낮아질 수 있다.

04하루 검사 가능량이 전체의 4%인 불량 탐지 모형의 임곗값 선택을 서술하시오.
정답 및 해설

실제 분포의 검증 자료에서 경보율 4%와 오류 비용을 만족하도록 정하고 테스트에서는 고정한다.

임곗값은 실제 분포를 유지한 검증 자료에서 비용과 검사 용량을 기준으로 정하고, 독립 테스트에서는 확정된 값을 한 번 평가해야 한다.