# 분류 모델 중 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 |