< 부산대학교 산업데이터과학 수업을 듣고 복습용도로 정리하였습니다 >
오늘은 나이브 베이즈에 대해 배웠다.
처음 듣고서는 꽤 어려운 녀석인 줄 알았는데 쉬운 녀석이었다.
친해지기 어렵지않았다. 금방 친해질 수 있었다.
이 개념에 대해 이해하기 위해서는 베이즈 이론, 가능도. 이 2가지 개념에 대한 이해가 필요하다.
1. 베이즈 이론
베이즈 이론이란 수학시간에 다 한번씩은 봤던 개념이다.
1.1 사전확률
어떤 사람을 보고 성별을 맞춘다고 생각해보자.
사람은 남녀로 구분되고 이 비율은 반 반이니까 우리가 이 사람의 성별에 대해 가지고 있는 확률은 다음과 같다.
P(남자) = 0.5, P(여자) = 0.5
이게 사전확률이다. 어떤 관측치를 얻기 전에 가지고 있는 확률이다.
1.2 사후확률
그 후 관측치를 가지고 이 확률을 업데이트 할 수 있는데 이를 사후확률이라고 부른다.
P(남자|머리가 짧음): 머리가 짧을 때 남자일 확률
P(여자|머리가 짧음): 머리가 짧을 때 여자일 확률
이 값들은 분명 0.5와는 차이가 있을 것이다. 전자의 값이 분명히 더 클 것이라고 예상할 수 있다.
즉 머리가 짧은 사람을 보고 우리는 그 사람에 대한 정보가 없을 때보다 더 정확한 예측을 할 수 있다는 것이다.
1.3 베이즈 이론
P(남자|머리가 짧을 때)는 다음의 식과 같은 값을 가진다.
P(머리가 짧을 때|남자) * p(남자) / p(머리가 짧을 때).
즉 남자일 때 머리가 짧을 확률과 머리가 짧을 확률을 가지고 머리가 짧을 떄 남자일 확률을 구할 수 있다는 것이다.
1.4 Naive bayes
Naive는 순진하다는 뜻인데, 각 칼럼들이 독립이라고 가정을 하는 것이다.
P(A, B) = P(A) * P(B)로 표시가 가능하고 계산이 훨씬 쉬워진다.
가정이 들어갔지만 계산을 해보면 값에 큰 차이가 없인다. 즉 큰 성능을 보이는 개념이다.
2. 가능도
가능도, likelihood는 데이터가 주어졌을 때 해당 분포를 가질 확률이다.
확률이란 P(1<x<10 | N(3, 4))이다.
즉 어떤 분포가 주어졌을 때 특정 구간의 값이다.
반면에 가능도란 P(N(3, 4) | X))이다.
즉 관측치가 주어졌을 때 해당 분포를 가질 확률이다. 즉 해당 X값에서의 해당 분포의 pdf값의 곱이 가능도가 된다.
즉 나이브베이즈란 독립이라는 가정을 추가해 베이즈 이론을 이용해 해당 관측값이 가지는 가능도를 이용해 예측을 하는 것이다. 사실 말로 쓰면 전혀 감이 안잡힐 것 같다.
직접 코드를 보는게 더 이해가 빠를 것 같다.
부산대학교 산업데이터과학 실습수업에 쓰인 코드를 보며 정리를 더 해보겠다.
data가 주어졌고 person의 성별에 대해 예측하는 문제다.
먼저 사전확률(남자일 확률, 여자일 확률)은 0.5다.
이제 person의 정보를 가지고 사전확률을 업데이트한다. 사후확률을 구해본다.
데이터가 가우시안분포를 따른다고 가정하고 가능도를 구한다.
각 칼럼에 대한 평균, 분산값을 가지고 person의 정보에 해당하는 가능도를 구한다.
즉 정규분포식에 x값을 대입한다. 그렇게 구한 가능도들을 모두 곱한게 사후확률의 분자가 된다.
p2값이 더 크므로 person은 female이라고 판별할 수 있게 된다.
설명이 정리되지못하고 난잡하여 이 내용을 보고 이해하기가 어려울 것 같은데.
정리하자면 나이브 베이즈란 독립이라는 가정을 가지고 베이즈 이론을 이용해 사후확률을 구하는 것이다.
위의 예제에서 P(person|female)일 확률은 원래 P(height=6, weight=130, foot_size=8|female)인 확률을 구해야하는데
독립이기에 곱으로 확률을 구할 수가 있게 되는 것이다.
이때의 확률은 각 칼럼의 분포에서의 가능도가 된다.
P(female | person) = P(person | female) * P(female) / P(person).
P(person | female) = P(height=6, weight=130, foot_size=8 | female)
= P(height=6 | female) * P(weight=130 | female) * P(foot_size=8 | female)
이 된다. 위에서는 분자는 결국 같으니 이 분자값만 구해서 비교해 더 높은 가능도를 가지는 경우로 예측을 한 것이다.
우연히 나이브 베이즈를 공부하다가 제 글을 보신 분이라면 정말 쉬운 개념이니까 더 찾아보시면 금방 이해하실 거라고 생각합니다.
'DataScience > MachineLearning' 카테고리의 다른 글
[평가지표] Confustion Matrix (2) | 2023.07.14 |
---|---|
와디즈 - 모델링 (0) | 2022.04.10 |
ML - NaiveBayes, Scikit learn (0) | 2021.10.31 |
ML - 텍스트 분석(Text Analysis) (0) | 2021.05.13 |
ML - RFM기법 (0) | 2021.05.13 |
댓글