Bitte erlauben Sie mir, eine grundlegende Frage zu stellen. Ich verstehe die Mechanik von Naive Bayes für diskrete Variablen und kann die Berechnungen "von Hand" wiederholen. (Code von HouseVotes84 ganz unten).
Ich habe jedoch Schwierigkeiten zu sehen, wie die Mechanik für kontinuierliche Variablen funktioniert (Beispielcode siehe unten). Wie berechnet das Paket die bedingten Wahrscheinlichkeiten [, 1]
und [, 2]
in der folgenden Tabelle? Da jeder einzelne X-Wert eindeutig ist, erstellt er einen Bereich um jeden Punkt und berechnet die relativen Häufigkeiten innerhalb dieser Bereiche (z. B. wenn der Punkt +0,311 ist, bewertet er das Auftreten von blauen und orangefarbenen Punkten in z. B. einem Bereich von 0,1 und +0,5?) Dies könnte eine grundlegende Frage sein - entschuldigen Sie sich, wenn ja.
Tabelle
A-priori probabilities:
Y
blue orange
0.5 0.5
Conditional probabilities:
values
Y [,1] [,2]
blue 0.08703793 0.9238799
orange 1.33486433 0.9988389
Code
blue=rep("blue",50); orange=rep("orange",50); colour=c(blue,orange); values1=rnorm(50,0,1); values2=rnorm(50,1,1); values=c(values1,values2)
df=data.frame(colour,values)
(model <- naiveBayes(colour ~ ., data = df))
(predict(model, df[1:10,]))
(predict(model, df[1:10,], type = "raw"))
(pred <- predict(model, df))
table(pred, df$colour)
## Categorical data only:
library(e1071)
data(HouseVotes84, package = "mlbench")
HouseVotes84=HouseVotes84[,1:3]
(model <- naiveBayes(Class ~ ., data = HouseVotes84))
(predict(model, HouseVotes84[1:10,]))
(predict(model, HouseVotes84[1:10,], type = "raw"))
(pred <- predict(model, HouseVotes84))
table(pred, HouseVotes84$Class)