My Data Story

[분류] 나이브 베이즈 본문

Machine Learning/2. 지도 학습 알고리즘

[분류] 나이브 베이즈

Hwasss 2021. 8. 6. 09:45
728x90

◈  '분류' 목차 

1. 나이브 베이즈

     나이브 베이즈 알고리즘을 통한 분류 과정에 대해 살펴보자.

2. 선형판별분석(LDA)

3. 로지스틱 회귀

4. 소프트맥스 회귀

5. 다중 레이블 분류, 다중 출력 분류

6. 분류 모델 평가


데이터 과학자들은 자동으로 어떤 결정을 해야 하는 종류의 문제들을 자주 접한다. 

분류 모델은 어떤 카테고리에 속할 지 예측하는 것을 목표로 한다.

모델에 단순히 이진 분류 결과를 할당하기도 하지만, 대부분의 알고리즘은 관심 클래스에 속할 확률 점수(경향)을 반환한다.

 

분류 모델의 일반적인 접근 방식은 다음과 같다.

 

step1

관심 클래스에 속할 cut-off 확률을 정한다.

 

step2

레코드가 관심 클래스에 속할 확률을 추정한다. 

 

step3

추정한 확률이 cut-off 확률 이상이면 관심 클래스에 이 레코드를 할당한다.

 

cut-off 가 높을수록 관심 클래스에 속하는 레코드는 적을 것이다. 

 

1. 나이브 베이즈

나이브 베이즈 알고리즘은 주어진 결과에 대해 예측 변수(X) 값을 관찰할 조건부 확률 P( X = i | Y = j ) 을 사용한다.

다시 말해 예측 변수가 주어졌을 때 결과 Y=i 를 관찰할 확률을 추정한다. 

 

우선 베이지언 분류를 이해하기 위해, 새 레코드에 대한 '나이브하지 않은' 베이지언 분류에 대해 생각해보자.

 

step1

예측하고자 하는 새 레코드와 예측 변수(X) 의 값이 동일한 기존 레코드들을 찾는다.

 

step2

해당 레코드들이 가장 많이 속한 클래스를 정한다.

 

step3

새 레코드에 해당 클래스를 지정한다. 

 

위 방법은 모든 예측 변수(X) 의 값들이 동일하다면, 같은 클래스에 할당될 가능성이 높기 때문에 표본에서 새로 들어온 레코드와 완전히 일치하는 데이터를 찾는 것에 무게를 두는 방식이다. 

 

하지만 '나이브하지 않은 베이지언 분류' 는 현실성이 없다. 

예측 변수의 개수가 일정 정도 커지게 되면, 모든 예측 변수의 값이 완전히 일치하는 경우가 드물기 때문이다. 

 

1.1 조건부 확률

나이브 베이즈 알고리즘에 대해 살펴보기 전에, 조건부확률에 대해 알아야 한다. 

조건부 확률은 어떤 사건 Y가 주어졌을 때, 사건 X를 관찰할 확률로 다음과 같다.

 

 

1.2 나이브한 해법

조건부 확률 식을 활용하여 예측 변수 X1, X2, ... , Xn 이 주어졌을 때 출력 Y=i 일 확률에 대한 방정식을 표현하면 다음과 같다.

 

 

 

나이브 베이즈 분류기는 각 클래스 별로 P(Y=i | X1, X2, ... , Xn) 확률을 구하고, 그 중 가장 큰 확률을 갖는 클래스로 분류한다. 

이러한 나이브 베이즈 분류 과정을 수식으로 표현하면 다음과 같다.

 

 

 

예제

날씨와 온도에 따라 비가 올지 안 올지 예측해보는 문제를 나이브 베이즈를 활용해 분류해보자.

  X1 : 날씨가 좋은 가? X2 : 온도가 높은가?
YES NO YES NO
Y = 1 : 비 온 날 2 6 6 2 8
Y = 0 : 안 온 날 8 4 2 10 12
10 10 8 12 20

 

비가 올지 안 올지에 영향 미치는 변수로 날씨(X1) 와 온도(X2) 가 있을 때, 날씨가 안 좋지만 온도가 높을 때 비가 올 지 예측해보자.

 

P( Y=1 |  X1=NO,  X2=YES ) = P( X1=NO,  X2=YES | Y=1 )

                                                   ≒ P( X1=NO | Y=1 ) * P( X2=YES | Y=1 ) * P(Y=1) 

                                                   = 6/8 * 6/8 * 8/20

P( Y=0 |  X1=NO,  X2=YES ) = P( X1=NO,  X2=YES | Y=0 ) 

                                                   ≒ P( X1=NO | Y=0 )*P( X2=YES | Y=0 ) * P(Y=0)

                                                   = 4/12 * 2/14 * 14/20

 

계산 결과, P( Y=1 |  X1=NO,  X2=YES ) 값이 더 크므로 날씨가 안 좋고 온도가 높을 때는 비가 온다고 예측할 수 있다.

 

1.3 수치형 예측 변수 

정의에 따라 베이지언 분류기는 예측 변수들이 범주형인 경우에 적합하다. 

 

그렇다고 수치형 변수를 베이지언 분류기에 활용 못하는 것은 아니다. 

다음 두 가지 접근법 중 하나를 따라야 한다. 

 

˙ 수치형 예측 변수를 Binning 하여 범주형으로 변환한 뒤, 알고리즘을 적용한다.

˙ 조건부확률 P(Xi | Y=j) 를 추정하기 위해 정규 분포 같은 확률 모형을 사용한다. 

 

이때 주의해야 할 사항이 나이브 베이즈 알고리즘은 훈련 데이터에 예측 변수의 특정 카테고리에 해당하는 데이터가 없을 경우,

새 데이터에 대한 확률을 0으로 할당한다. 연속형 변수를 Binning 할 때는 이런 부분에 대해 주의를 기울여야 한다.