{{indexmenu_n>7}}
Obsah této stránky bude přístupný od 16. 11. 2017.
====== Cvičení 7 - Naivní bayesovská klasifikace a lineární klasifikátor ======
Test: https://goo.gl/forms/4ofwjWzWByjk3MIo1
===== Naivní baysevskový klasifikátor =====
* Klasifikace podle maxima aposteriorní pravděpodobnosti
* Převod apriorní znalosti a pozorování na aposteriorní pravděpodobnost pomocí bayesova vzorce
* Proč je klasifikátor naivní
**Příklad:** Hráči chodí hrát tenis, ale hrají pouze za příznivého počasí. Příklady jejich rozhodnutí jsou v následující tabulce. Atributy jsou ''"outlook"'', ''"temperature"'', ''"humidity"'', ''"windy"'' a rozhodnutí je ve sloupečku ''"play"''.
Vyzkoušejte rozdování pomocí jednoho příznaku ()
^ outlook ^ temperature ^ humidity ^ windy ^ play ^
| sunny | hot | high | false | no |
| sunny | hot | high | true | no |
| overcast| hot | high | false | yes |
| rainy | mild | high | false | yes |
| rainy | cool | normal | false | yes |
| rainy | cool | normal | true | no |
| overcast| cool | normal | true | yes |
| sunny | mild | high | false | no |
| sunny | cool | normal | false | yes |
| rainy | mild | normal | false | yes |
| sunny | mild | normal | true | yes |
| overcast| mild | high | true | yes |
| overcast| hot | normal | false | yes |
| rainy | mild | high | true | no |
# naivni Bayes
library(e1071)
# je treba zkonvertovat "logical" priznak na "numeric"
d$windy <- as.numeric(d$windy)
mod <- naiveBayes(play~., data)
# vyzkousejme klasifikator
predict(mod,data)
table(predict(mod,data),data$play)
# a klasifikujme nove pozorovani:
newdata <- data.frame(outlook='sunny',temperature='hot',humidity='normal',windy=0)
predict(mod,newdata)
===== Lineární klasifikátor =====
* lineární rozhodovací nadrovina
* pod lineární klasifikaci spadá mnoho metod - perceptron, logistická regrese, SVM
* učení klasfikátoru - optimalizační úloha (např. minimalizace počtu špatně klasifikovaných pozorování)
=== Logistická regrese ===
* lineární klasifikátor, který predikuje log odds
* generalizovaný lineární model
* vyzkoušejte v R
data("iris")
iris <- iris[iris$Species %in% c('setosa','versicolor'),]
iris$Species <- factor(as.character(iris$Species))
iris$Species_setosa <- iris$Species == 'setosa'
# loistická regrese
logreg <- glm(Species_setosa ~ Sepal.Length + Sepal.Width,data=iris,family=binomial(link='logit'))
summary(logreg)
logregcoef <- coef(logreg)
plot(iris$Sepal.Length,iris$Sepal.Width,col=iris$Species_setosa + 2)
abline(a=-logregcoef[1]/logregcoef[3],b=-logregcoef[2]/logregcoef[3])
table(predict(logreg) > 0,iris$Species_setosa)