소품집

[ML] 나이브 베이즈 정리 본문

AI

[ML] 나이브 베이즈 정리

sodayeong 2020. 4. 12. 03:01

나이브 베이즈 정리


베이지안 네트워크를 정의하기 전에 베이즈 정리의 개념을 알아야 하는데요.

베이즈 정리란 두 확률 변수의 사전확률과 사후확률 사이의 관계를 나타내는 정리로, 베이즈 확률에 따르면 베이즈 정리는 사전확률로부터 사후확률을 구할 수 있는 정리입니다.

 

 

예시


베이즈 정리의 예시를 들면, 가장 대표적인 예제인 '주머니에서 공 꺼내기' 예시입니다. 순서는 이렇습니다.

두 개의 주머니 A , B가 있습니다.

주머니 A에는 빨간 공 5개, 파란 공 5개. 주머니 B에는 빨간공 3개, 파란공 7개가 있다고 합시다.

우연히 공을 뽑았을 때, 빨간 공이 주머니 A에서 나올 확률을 구해볼게요.

 

 

 

  1. 각 바구니 A와 B에서 빨간공이 나올 확률을 구해봅니다.
  2. A와 B의 사전확률(prior)을 구해줍니다.
  3. 베이지안 룰을 적용합니다. 이때 분모에 들어갈 Marginal은 바구니 A, B에서 빨간 공을 뽑을 확률을 모두 인테그랄 합니다.

Bayes Rule의 장점

  • Prior를 이용해 사전 지식을 추가할 수 있다는 점입니다. 만약 바구니 A와 B의 크기가 동일하지 않다면, 빨간 공이 나올 확률에 영향을 미칠 수 있는 점을 고려하여 특정 바구니에 가중치를 주는 게 가능합니다.

Bayes Rule의 단점

  • 조건에 맞는 값이 없다면 0이 나올 수 있습니다.
  • 앞서 예시와 같이 분모에 모든 경우의 총합(인테그랄)을 구해야 해 계산 시 귀찮다는 점입니다.
  • 그래서 이를 보완할 수 있는 '추정' 하는 방식도 있습니다.

 


 

 

 

Bayes Classifier (베이즈 분류)


 

학습 데이터 4개와 테스트 데이터가 주어져 있습니다. 학습 데이터를 통해 테스터 데이터에 들어온 새로운 값이 salmon 인지 sea bass인지 구별(분류)하는 문제입니다.

그러면, 어떻게 풀 수 있을까요? 두 가지 class로 나누어져 있으니 두 개로 나눠 풀어 볼게요.

 

 

그래서 우리는 두 값을 비교하고, 더 큰 값을 새로운 데이터에 대한 X를 예측할 수 있습니다.

이 경우는 salmon이라 예측할 수 있겠네요.

 

 


 

이번엔 새로운 New fish x데이터입니다. 앞에 문제와는 다르게 하나의 조건 (and)가 추가된 건데요.

이것도 풀어 볼게요.

 

 

이렇게 새로운 데이터(기존 학습되지 않은 데이터)에는 0을 반환하고, 분류하지 못해 찍어야 하는 상황이 발생합니다. Bayes Classifier의 리스크로, Bayes Classifier의 한계점이라 할 수도 있게 됩니다.

그럼 이문제를 어떻게 해결할 수 있을까요? 먼저 피처들 간의 독립성을 가정하고 분류 한 나이브 베이즈 분류로 풀어봅시다.

 

 

 


 

Naive Bayes Classifier (나이브 베이 분류)


나이브 베이즈 분류를 구현할 때 중요한 가정은 모든 Feature는 독립으로 존재한다입니다.

그래서 서로의 Feature와 독립적으로 수행된다는 가정을 두고 문제를 풀어볼게요.

 

 

 

 

salmon에 대해 값은 1/8로 나왔지만, sea bass의 값은 0이 나옵니다.

나이브 베이즈 분류 역시 앞서 나온 베이지안 룰의 리스크였던 한 번도 나오지 않은 학습 데이터는 0이 나오는 리스크를 해결하지 못하고 있어요. 문제는 모두 단순 빈도수로 계산했기 때문입니다.

베이지안 룰도, 나이브 베이즈 분류로도 해결하지 못한 이 리스크를 어떻게 해결할까요?

 

 

 

 

 

 


 

 

다음 포스팅은 이 리스크를 해결하기 위해 가정 된 가우시안 나이브베이즈 분포와 베이지안 그래프에 대해 다뤄보겠습니다.

 

728x90
Comments