El NaiveBayes()
función en el klaR paquete obedece a la clásica formula
R de la interfaz mediante la cual se expresa el resultado como una función de sus predictores, por ejemplo spam ~ x1+x2+x3
. Si los datos se almacenan en un data.frame
, puede introducir todos los predictores en el lado derecho de la fórmula usando la notación de punto: spam ~ ., data=df
significa "spam
como una función de todas las demás variables presentes en el data.frame
llamado df
."
Aquí es un juguete ejemplo, el uso de la spam
conjunto de datos discutidos en los Elementos de Aprendizaje Estadístico (Hastie et al., Springer, 2009, 2ª ed.)., disponible on-line. Esto realmente es para empezar con el uso de la función de R, no en los aspectos metodológicos para el uso de NB clasificador.
data(spam, package="ElemStatLearn")
library(klaR)
# set up a training sample
train.ind <- sample(1:nrow(spam), ceiling(nrow(spam)*2/3), replace=FALSE)
# apply NB classifier
nb.res <- NaiveBayes(spam ~ ., data=spam[train.ind,])
# show the results
opar <- par(mfrow=c(2,4))
plot(nb.res)
par(opar)
# predict on holdout units
nb.pred <- predict(nb.res, spam[-train.ind,])
# raw accuracy
confusion.mat <- table(nb.pred$class, spam[-train.ind,"spam"])
sum(diag(confusion.mat))/sum(confusion.mat)
Un recomendado paquete de complementos para tales ML tarea es el símbolo de intercalación paquete. Ofrece un montón de herramientas útiles para el preprocesamiento de datos, manejo de entrenamiento/prueba de muestras, ejecución de diferentes clasificadores en los mismos datos, y resumir los resultados. Está disponible desde CRAN y tiene un montón de viñetas que describen las tareas comunes.