[ML] 베이즈 대신 오즈비를 쓰는 이유가 뭘까요?

devhans·2024년 11월 6일

ML

목록 보기
4/4
post-thumbnail

배경

클래스의 데이터가 불균형한 상태에서 anomaly detection을 위해 데이터에 라벨링(양성, 음성)을 했습니다.
이때, 전처리를 통해 만든 feature를 학습에 사용할지 정하는 과정에서 feature extraction을 진행합니다.
어떤 기준을 통해 정하는지 고민하던 차에 베이즈 확률보단 오즈비를 활용하는 것이 더 낫다는 사실을 알게됐습니다.
베이즈나 오즈비나 똑같이 2x2의 confusion matrix를 구성하고 계산하는데 왜 오즈비가 더 나을까에 대한 생각입니다.

오즈(odds)란?

최근 흑백요리사가 유행하면서 이븐(even)익지 않았다 라는 말이 밈으로 사용중이죠.
고기가 이븐(even)하게 익었다는 말은 고기가 균일하게 골고루 익었다는 말입니다.
그리고 반대로 이븐하게 익지 않았다는 말은 사실 오즈(odd)하게 익었다라고 할 수도 있는데요.
오즈(odd)는 균일하지 않다는 의미입니다.
오즈비(odds ratio) 왠지 단어에서 부터 균일하지 않은 클래스를 비교할 때 좋지 않을까 생각이 들지 않나요?

오즈비(odds ratio)에 앞서 오즈(odds)를 먼저 알아봅시다.

통계에서의 오즈(odds)는 사건이 발생할 확률사건이 발생하지 않을 확률로 나눈 값을 말합니다.

Odds=𝑝1𝑝Odds = \cfrac{𝑝}{1−𝑝}

pp : 사건이 발생할 확률
1p1−p : 사건이 발생하지 않을 확률

예를 들어, 무게중심이 완벽한 동전을 던진다고 하면 앞면이 나올 확률과 뒷면이 나올 확률이 동일할 것입니다.
odds=1/2(앞면)11/2(앞면)odds = \cfrac{1/2(앞면)}{1-1/2(앞면)}

즉 오즈(odds)는 사건이 발생할 확률과 발생하지 않을 확률이 동일하다면 11이 나오게 됩니다.

오즈비(odds ratio)는 뭔가요?

오즈비(odds ratio)는 이벤트가 발생할 확률과 발생하지 않을 확률의 비율을 비교하는 방법입니다.
특정 변수가 어떤 사건의 발생에 미치는 영향을 평가할 때, 오즈비를 통해 사건 발생의 상대적인 영향도를 확인할 수 있습니다.

불균형한 데이터에서는 특정 클래스가 과도하게 많거나 적을 수 있기 때문에 오즈비는 데이터의 클래스 불균형 문제에서 유용합니다.

예를 들어 6시그마를 달성한 제조 공정이라면 100만개 중 단 3.4개만이 불량이 발생합니다. 일반적인 상황에서는 노이즈(ripple)라고 평가할 수 있습니다.
하지만 제조 공정에서 불량에 대해 분석하려고 할땐 정상인 경우보다 단, 3.4개가 발생한 경우가 더 중요합니다.

이런 경우 단순한 확률보다는 오즈비를 통해 효과적으로 영향을 평가할 수 있습니다.

OddsRatioOdds Ratio = Odds of Event in Group 1Odds of Event in Group 2\cfrac{Odds of Event in Group 1}{Odds of Event in Group 2}

정의는 이렇지만 사실 와닿지 않죠?
조금 더 쉽게 이해해 봅시다.

모집단불량(positive)정상(negative)합계
공정 중 충격이 가해짐(Exposed)3(a)99997(b)100000(a+b)
공정 중 충격이 가해지지 않음(Unexposed)1(c)899999(d)900000(c+d)
합계4(a+c)999996(b+d)1000000(a+b+c+d)

공정 중 불의의 사고로 충격이 가해진다면 제품이 불량으로 생산될 가능성이 오르겠죠?
이 가능성을 숫자로 제시하는게 오즈비입니다.
OddsRatioOdds Ratio = Odds of Event in Group 1Odds of Event in Group 2\cfrac{Odds of Event in Group 1}{Odds of Event in Group 2} = aa+b1aa+bcc+d1cc+d\cfrac{\cfrac{\cfrac{a}{a+b}}{1-\cfrac{a}{a+b}}}{\cfrac{\cfrac{c}{c+d}}{1-\cfrac{c}{c+d}}} = aa+bba+bcc+ddc+d\cfrac{\cfrac{\cfrac{a}{a+b}}{\cfrac{b}{a+b}}}{\cfrac{\cfrac{c}{c+d}}{\cfrac{d}{c+d}}} = abcd\cfrac{\cfrac{a}{b}}{\cfrac{c}{d}} = 2727

즉, 공정 중 사고로 충격이 가해진다면 가해지지 않은 제품에 비해 불량으로 생산될 가능성이 27배라고 볼 수 있습니다.
매우 중요 : 이때 충격이 가해졌을 때 가해지지 않은 제품에 비해 불량으로 생산될 확률이 27배인것은 아닙니다.

실제 확률을 비교하는것은 RR(상대위험도)RR(상대 위험도)로 헷갈리지 않도록 합시다.

모집단에서 실제 계산

