728x90

나이브 베이즈 분류는 특성 사이의 독립을 가정하는 베이즈 정리(Bayes Theorem)조건부 확률(Conditional Probability)를 적용한 확률 분류기

* 조건부 확률이란 주어진 사건(A)에 일어났다는 가정하에 다른 사건(B)이 일어날 확률[P(B|A)]

 

naiveBayes(formula, data, subset, laplace, ...) : subset - 훈련 데이터에서 사용할 데이터를 지정하는 인덱스 벡터, laplace - 라플라스 스무딩 매개변수 입력(0이면 사용하지 않음)

* 나이브 베이즈 분류는 학습 데이터에서 나타나지 않은 관측의 사후확률을 0으로 계산하는 문제점이 존재.

  -> 이를 해결하기 위해 라플라스 스무딩(laplace smoothing) 기법으로 사후확률을 보정함.

 

library(e1071) #나이브 베이즈 분류를 사용하기 위한 라이브러리 불러오기

train_data = sample(1:150, size = 100) # 1부터 150까지 100개 번호 추출

#나이브 베이즈 분류기 생성
naive_model = naiveBayes(Species~.,
							data = iris,
                            subset = train_data)
                            
pred = predict(naive_model, newdata = iris) #나이브 베이즈 분류기로 분류

library(caret) #혼동행렬 함수를 사용하기 위한 라이브러리 불러오기
confusionMatrix(pred,
				reference = iris$Species)
#정확도가 0.98로 상당히 높음
#민감도가 0.96~1.0으로 상당히 높음
#특이도가 0.98~1.0으로 상당히 높음
#p값이 0.05 이하이므로, 귀무가설을 기각하고 대립가설을 채택함.
#카파통계량이 0.97로 1에 상당히 가까움
728x90