피드로 돌아가기
Naive Bayes From Scratch: A Spam Filter Built From Word Counts
Dev.toDev.to
AI/ML

단순 단어 카운팅 기반의 Naive Bayes 스팸 필터 설계

Naive Bayes From Scratch: A Spam Filter Built From Word Counts

Devanshu Biswas2026년 6월 17일3beginner

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과 같은 보정 기법 검토

원문 읽기