# 분류 모델 중 Naive Bayes claaifier 모델 : 조건부 확률을 이용. P(A|B): 사건 A가 발생했을때 B가 발생할 확률

 

 

library(e1071) # Naive Bayes

set.seed(123)
ind <- sample(1:nrow(iris), nrow(iris) * 0.7, replace = FALSE)
train <- iris[ind, ]
test <- iris[-ind, ]

help(naiveBayes)
model <- naiveBayes(Species ~ ., data = train)
model
# naiveBayes.default(x = X, y = Y, laplace = laplace)
# 
# A-priori probabilities:
#   Y
# setosa versicolor  virginica 
# 0.3428571  0.3047619  0.3523810 
# 
# Conditional probabilities:
#   Sepal.Length
# Y                [,1]      [,2]
# setosa     4.966667 0.3741657
# versicolor 5.971875 0.4887340
# virginica  6.586486 0.7165357
# 
# Sepal.Width
# Y                [,1]      [,2]
# setosa     3.394444 0.4049299
# versicolor 2.787500 0.3250310
# virginica  2.948649 0.3500965
# 
# Petal.Length
# Y                [,1]      [,2]
# setosa     1.461111 0.1777282
# versicolor 4.309375 0.4423977
# virginica  5.529730 0.6235494
# 
# Petal.Width
# Y                 [,1]      [,2]
# setosa     0.2555556 0.1157447
# versicolor 1.3500000 0.1951013
# virginica  1.9945946 0.2613490
pred <- predict(model, test, type='class')
head(pred, 3)
t <- table(pred, test$Species)
t
# pred         setosa versicolor virginica
# setosa         14          0         0
# versicolor      0         18         0
# virginica       0          0        13
sum(diag(t)) / nrow(test) # 1
prop.table(t) # margin = 1
# pred             setosa versicolor  virginica
# setosa     0.33333333 0.00000000 0.00000000
# versicolor 0.00000000 0.37777778 0.02222222
# virginica  0.00000000 0.00000000 0.26666667

'BACK END > R' 카테고리의 다른 글

[R] R 정리 19 - ANN(인공 신경망)  (0) 2021.02.03
[R] R 정리 18 - svm, knn  (0) 2021.02.02
[R] R 정리 16 - Random Forest  (0) 2021.02.02
[R] R 정리 15 - Decision Tree  (0) 2021.02.02
[R] R 정리 14 - 로지스틱 회귀2 ROC  (0) 2021.02.01

+ Recent posts