Problema
Ho provato a usare Naive Bayes su una serie di dati etichettati di dati sulla criminalità, ma ho ottenuto risultati davvero scarsi (precisione del 7%). Naive Bayes corre molto più velocemente degli altri alogoritmi che ho usato, quindi volevo provare a scoprire perché il punteggio era così basso.
Ricerca
Dopo aver letto ho scoperto che i bay Naive dovrebbero essere usati con set di dati bilanciati perché ha una propensione per le classi con frequenza più alta. Dal momento che i miei dati sono sbilanciati, ho voluto provare a utilizzare le Naive Bayes complementari, poiché sono state create appositamente per gestire le inclinazioni dei dati. Nel documento che descrive il processo, l'applicazione è per la classificazione del testo ma non vedo perché la tecnica non funzioni in altre situazioni. Puoi trovare il documento a cui mi riferisco qui . In breve, l'idea è quella di utilizzare i pesi in base alle occorrenze in cui una classe non viene visualizzata.
Dopo aver fatto qualche ricerca sono stato in grado di trovare un'implementazione in Java, ma sfortunatamente non conosco Java e non capisco l'algoritmo abbastanza bene da implementare me stesso.
Domanda
dove posso trovare un'implementazione in Python? Se ciò non esiste, come dovrei implementarlo da solo?