4 votos

¿Cómo especificar una prioridad no MLE para un modelo naiveBayes en R?

Estoy aprendiendo R, y soy consciente de que el paquete e1071 tiene un naiveBayes que toma el predictor y la pertenencia a la clase, y estima la clase previa utilizando la frecuencia relativa (estimación ML).

Me gustaría ver el impacto de tener una muestra que no está equilibrada entre clases (digamos que los hombres y las mujeres están representados en una proporción de 3:7 en los datos disponibles), cuando sé que para la población que me interesa, la prioridad de los hombres y las mujeres estaría mucho más cerca de 0,5:0,5 que de 0,3:0,7. La representación sesgada se debe a problemas prácticos de muestreo/encuesta.

He intentado hacer un muestreo descendente del subconjunto de mujeres para que el conjunto de entrenamiento refleje la proporción 1:1. ¿Hay alguna forma de utilizar naiveBayes con una prioridad preestablecida que no se refleja en la frecuencia relativa en los datos? He mirado la documentación sobre e1071::naiveBayes y no parece haber ninguna forma de especificar mi propio anterior.

¿Hay algún otro paquete que lo haga?

4voto

DavLink Puntos 101

Si está buscando una implementación del algoritmo de Bayes ingenuo que permita el uso de prioritarios, probablemente debería echar un vistazo al klaR y su paquete NaiveBayes() que tiene

prior: the prior probabilities of class membership. If unspecified,
       the class proportions for the training set are used. If
       present, the probabilities should be specified in the order
       of the factor levels.

2voto

Rob Allen Puntos 486

Esta es una solución fea, fea, pero si está encerrado en e1071, puede pasar la opción "cruda" para predecir, que le dará las probabilidades de cada clase.

A continuación, podría "corregirlos" dividiendo la prioridad "empírica" (es decir, la de su muestra) y multiplicándola por la prioridad poblacional verdadera.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X