Problema
Intenté usar Naive bayes en un conjunto de datos etiquetados de datos delictivos, pero obtuve resultados realmente pobres (7% de precisión). Naive Bayes corre mucho más rápido que otros alogoritmos que he estado usando, así que quería intentar descubrir por qué el puntaje era tan bajo.
Investigación
Después de leer, descubrí que los bayes Naive deberían usarse con conjuntos de datos equilibrados porque tiene un sesgo para las clases con mayor frecuencia. Como mis datos están desequilibrados, quería intentar usar los Bayes Naive Complementarios, ya que están hechos específicamente para tratar los sesgos de datos. En el documento que describe el proceso, la aplicación es para la clasificación de texto, pero no veo por qué la técnica no funcionaría en otras situaciones. Puede encontrar el documento al que me refiero aquí . En resumen, la idea es usar pesos basados en los casos en que una clase no aparece.
Después de investigar un poco pude encontrar una implementación en Java, pero desafortunadamente no conozco ningún Java y simplemente no entiendo el algoritmo lo suficientemente bien como para implementarlo.
Pregunta
¿Dónde puedo encontrar una implementación en Python? Si eso no existe, ¿cómo debo implementarlo yo mismo?