일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- CARTO
- 공간데이터 분석
- 인공지능
- install
- 데이터 분석
- 빅데이터
- Spatial Data Analysis
- 지도
- 인스톨
- data visualization
- Big data
- machine learning
- map
- Kepler.gl
- mapping
- Web Mapping
- 웹지도
- QGIS
- plugin
- 머신러닝
- AI
- Uber
- 우버
- 플러그인
- GIS
- Data Analysis
- 데이터 시각화
- Mapbox
- 설치
- Web GIS
- Today
- Total
GIS & Spatial Analysis in KOREA
Naive Bayes Classification - 이론 본문
[Machine Learning]
#Data Analysis #Data Science #Data Scientist #Spatial Data Analysis #Big Data #Data Visualization
#AI #Machine Learning #Supervised Learning #Naive Bayes #Bayesian Machine Learning #sklearn
#데이터 분석 #데이터 과학 #데이터 과학자 #공간데이터 분석 #빅데이터 #데이터 시각화
#인공지능 #기계학습 #머신러닝 #지도학습 #나이브 베이즈 #베이지안 머신러닝
[ Naïve Bayes Classification - 이론 ]
Naïve Bayes Classification 에 대해 이야기하기 위해 우선 논의를 끌어갈 시나리오에 대해 이야기하고, 다음으로 Naïve Bayses Classifier의 핵심인 베이즈 정리(Bayes Theorem)라고 알려진 사후확률(Posterior Probability)에 관한 수학적 논의를 할 예정이다.
1. 시나리오
대화속의 단어 패턴을 잘 알고 있는 Alice와 Bob이라는 두 사람을 상상해보라. 이야기를 더욱 단순화하기위해 Alice는 Love, Great, Wonderful, Bob은 Dog, Ball, Wonderful 이라는 세 단어를 자주 사용한다고 가정해보자. 그리고, Alice 혹은 Bob이 보낸 것으로 생각되는 익명의 이메일을 받았다. 이 메일의 내용은,
“I love beach sand. Additionally the sunset at beach offers wonderful view.”
이다. 이 이메일이 누구로부터 온 것인지 유추할 수 있는가?
만약 Alice로부터 온 것이라고 생각했다면 추측은 정확했다. 아마 그렇게 추론한 이유는 Alice가 자주쓰는 단어인 Love, Greeat, Wonderful 때문일 것이다.
이제는 한 단계 더 나아가 각 단어마다 언급할 확률 값을 부여해보자. Alice와 Bob이 아래 표처럼 각 단어를 사용한다고 가정해보자.
그러면,
“Wonderful Love.”
는 과연 누가 보낸 것일까?
만약, Bob이 보낸 것이라고 생각했다면 추론은 맞았다. 이 추론을 수학적으로 한다면 베이지안 이론(Baysian Theorem)을 적용해야한다.
B가 발생할 확률 아래 A가 발생할 확률을 P(A | B)라 쓰고, A가 발생할 확률 아래 B가 발생할 확률을 P(B | A)이라 쓰고, 각각 A, B가 발생할 확률은 P(A), P(B)라고 쓴다.
만약, 아래와 같이 씌여있다면
P(Fire | Smoke)는 Smoke(연기)를 볼 때 얼마나 자주 Fire(화재)가 발생했는지
P(Smoke | Fire)는 Fire(화재)가 발생했을 때 얼마나 자주 Smoke(연기)가 발생했는지
를 의미한다.
예) 만약 위험한 화재의 발생 확률은 1% (P(Fire) = 1%)이며, 공장들에 의한 연기 발생 확률이 10% (P(Smoke) = 10%)라고 한다면 위험한 화재의 90%에서 연기가 발생(P(Smoke | Fire) = 90%)한다.
P(Fire | Smoke) = P(Fire)P(Smoke | Fire) = 1% x 90% = 9%P(Smoke)10%
이 경우 9%는 연기가 할생했을 때 위험한 화재인 확률을 의미한다.(P(Fire | Smoke) = 9%)
2. Naïve Bayes Classifier
Naïve Bayes Classifier 는 모든 요소에 대한 확률을 계산한다.(이메일 예제의 경우 Alice와 Bob이 주어진 입력 요소이다.) 이 분류에서 각 기능들(시나리오에서 각 단어들)은 독립적이라고 가정한다.
이 분류법을 이용해 우리는
실기간 예측(Real Time Prediction)
텍스트 분류/스팸 필터링(Text Classification / Spam Filtering)
추천 시스템(Recommendation System)
에 이용 할 수 있다.
수학적으로는 다음과 같이 쓸 수 있다. 특정 Event E, Test Actor x1, x2, x3, 등이 있는 경우 우리는 먼저 P(x1 | E), P(x2 | E) … [이벤트 E가 발생한 경우 x1의 확률]로 읽으며, Test Actor x 중 최대 확률값을 선택한다.
다음 글에서는 Python에서 sklearn 라이브러리를 이용해 이메일을 스팸이나 햄으로 분류하는 Naive Bayes Classifier를 구현하고자 한다.
- 끝 -
'Machine Learning > Machine Learning Basic' 카테고리의 다른 글
Support Vector Machine (SVM) - Code (0) | 2018.09.14 |
---|---|
Support Vector Machine (SVM) - 이론 (0) | 2018.09.13 |
Naïve Bayes Classification - Code (0) | 2018.08.31 |
Machine Learning(기계학습)이란? (0) | 2018.08.29 |