This post shows the R code for Naive Bayes Classifier by using funtion naiveBayes()
in package e1071
. And I use the simple example in my post, Naive Bayes Classifier, to show how to use this function.
Details
- Resources for Package ‘e1071’
Example Code (e1071::naiveBayes())
Suppose we have a contingency table like this:Q : And, what will be our guess on type if we have a data has X1=“Yes” and X2=“Unsure”?
A : Our guess is Type B.####################### #### Generate Data #### ####################### X1=c(rep("yes",10),rep("no",40),rep("yes",70),rep("no",30)) X2=c(rep("yes",10),rep("no",10),rep("unsure",30), rep("yes",40),rep("no",50),rep("unsure",10)) train=data.frame(X1,X2, Type=c(rep("A",50),rep("B",100))) head(train,3)
## X1 X2 Type ## 1 yes yes A ## 2 yes yes A ## 3 yes yes A
test=data.frame(X1="yes",X2="unsure") head(test)
## X1 X2 ## 1 yes unsure
################################ #### Naive Bayes Classifier #### ################################ if (!require("e1071")) install.packages("e1071") library(e1071) (m=naiveBayes(Type ~ ., data = train))
## ## Naive Bayes Classifier for Discrete Predictors ## ## Call: ## naiveBayes.default(x = X, y = Y, laplace = laplace) ## ## A-priori probabilities: ## Y ## A B ## 0.3333333 0.6666667 ## ## Conditional probabilities: ## X1 ## Y no yes ## A 0.8 0.2 ## B 0.3 0.7 ## ## X2 ## Y no unsure yes ## A 0.2 0.6 0.2 ## B 0.5 0.1 0.4
(p=predict(m, test))
## factor(0) ## Levels: