Xin cho phép tôi hỏi một câu hỏi cơ bản. Tôi hiểu các cơ chế của Naive Bayes cho các biến rời rạc và có thể làm lại các phép tính "bằng tay". (mã của HouseVotes84 theo cách bên dưới).
Tuy nhiên - Tôi đang vật lộn để xem cơ chế hoạt động như thế nào đối với các biến liên tục (ví dụ mã theo bên dưới). Làm thế nào để gói tính toán xác suất có điều kiện [, 1]
và [, 2]
trong bảng dưới đây? Vì bất kỳ giá trị X riêng lẻ nào là duy nhất, nó có tạo ra một phạm vi xung quanh mỗi điểm và tính tần số tương đối trong các phạm vi này (ví dụ: nếu điểm là +0.311, nó có đánh giá tỷ lệ của các điểm màu xanh và màu cam không, ví dụ như phạm vi 0,1 và +0,5?) Đây có thể là câu hỏi cơ bản - xin lỗi nếu vậy.
Bàn
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
Mã
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)