본문 바로가기
DataScience/머신러닝

머신러닝 :: Naive Bayesian

by 올커 2023. 4. 26.

머신러닝 :: 7. Naive Bayesian

Naive Bayesian

· 예측 결과에 대한 확률이 주어졌을 때, input 인자들이 서로 독립(Independent)이라고 가정하는 방법이다.

· Naive : 느슨한, Overfitting을 피하는 컨셉?

  → 수행이 매우 쉬운 특징이 있으며 Dataset이 아주 적지만 않다면(Moderate or large training set), 큰 Dataset이 아니더라도 양호한 예측결과를 얻어내는 방법이다. (*각 class의 속성들이 Conditionally independent할 때 사용 가능)

  → 하지만 만약 input class이 correlation이 크거나, 데이터셋이 일정 수보다 작다면 성능이 떨어지는 문제가 있다.

  → 본 방법은 진단(Diagnosis)이나 문서의 텍스트 분류(Spam 메일 분류) 등에 잘 사용될 수 있다.

 

Naive Bayesian Classification의 표현

 - target function f:X→Y라고 가정하고, search space x는 (a_1, a_2, ..., a_n)일 때, 아래 f(x)를 만족하는 v를 찾는 식으로 나타낼 수 있다.

· 그리고 위 식은 베이즈 정리(Bayes' Theorem)에 의해 아래와 같이 표현이 가능하다. 

· 식을 최대로 하는 v값을 찾는 것이기 때문에 v값과 관련이 없는 분모부분은 소거가 가능하다.

· Naive Bayesian은 input인자들이 서로 독립(Independent)이라고 가정하기 때문에 위 식은 아래와 같이 간략하게 변환이 가능하다. 이제 각 확률의 값을 계산하고 최적의 클래스 분류를 하는 v값을 선택하면 된다.

 


 

· 아래의 예시는 Outlook, Temp, Humidity, Wind에 대한 테니스 Play여부에 대한 확률을 구하는 식이다.

· 위 식의 분자 부분은 각 input 인자(Outlook, Temp, Humidity, Wind)가 독립이라고 가정하면 아래와 같이 변환이 가능하다.

· 그리고 분모부분은 아래와 같이 미지수 α로 둔다. 

· 이제 두 식은 아래와 같이 비교할 수 있으며, 미지수 α는 서로 같기때문에 분자부분만 비교하여 더 큰 쪽을 예측하면 된다.

· 참고로 미지수 α를 구하려면 아래와 같이 총 확률의 합은 1이라는 확률의 특성을 활용하여 구할 수 있다.


Naive Bayesian Method가 잘 동작하지 않는 경우

· Naive Bayesian은 각 클래스별로 적어도 일정 수 이상의 data를 포함하고 있어야 한다.

  아래의 예시를 보면 Condition Attribute중 하나인 'Outlook = Sunny'의 데이터가 없어 확률이 0이되는 경우가 발생했다고 가정해보자.

· Naive Bayesian Classifier를 통해 예측시 아래와 같이 확률이 0이 되는 경우가 발생한다.

· 이러한 문제를 해결하기 위해서는 확률이 0이 되는 부분을 매우 작은 수로 대체하여 예측하는 방법이 있다.

반응형

댓글