반응형
나이브 베이지안의 모델은 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)
위와 같은 방법으로 해결한다.
반응형
'R programming' 카테고리의 다른 글
지도학습(supervised learning): 의사결정나무(decision tree)이해하기 (0) | 2019.07.21 |
---|---|
ROC 커브와 AUC (를 이해하기 전 민감도와 특이도 이해하기) (0) | 2019.07.20 |
지도학습(supervised learning)-KNN : 정규화에 대해(Today I learn) (0) | 2019.07.01 |
지도학습(supervised learning)-KNN : 분류에 대해 (today I learn) (0) | 2019.06.28 |
[EDA] facet_grid를 더 잘 써보기(Today I learn) (0) | 2019.06.20 |