请允许我问一个基本问题。我了解离散变量的朴素贝叶斯机制,并且可以“手动”重做计算。(HouseVotes84 代码如下)。
但是 - 我正在努力了解连续变量的机制是如何工作的(下面的示例代码)。包如何计算条件概率[, 1]
并[, 2]
在下表中?由于任何单个 X 值都是唯一的,它是否会在每个点周围创建一个范围,并计算这些范围内的相对频率(例如,如果该点为 +0.311,它是否评估蓝色和橙色点在例如 0.1 和+0.5?)这可能是基本问题-如果是,请道歉。
桌子
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
代码
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)