피드로 돌아가기
Dev.toAI/ML
원문 읽기
단순 단어 카운팅 기반의 Naive Bayes 스팸 필터 설계
Naive Bayes From Scratch: A Spam Filter Built From Word Counts
AI 요약
Context
복잡한 Gradient Descent나 반복 학습 과정 없이 텍스트를 빠르게 분류해야 하는 요구사항 분석. 문법적 구조보다 특정 단어의 출현 빈도가 분류 성능에 더 큰 영향을 미치는 스팸 탐지의 특성 활용.
Technical Solution
- Bag of Words 모델을 통한 단어 순서 배제 및 계산 복잡도 최소화 설계
- Bayes' Rule을 적용하여 P(words|spam) 확률을 P(spam|words) 예측값으로 변환
- 조건부 독립 가정(Conditional Independence)을 통한 개별 단어 확률의 단순 곱셈 연산 구현
- Laplace Smoothing 적용으로 학습 데이터에 없는 단어로 인한 확률 0 발생 문제 해결
- 확률 값의 곱셈 연산을 Log-sum 연산으로 변경하여 Floating Point Underflow 방지
- 최종 Score 비교를 통한 이진 분류 및 Softmax 함수 기반의 확률 시각화 구현
실천 포인트
- 텍스트 분류 태스크 시작 시 복잡한 모델 전 baseline으로 Naive Bayes 검토 - 매우 작은 확률값들의 곱셈 처리 시 Log scale 변환 적용 여부 확인 - 희소 데이터(Sparse Data) 처리 시 Laplace Smoothing과 같은 보정 기법 검토