Problème
J'ai essayé d'utiliser des baies naïves sur un ensemble de données étiquetées de données sur la criminalité, mais j'ai obtenu de très mauvais résultats (précision de 7%). Naive Bayes fonctionne beaucoup plus rapidement que les autres alogorithmes que j'utilise, donc je voulais essayer de savoir pourquoi le score était si bas.
Recherche
Après avoir lu, j'ai découvert que les bayés naïfs devraient être utilisés avec des jeux de données équilibrés car ils ont un biais pour les classes avec une fréquence plus élevée. Étant donné que mes données sont déséquilibrées, je voulais essayer d'utiliser le complément Naive Bayes car il est spécialement conçu pour traiter les asymétries de données. Dans l'article qui décrit le processus, l'application est destinée à la classification de texte, mais je ne vois pas pourquoi la technique ne fonctionnerait pas dans d'autres situations. Vous pouvez trouver le document auquel je fais référence ici . En bref, l'idée est d'utiliser des poids basés sur les occurrences où une classe n'apparaît pas.
Après avoir fait quelques recherches, j'ai pu trouver une implémentation en Java mais malheureusement je ne connais aucun Java et je ne comprends pas assez bien l'algorithme pour m'implémenter.
Question
où puis-je trouver une implémentation en python? Si cela n'existe pas, comment dois-je procéder pour l'implémenter moi-même?
Mon implémentation de Complement Naive Bayes dans scikit-learn se trouve ici .
la source