Veuillez me permettre de poser une question de base. Je comprends la mécanique des Naive Bayes pour les variables discrètes, et peux refaire les calculs "à la main". (code de HouseVotes84 tout le chemin ci-dessous).
Cependant - j'ai du mal à voir comment la mécanique fonctionne pour les variables continues (exemple de code ci-dessous). Comment le package calcule-t-il les probabilités conditionnelles [, 1]
et [, 2]
dans le tableau ci-dessous? Comme toute valeur X individuelle est unique, crée-t-elle une plage autour de chaque point et calcule-t-elle les fréquences relatives dans ces plages (par exemple, si le point est +0,311, évalue-t-elle l'incidence des taches bleues et oranges dans, par exemple, une plage de 0,1 et +0,5?) Cela pourrait être une question fondamentale - excuses si c'est le cas.
Table
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)
la source