본문 바로가기

R programming

지도학습(supervised learning)-나이브 베이지안 모델 in R(Today I learn)

반응형

나이브 베이지안의 모델은 P(A|B)=P(A and B)/ P(B) 이러한 형태를 취하고 있다.
사건 B가 일어날 경우, 사건 A가 나올 확률을 나타낸다.

 

단순히 갯수를 구해서 식으로 확률을 구할 수 있고, 함수를 사용해 구할 수도 있다.

함수를 사용하는 방법은 다음과 같다.
datacamp에서 소개한 라이브러리와 함수이다. 

# Load the naivebayes package
library(naivebayes)

# Build the prediction model
a <- naive_bayes(종속변수~독립변수, data = )

# Predict 종속변수
predict(a, 독립변수의 값)

naivebayes라는 라이브러리로 불러온 뒤,

naive_bayes라는 함수에 각각의 종속변수, 독립변수 컬럼을 넣는다. 
predict라는 함수를 통해 독립변수의 값을 넣었을 때, 종속변수의 값을 산출해낼 수 있다.

predict함수에는 type 명령어를 통해 종속변수 값의 확률을 산출해낼 수도 있다. 

predict(a, 독립변수의 값, type="prob")

다음과 같이 하면 된다. 기본 디폴트 type상태는 class다. 

 

 

나이브 베이지안 모델에서 이해해야 할 점은 P(A and B)=0 일 경우,

다시말해 과거 데이터에서 사건A와 B가 동시에 발생했던 적이 없다면 P(A|B)=0 이 된다는 점이다.

하지만 과거에 발생했던 적이 한 번도 없다고 해서, 미래에도 그럴 것이라는 보장이 있는 것은 아니다.

그렇기 때문에 우리는 여기에 1이라는 작은 수를 넣어줌으로써, 이 문제를 해결한다.(Laplace correction)

 

a<- naive_bayes(종속변수~독립변수,data=, laplace=1)

위와 같은 방법으로 해결한다.

반응형