매직코드
article thumbnail

확률 기반 머신러닝 분류 알고리즘

데이터를 나이브(단순)하게 독립적인 사건으로 가정하고 베이즈 이론에 대입시켜 가장 높은 확률의 레이블로 분류를 실행하는 알고리즘

P(레이블 | 데이터 특징) = P(데이터 특징 | 레이블) * P(레이블) / P(데이터 특징)

어떤 데이터가 있을 때 그에 해당하는 레이블은 기존 데이터의 특징 및 레이블의 확률을 사용해 구할 수 있음

 

> 나이브 베이즈 예시

치킨집에서 저녁에 손님이 오는 경우 맥주를 주문할지 안할지 예측

시간 맥주
오전 주문 X
오전 주문 X
점심 주문 O
점심 주문 X
점심 주문 X
저녁 주문 O
저녁 주문 O
저녁 주문 O
저녁 주문 X
저녁 주문 X

나이브 베이즈 공식 이용

P(주문 | 저녁) = P(저녁 | 주문) * P(주문) / P(저녁)

                  = (3 / 4) * (4 /10) / (5 / 10)

                  = 0.6

 

독립사건일 경우 조건부 확률을 이용하고 특징이 여러개인 경우 나이브 베이즈 공식은 여러 확률의 곱으로 나타낸다.

 

> 사이킷런의 두가지 나이브 베이즈 분류 모델

다항 분포 나이브 베이즈 분류

- 데이터의 특징이 출현 횟수로 표현됐을 때 사용

- 예) 주사위를 10번 던졌을 때 나온는 눈의 횟수 / 영화 감상평을 토대로 긍정적 부정적 리뷰 분류 등

 

베르누이 나이브 베이즈 모델

- 데이터의 특징이 0 또는 1로 표현됐을 때 사용

- 예) 주사위를 10번 던졌을 때 숫자 1이 나왔나 안나왔나 / 스팸 메일 분류 등

 

> 가우시안 나이브 베이즈 분류

- 데이터의 특징들이 연속적인 경우에는 가우시안 나이브 베이즈 분류 사용 추천

- 특징들의 값이 정규분포 되어 있다는 가정하데 조건부 확률 계산

- 예) 붓꽃 데이터셋 분류

 

> 스무딩(smoothing)

이산적인 데이터의 경우 빈도수가 0인 경우가 발생

예를들어 스팸 메일 필터를 가동시키는데 학습 데이터에 없던 단어가 나타나면 확률이 0이 되어 스팸 분류가 어려움

스무딩은 학습 데이터에 없던 데이터가 출현해도 빈도수에 1을 더해서 확률이 0이 되는 현상 방지

 

> 장단점

장점

- 높은 정확도를 보이며 문서분류 및 스팸 메일 분류에 강한 면모를 보임

- 계산 속도가 다른 모델들에 비해 빠름

 

단점

- 모든 데이터의 특징을 독립적인 사건이라고 가정하는 것은 문서 분류에는 적합할 수 있지만 다른 분류 모델에는 제약이 될 수 있음

profile

매직코드

@개발법사

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!