나이브 베이즈 분류는 “베이즈 정리”를 활용하여 분류( Classification )를 수행하는 지도학습( Supervised Learning ) 알고리즘이다.
나이브 베이즈 분류는 베이즈 정리를 기반으로 한 통계적 분류 기법이다. 즉, 확률을 구해서 데이터를 분류하는 기법이다. 나이브 베이즈 분류기는 정확성도 높고 대용량 데이터에 대해 분류 속도도 빠르다. 또한, 베이즈 정리를 기반으로 하기 때문에 데이터의 속성이 서로 독립이라는 조건이 필요하다.
베이즈 정리를 어떻게 분류기법에 적용을 할 것인가?
베이즈 정리 시 예로 들었던, 검사 결과가 양성일때 암일 확률은? 즉, P(암|검상 양성).
일반적 표현으로 P(A|B)라고 하면 B라는 조건이 주어졌을때 A의 확률을 구했다.
지금까지 우린 주어진 데이터를 기반으로 향후 발생할 일을 예측했다.
베이즈 정리에 적용 하면 B를 주어진 데이터라 생각하고 A의 확률을 예측하는 것이다.
다시 써 보자.
P(A|B) = P(예측|주어진 데이터)
간단한 예를 통해 나이브 베이즈 동작원리는 살펴보자.
나이브 베이즈는 동작 원리?
날씨 정보와 축구 경기 여부에 대한 데이터이다. 날씨에 대한 정보를 기반으로 축구를 할것인지 안 할 것인지 확률을 구하는 예제이다.

왼쪽 테이블은 날씨에 따라 축구를 했는지 안했는지에 대한 과거 데이터.
데이터가 주어졌다. 이 데이터를 기반으로 날씨에 따라 축구 경기가 열릴지 그렇지 않을지 확률을 구하는 것이 목표다.
그렇다면 날씨가 overcast일 때 경기를 할 확률은?
P(Yes|Overcast)를 찾아보자. 베이즈 정리에 의해

P(Overcast) = 4/14 = 0.29 ( 주어진 데이터에서 흐린날은 전체 14일 중 총 4일 이다. )
P(Yes) = 9/14 = 0.64 ( 축구 결기가 열린 날은 총 14일 중 9일 이다. )
P(Overcast|Yes) = 4/9 = 0.44 ( 축구 경기가 열린 날 9일 중 흐린날은 4일 이다. )
∴ 0.44 * 0.64 / 0.29 = 0.97
결론적으로, 컴퓨터에게 흐린날을 입력으로 주고 축구 경기가 열릴 것이냐고 물어보면 0.97% 열릴 확률이 있다고 응답을 할 것이다.
날씨가 overcast일때 경기를 하지 않을 확률은?
P(No|Overcast)를 찾아보자
P(Overcast) = 4/14 = 0.29 ( 주어진 데이터에서 흐린날은 전체 14일 중 총 4일 이다. )
P(No) = 5/14 = 0.36 ( 축구 결기가 열맂 않은 날은 총 14일 중 5일 이다. )
P(Overcast|No) = 0/5 = 0 ( 축구 경기가 열리지 않은 날 5일 중 흐린날은 0일 이다. )
∴ 0 * 0.36 / 0.29 = 0
이번엔 컴퓨터에게 흐린날을 입력으로 주고 축구 경기가 열릴 것이냐고 물어보면 0% 열릴 확률이 있다고 응답을 할 것이다.
P(Yes|Overcast) = 0.97, P(No|Overcast) = 0. 즉, 두 확률을 비교한 뒤 더 높은 확률의 Label로 분류를 하면 된다. 따라서 나이브 베이즈 분류기는 날씨가 Overcast일 때 축구를 할 것이라고 판단한다.
지금까지 날씨라는 속성 하나의 경우에 대해서 예를 들어 설명했다. 속성이 여러개이면 어떻게 될까?
P(A | B, C) = P(B, C | A) P(A) / P(B, C)
P(B, C | A) = P(B|A) P(C|A)
P(B, C ) = P(B) * P(C) 이다.
장점
- 단순하며, 계산이 복잡하지 않아 분류 속도가 빠르며 매우 효과적이다.
- 메모리 용량을 크게 차지 하지 않는다.
- 훈련에 대한 상대적으로 적은 예제가 필요하지만, 대용량 데이터 자료에서도 잘 동작한다.
- 성능이 좋다. SVM과도 경쟁할 만큼 우수한 분류 성능을 가진다.
용도
- 문서 분류, 스팸 필터 등
- 범주형 데이터 분류에 사용
'머신러닝(ML)' 카테고리의 다른 글
| Pandas란... (0) | 2020.07.23 |
|---|---|
| K-Means 클러스터링 (0) | 2020.07.09 |
| 두 점 사이의 거리 공식 (0) | 2020.07.09 |
| 베이즈 정리( Bayes' Theorem )란... (0) | 2020.07.09 |
| 랜덤 포레스트( Random Forest )란... (0) | 2020.07.09 |