베이즈 확률(Bayesian probability)을 사용하면 모델링 시 사전확률(prior probability)을 반영할 수 있습니다. 그러나 데이터가 클래스 불균형한 상황에서는 사전확률을 설정하는 과정에서 왜곡이 발생할 수 있습니다. 모델링을 위해 데이터 마트를 구성하게 될텐데 노이즈로 여겨지지 않기 위해서 불량클래스와 정상클래스의 비율을 임의로 조절하기 때문입니다.

모집단불량(positive)정상(negative)합계
공정 중 충격이 가해짐(Exposed)3(a)99997(b)100000(a+b)
공정 중 충격이 가해지지 않음(Unexposed)1(c)899999(d)900000(c+d)
합계4(a+c)999996(b+d)1000000(a+b+c+d)

모집단에서 베이즈 확률 계산

P(ex)=100,0001,000,000=0.1P(ex) = \cfrac{100,000}{1,000,000} = 0.1
P(positveex)=3100,000=0.00003P(positve\,|\,ex) = \cfrac{3}{100,000} = 0.00003
P(positive)=41,000,000=0.000004P(positive) = \cfrac{4}{1,000,000} = 0.000004
P(expositive)=P(positiveex)p(ex)P(positive)=0.00003×0.10.000004=0.75P(ex\,|\,positive) = \cfrac{P(positive\,|\,ex)\cdot p(ex)}{P(positive)} = \cfrac{0.00003\times 0.1}{0.000004}=0.75

모집단에서 오즈비 계산

위에서 계산했기 때문에 결과만 기술
OddsRatioOdds Ratio = 2727

데이터 마트에서 실제 계산

모집단의 비율을 무시하고 임의로 머신러닝을 위한 데이터 마트를 구성해 보겠습니다.
모집단의 비율 그대로 학습할 경우 양성 클래스를 노이즈 취급할 가능성이 매우 높기 때문에 데이터 마트에서는 임의로 비율을 조정합니다.
양성 클래스를 크게 확대하여 총 500개의 불량 샘플을 포함합니다.
음성 클래스는 1,500개의 샘플로 줄여, 불량과 정상 샘플 비율을 1:31:3으로 조정했습니다.

데이터 마트양성(Positive)음성(Negative)합계
공정 중 충격이 가해짐(Exposed)250250500
공정 중 충격이 가해지지 않음(Unexposed)25012501,500
합계5001,5002,000

데이터 마트에서 베이즈 확률 계산

P(ex)=5002,000=0.25P(ex) = \cfrac{500}{2,000} = 0.25
P(positveex)=250500=0.5P(positve\,|\,ex) = \cfrac{250}{500} = 0.5
P(positive)=5002,000=0.25P(positive) = \cfrac{500}{2,000} = 0.25
P(expositive)=P(positiveex)p(ex)P(positive)=0.5×0.250.25=0.5P(ex\,|\,positive) = \cfrac{P(positive\,|\,ex)\cdot p(ex)}{P(positive)} = \cfrac{0.5\times 0.25}{0.25}=0.5

데이터 마트에서는 P(expositive)=0.5P(ex\,|\,positive) = 0.5로 계산됐습니다.
데이터 마트의 구성에 따라 베이즈 확률이 왜곡될 수 있다는 것을 보여줍니다.

데이터 마트에서 오즈비 계산

OddsRatio=abcd=2502502501250=5Odds Ratio = \cfrac{\cfrac{a}{b}}{\cfrac{c}{d}} = \cfrac{\cfrac{250}{250}}{\cfrac{250}{1250}} = 5

데이터 마트에서는 OddsRatio=5Odds Ratio = 5 입니다.
데이터 마트의 구성에 따라 오즈비 또한 왜곡될 수 있다는 것을 보여줍니다.

오즈비가 정말 더 나은가?

1. 클래스 불균형에서 자유로움

불균형한 데이터에서 가장 큰 문제는 양성 클래스와 음성 클래스 간의 비율 차이로 인해 모델이 학습할 때 특정 클래스를 무시하거나 과도하게 학습하는 현상이 발생하는 것입니다.
오즈비는 단순히 각 클래스의 확률을 비교하는 것이 아니라 각 클래스에서의 사건 발생의 상대적 비율을 측정하기 때문에 데이터의 불균형을 잘 처리해서 보여주는 지표가 됩니다.

2. 사전확률에 의존하지 않음

베이즈 확률은 사전확률(prior probability)을 반영하는데 이는 베이즈 확률에서 중요한 역할을 합니다. 그러나 데이터가 불균형할 때, 데이터 마트에서 양성 클래스와 음성 클래스의 비율을 인위적으로 맞추는 과정에서 본래 모집단의 분포를 반영하지 못할 수 있습니다. 이로 인해 베이즈 확률을 사용하면 사전확률을 임의로 설정한 결과가 모델에 큰 영향을 미칠 수 있습니다.

반면, 오즈비는 각 클래스 간의 비율을 비교하므로 비교적 사전확률의 영향을 적게 받습니다.

결론

그래도 베이즈 확률보단 낫다.

오즈비 역시 데이터 마트의 비율에 의존하기 때문에 모집단의 특성을 그대로 반영하지 않습니다.
클래스 간 비율차이가 너무 클 때, 두 클래스 간의 발생 가능성을 비교하기 때문에 비교적 클래스 불균형에 의한 왜곡 없이 상대적 영향을 평가하는 지표일 뿐입니다.

데이터 마트를 구성할 때 최대한 모집단과 비슷하게 샘플링(층화표본추출 및 기타 샘플링 기법 사용)하여 오즈비를 계산하여 최대한 정확한 해석을 할 수 있도록 합시다.

profile
책 읽고 운동하기

0개의 댓글