데이터분석 & Machine Learning

Naive Bayes 간략 정리

김진짜 2023. 8. 20. 22:49

1. 베이즈 정리

스패너를 만드는 두 개의 기계가 있다고 가정하죠.

두 기계에서 하루에 각각 10개의 스패너를 만들고, 이를 밤이 되면 섞어서 결함이 있는 스패너를 찾아낼 것입니다.

여기서 질문,

 

“기계가 결함이 있는 스패너를 생산할 확률은 얼마나 될까?”

"기계 2에서 나오는 스패너 하나를 픽업해 그 스패너가 불량일 확률은 얼마나 되는가?

 

이런 개념을 설명하는 아이디어가 베이즈 정리입니다. 

베이즈 정리는 두 사건 간의 관계성을 다루는 수학적 원리로, 새로운 정보를 받았을 때, 기존의 믿음을 어떻게 업데이트할 지를 설명하는 것입니다.

이는, 조건부확률에 기반해, 이전 정보와 새로운 정보를 활용해 사건의 확률을 구하는 것이죠.

P(A|B) : 사후 확률, 사건 B가 일어난 상황에서 사건 A가 발생할 조건부 확률, 실제로 우리가 구하려는 값

P(B|A) : 우도(Likelihood), 사건 A가 일어난 상황에서 사건 B가 발생할 조건부 확률

P(A) : 사전 확률, 사건 A의 원래 확률

P(B) : 증거, 사건 B의 원래 확률

 

이렇듯 베이즈 정리는 기존 사전정보(사전 확률과 증거, 그리고 우도)를 통해 사건의 확률을 업데이트합니다. 베이즈 정리는 사후확률은 바로 구하기 어려워서, 사전확률과 조건부확률을 이용해 문제를 해결하는 방식입니다. 

우도 : 데이터가 주어진 상황에서 모델의 매개변수가 얼마나 적합한지를 나타냅니다. 데이터가 얼마나 잘 모델에 부합하는지 평가합니다.
확률 : 어떤 사건이 발생할 가능성을 수량화한 값으로, 사건 자체에 대한 확률을 나타냅니다. 즉 모델이 주어진 상태에서, 각각의 데이터가 어떤 결과값을 나타낼지를 알려줍니다. 

2. 나이브 베이즈

다음과 같은 그래프가 있습니다.

x축은 나이, y축은 임금이 될 것이고, 특정한 사람이 도보로 출근하는지 운전을 해 출근하는지를 분류해주는 지도학습 모델인데, 다음과 같은 새로운 점이 있을때, 이 모델은 어떻게 분류해낼 것인가?

이를 베이즈 정리를 이용해 풀어봅시다.

 

1번, 특정한 나이에 있는 사람이 도보를 할 확률로 식을 쓴다.

왼쪽은 도보를 하는 특징을 지닌 사람일 가능성이 얼마나 되는지를 나타낸다.

이는 바로 계산하기 어렵기 때문에, 오른쪽의 식을 이용해서 계산할 것이다.

베이즈 정리는 사후확률은 바로 구하기 어려워서, 사전확률과 조건부확률을 이용해 문제를 해결하는 방식이다.

 

Probability vs Likelihood

  1. P(Walks) : 이 데이터 상에서 임의의 사람이 도보로 출근할 확률이다. 전체 도보 출근자/전체 데이터 수 로 계산하면, 10/30
  2. P(X) : 이를 계산하기 위해서 먼저, 예측하고자 하는 데이터에 적당한 반지름의 원을 하나 그리는 것이다. 이 원 안에 있는 데이터들은, 우리가 예측하고자 하는 데이터와 비슷한 특징(나이, 월급)을 가진다고 가정한다. X는 “비슷한 데이터의 수/전체 데이터수"로, 여기서는 P(X) = 4/30 이다.
  3. P(X|Walks) : 도보 출근자가 X와 비슷할 확률이다. 이전에 우리가 구하려고 하는 것은 X와 비슷한 사람이 도보로 출근할 확률인데, 조건부확률에서 이는 사후확률에 해당한다. 일단 조건부확률 상 걷는 사람들만 가정하고 있기에, 운전 출근자는 생각에서 지운다. 그러면 빨간 데이터 중에서 이 원 안에 속할 확률이 되는 것이다. P(X|Walks)는 “걷는 사람들 중 비슷한 데이터의 수/전체 도보 출근자의 수” 로, P(X|Walks) = 3/10이다.

이를 통합하면, P(Walks|X) = 0.75입니다. 즉 우리가 넣은 데이터와 비슷한 사람들이 도보 출근자일 확률이 0.75인 것이죠.

반대로 P(Drives|X) = 0.25로 계산됩니다.

 

이제 여기서 P(Walks|X)와 P(Drives|X)를 비교해보죠.

걸어서 출근할 확률이 0.75로 더 높으므로, 우리는 이 새로운 데이터가 도보 출근자라고 예측할 수 있게 됩니다.

 

나이브 베이즈는 위와 같은 사례처럼 풀이가 진행됩니다. 그리고 아래와 같은 개념과 원리를 포함하죠

1. 베이즈 정리 적용: 나이브 베이즈 알고리즘은 베이즈 정리를 사용하여 새로운 데이터가 주어졌을 때 각 클래스(카테고리)에 속할 확률을 계산합니다.
2. 독립성 가정: "나이브"라는 이름은 각 특성(단어 또는 속성)이 서로 독립적으로 존재한다고 가정하는 것을 나타냅니다. 이 가정은 현실에서는 성립하지 않을 수 있지만, 모델을 단순화하고 계산을 효율적으로 수행할 수 있게 해줍니다.
3. 다중 클래스 분류: 주로 다중 클래스 분류 문제에서 사용됩니다. 예를 들어, 위와 같이 임금에 따른 통근자의 도보, 운전 여부를 분류하는 문제나, 영화 리뷰를 긍정적, 부정적으로 분류하는 문제에 적용될 수 있습니다.
4.단어 빈도 계산: 텍스트 데이터에서는 단어의 빈도를 기반으로 각 클래스에 속할 확률을 계산합니다. 각 단어의 등장 여부나 빈도가 분류에 영향을 미치는 것을 고려합니다.

3. 나이브 베이즈의 종류

1. 가우시안 나이브 베이즈 : 연속적인 데이터, 각 클래스의 특성이 정규분포를 이룬다 가정

2. 베르누이 나이브 베이즈 : 이진 데이터(Yes or No)  

3. 다항 나이브 베이즈 : 이산 데이터(Multinominal)

 

나이브 베이즈는 확률론적으로 접근하는 분류 알고리즘으로, 데이터가 많지 않을 때도 좋은 성능을 보이고, 단순하다는 특징이 있습니다.