SlideShare a Scribd company logo
Doing Data Science
4. 스팸 필터, 나이브베이즈, 경합
오근현
이슈
자동 스팸 필터를 만들고 싶다
3
스팸의 기준
• 단어 (이 장에서 사용하는 방식, 학습의 여지가 있음)
• 텍스트에 포함된 단어 기준
• 예시: 비아그라
• 단점: 단어의 스펠링 수정
• 제목 형식 (규칙 기반)
• 긴제목, 느낌표/기타 문장기호 과다 사용
• 문제: Yahoo! 같은 문장 기호는 예외로 설정해야함
이전 장에서 제시한 방법
• 선형회귀
• 선형회귀는 연속적 결과값을 모형화함 ==> 스팸 필터의 결과값은 이진값.
TRUE 아니면 FALSE
• 규칙기반 처럼 사용한다고 해도 수식에 포함할 단어의 개수가 너무 많음
• kNN
• 단어의 개수가 너무 많음
• (단어의 개수가 많아) 계산량(탐색범위)이 너무 많음
• (단어의 개수가 많아) 가까운 이웃도 먼 것처럼 인식
문제 다시 정리
• 해결하고자 하는 문제: 스팸 필터 찾기
==> TRUE와 FALSE를 판단할 수 있는 모델 (이진 또는 확률)
• 해결하고자 하는 방법: 텍스트에 포함된 단어들을 보고 스팸인지 아닌지
판단
==> 단어들의 집합을 보고 스팸인지 아닌지 판단. (if) 특정 단어(들)가 나
타나면 (then)스팸이다. (조건)
==> 특정 단어(들)이 나타나도 스팸이 아닐 수 있다. (불확실성, 확률)
• 단어의 개수가 많아도 복잡성(탐색범위)이 적어야한다
문제 해결 방법 선택
• 문제 다시 다시 정리: 특정 단어(들)가 나타났을 조건에서 스팸메일일 확
률을 낮은 복잡성으로 찾을 수 있다
• 필요한 방법의 조건: 낮은 복잡성의 조건부 확률 모델
• 저자가 선택한 방법: 나이브 베이즈
나이브 베이지 분류기
베이즈룰 기반 법칙
• 근원 사상: 실험의 기본 결과이며 더 이상 다른 결과에 의해 분해될 수 없다
• 확률의 곱셈법칙: P(A∩B) = P(A|B)P(B) = P(B|A)P(A)
• 조건부 확률: 사상 B가 일어난다는 전제하에 사상 A가 일어날 확률을 구하기 위하여 사
상 A와 B 모두 일어나는 확률을 사상 B가 일어나는 확률로 나눈다.
• 서로 배반 사상: 곱사상 P(A∩B)에 포함된 근원사상이 하나도 없는 두 사상 A와 B를 서
로 배반 사상(mutually exclusive event)라고 한다
• 독립 사상: P(A|B) = P(A)가 성립한다면 사상 A와 사상 B는 독립이다.
출처: Excel을 이용한 분석 공학 자연계를 위한 확률 및 통계(김병휘 외 5명, 자유 아카데미)
베이즈룰(Bayes' Rule)
• 정의: k개의 서로 배반적이며 표본공간을 이루는 의 사상
과 관찰된 사상 E가 주어질때 P(A|E)는
• 조건
• P(A|E): 조건부 확률
• 서로 : 배반 사상, 독립 사상
나이브 베이즈 분류기
• Naive Bayes classifiers are a family of simple probabilistic
classifiers based on applying Bayes' theorem with strong (naive)
independence assumptions between the features.
• 단순한/순진한 베이즈
• 단순한
• 순진한: 사상을 서로 배반/독립이라고 가정
나이브 베이즈 예제
• 어떤 사람이 양성을 보였다면, 이 사람이 정말로 병에 걸렸을 확률은?
나이브 베이즈 예제 풀이
p(+|sick): 0.99 <== 99%
p(sick): 0.01 <== 0.01
p(+): 건강하지만 양성 + 아팠을때 양성<== 0.99 x 0.01 + 0.01 x 0.99
개별 단어에 대한 스팸 필터
• 개별 단어에 대한 베이즈 룰 적용
• 개별 단어에 대한 베이즈 룰 분모
단어들을 결합한 스팸 필터
• 어떤 이메일이 스팸이라는 것을 알때 어떤 주어진 단어 벡터가 나타날
확률(베르누이 나이브 베이즈 사용)
: 한 스팸메일에서 j번째 단어가 존재할 확률
• underflow 방지를 위해 로그방정식으로 변환
단어들을 결합한 스팸 필터(계속)
• 앞서 구한 식 상수 치환
• 베이즈 룰을 이용하여 p(x|c)를 알 수 있기 때문에 p(c|x)를 구할 수 있음
좀 더 멋있게: 라플라스 평활
• 베이즈 룰
• 이슈1: 밑변(P(B))가 0이 되면?
• 이슈2: 불확실성을 좀 더 반영하고 싶으면? (확률 1이 나오지 않도록)
• 라플라스 평활(Laplace smoothing): 이슈들을 해결을 위해 가중치 주기
코드 예시

More Related Content

PDF
1. boolean 검색
PDF
데이터에서 의미 추출하기
PPTX
Naive Bayes by Seo
PDF
Machine learning ch.1
PDF
ODSC West
PDF
Towards Automated Classification of Discussion Transcripts: A Cognitive Prese...
PDF
데이터 과학 입문 5장
PDF
[데이터를 부탁해] 비전공자가 데이터 분석가로 거듭나기 by 황준식
1. boolean 검색
데이터에서 의미 추출하기
Naive Bayes by Seo
Machine learning ch.1
ODSC West
Towards Automated Classification of Discussion Transcripts: A Cognitive Prese...
데이터 과학 입문 5장
[데이터를 부탁해] 비전공자가 데이터 분석가로 거듭나기 by 황준식

Similar to Doing data science chap4 (20)

PDF
02. naive bayes classifier revision
PDF
Crash Course on Graphical models
PPTX
Naive bayes classifier
PPTX
Naive bayes classifier - digit recognition
PDF
Machine learning bysogood
PPTX
Probability with MLE, MAP
PDF
데이터처리와 통계 기본 머신러닝
PPTX
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
PPTX
패턴인식-베이즈결정이론기반 분류기 part1
PDF
3 Generative models for discrete data
PPTX
패턴 인식 2 classifiers based on bayes decision theory part 1
PDF
04. logistic regression ( 로지스틱 회귀 )
PPTX
Murpy's Machine Learing: 10. Directed Graphical Model
PDF
RUCK 2017 베이즈 모형의 꽃 - 계층 모형
PDF
집단지성 프로그래밍 05-문서필터링-02
PPTX
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
PPTX
[Probability for machine learning]
PDF
20160409 microsoft 세미나 머신러닝관련 발표자료
PPTX
Python Machine Learning - ML03 Support Vector Machine(서포트 벡터 머신)
PDF
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
02. naive bayes classifier revision
Crash Course on Graphical models
Naive bayes classifier
Naive bayes classifier - digit recognition
Machine learning bysogood
Probability with MLE, MAP
데이터처리와 통계 기본 머신러닝
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
패턴인식-베이즈결정이론기반 분류기 part1
3 Generative models for discrete data
패턴 인식 2 classifiers based on bayes decision theory part 1
04. logistic regression ( 로지스틱 회귀 )
Murpy's Machine Learing: 10. Directed Graphical Model
RUCK 2017 베이즈 모형의 꽃 - 계층 모형
집단지성 프로그래밍 05-문서필터링-02
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
[Probability for machine learning]
20160409 microsoft 세미나 머신러닝관련 발표자료
Python Machine Learning - ML03 Support Vector Machine(서포트 벡터 머신)
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
Ad

More from Keunhyun Oh (9)

PDF
Mastering Python chapter3
PDF
[SwiftStudy 2016] 3장. 함수
PDF
[SwiftStudy 2016] 2장. Swift 타입 파트 1
PDF
[SwiftStudy 2016] 1장. Swift 소개
PDF
WWDC2016 스터디 공유 발표 - 공유용
PDF
프로그래밍 오브젝티브 C 2.0 (5/E) - 8장 상속
PDF
연관도 분석을 이용한 데이터마이닝
PDF
게임 AI를 통해 본 인공지능 기본 개념
PDF
Doing data science chap11
Mastering Python chapter3
[SwiftStudy 2016] 3장. 함수
[SwiftStudy 2016] 2장. Swift 타입 파트 1
[SwiftStudy 2016] 1장. Swift 소개
WWDC2016 스터디 공유 발표 - 공유용
프로그래밍 오브젝티브 C 2.0 (5/E) - 8장 상속
연관도 분석을 이용한 데이터마이닝
게임 AI를 통해 본 인공지능 기본 개념
Doing data science chap11
Ad

Doing data science chap4

  • 1. Doing Data Science 4. 스팸 필터, 나이브베이즈, 경합 오근현
  • 3. 자동 스팸 필터를 만들고 싶다 3
  • 4. 스팸의 기준 • 단어 (이 장에서 사용하는 방식, 학습의 여지가 있음) • 텍스트에 포함된 단어 기준 • 예시: 비아그라 • 단점: 단어의 스펠링 수정 • 제목 형식 (규칙 기반) • 긴제목, 느낌표/기타 문장기호 과다 사용 • 문제: Yahoo! 같은 문장 기호는 예외로 설정해야함
  • 5. 이전 장에서 제시한 방법 • 선형회귀 • 선형회귀는 연속적 결과값을 모형화함 ==> 스팸 필터의 결과값은 이진값. TRUE 아니면 FALSE • 규칙기반 처럼 사용한다고 해도 수식에 포함할 단어의 개수가 너무 많음 • kNN • 단어의 개수가 너무 많음 • (단어의 개수가 많아) 계산량(탐색범위)이 너무 많음 • (단어의 개수가 많아) 가까운 이웃도 먼 것처럼 인식
  • 6. 문제 다시 정리 • 해결하고자 하는 문제: 스팸 필터 찾기 ==> TRUE와 FALSE를 판단할 수 있는 모델 (이진 또는 확률) • 해결하고자 하는 방법: 텍스트에 포함된 단어들을 보고 스팸인지 아닌지 판단 ==> 단어들의 집합을 보고 스팸인지 아닌지 판단. (if) 특정 단어(들)가 나 타나면 (then)스팸이다. (조건) ==> 특정 단어(들)이 나타나도 스팸이 아닐 수 있다. (불확실성, 확률) • 단어의 개수가 많아도 복잡성(탐색범위)이 적어야한다
  • 7. 문제 해결 방법 선택 • 문제 다시 다시 정리: 특정 단어(들)가 나타났을 조건에서 스팸메일일 확 률을 낮은 복잡성으로 찾을 수 있다 • 필요한 방법의 조건: 낮은 복잡성의 조건부 확률 모델 • 저자가 선택한 방법: 나이브 베이즈
  • 9. 베이즈룰 기반 법칙 • 근원 사상: 실험의 기본 결과이며 더 이상 다른 결과에 의해 분해될 수 없다 • 확률의 곱셈법칙: P(A∩B) = P(A|B)P(B) = P(B|A)P(A) • 조건부 확률: 사상 B가 일어난다는 전제하에 사상 A가 일어날 확률을 구하기 위하여 사 상 A와 B 모두 일어나는 확률을 사상 B가 일어나는 확률로 나눈다. • 서로 배반 사상: 곱사상 P(A∩B)에 포함된 근원사상이 하나도 없는 두 사상 A와 B를 서 로 배반 사상(mutually exclusive event)라고 한다 • 독립 사상: P(A|B) = P(A)가 성립한다면 사상 A와 사상 B는 독립이다. 출처: Excel을 이용한 분석 공학 자연계를 위한 확률 및 통계(김병휘 외 5명, 자유 아카데미)
  • 10. 베이즈룰(Bayes' Rule) • 정의: k개의 서로 배반적이며 표본공간을 이루는 의 사상 과 관찰된 사상 E가 주어질때 P(A|E)는 • 조건 • P(A|E): 조건부 확률 • 서로 : 배반 사상, 독립 사상
  • 11. 나이브 베이즈 분류기 • Naive Bayes classifiers are a family of simple probabilistic classifiers based on applying Bayes' theorem with strong (naive) independence assumptions between the features. • 단순한/순진한 베이즈 • 단순한 • 순진한: 사상을 서로 배반/독립이라고 가정
  • 12. 나이브 베이즈 예제 • 어떤 사람이 양성을 보였다면, 이 사람이 정말로 병에 걸렸을 확률은?
  • 13. 나이브 베이즈 예제 풀이 p(+|sick): 0.99 <== 99% p(sick): 0.01 <== 0.01 p(+): 건강하지만 양성 + 아팠을때 양성<== 0.99 x 0.01 + 0.01 x 0.99
  • 14. 개별 단어에 대한 스팸 필터 • 개별 단어에 대한 베이즈 룰 적용 • 개별 단어에 대한 베이즈 룰 분모
  • 15. 단어들을 결합한 스팸 필터 • 어떤 이메일이 스팸이라는 것을 알때 어떤 주어진 단어 벡터가 나타날 확률(베르누이 나이브 베이즈 사용) : 한 스팸메일에서 j번째 단어가 존재할 확률 • underflow 방지를 위해 로그방정식으로 변환
  • 16. 단어들을 결합한 스팸 필터(계속) • 앞서 구한 식 상수 치환 • 베이즈 룰을 이용하여 p(x|c)를 알 수 있기 때문에 p(c|x)를 구할 수 있음
  • 17. 좀 더 멋있게: 라플라스 평활 • 베이즈 룰 • 이슈1: 밑변(P(B))가 0이 되면? • 이슈2: 불확실성을 좀 더 반영하고 싶으면? (확률 1이 나오지 않도록) • 라플라스 평활(Laplace smoothing): 이슈들을 해결을 위해 가중치 주기