Problem
Próbowałem używać naiwnych bayes na oznaczonym zbiorze danych dotyczących przestępczości, ale otrzymałem naprawdę słabe wyniki (7% dokładności). Naiwne Bayes działa znacznie szybciej niż inne alogorytmy, których używałem, więc chciałem spróbować dowiedzieć się, dlaczego wynik był tak niski.
Badania
Po przeczytaniu odkryłem, że bayes Naive powinien być używany ze zbalansowanymi zestawami danych, ponieważ ma on tendencję do klas o wyższej częstotliwości. Ponieważ moje dane są niezrównoważone, chciałem spróbować skorzystać z komplementarnych naiwnych Bayesów, ponieważ są one przeznaczone do radzenia sobie z wypaczeniami danych. W artykule opisującym proces aplikacja służy do klasyfikacji tekstu, ale nie rozumiem, dlaczego technika ta nie działałaby w innych sytuacjach. Artykuł, o którym mowa, można znaleźć tutaj . Krótko mówiąc, chodzi o użycie wag opartych na sytuacjach, w których klasa się nie pojawia.
Po przeprowadzeniu badań udało mi się znaleźć implementację w Javie, ale niestety nie znam żadnej Java i po prostu nie rozumiem algorytmu wystarczająco dobrze, aby sam się zaimplementować.
Pytanie
gdzie mogę znaleźć implementację w Pythonie? Jeśli to nie istnieje, to jak powinienem sam to wdrożyć?
źródło
Moje wdrożenie Complement Naive Bayes w scikit-learn można znaleźć tutaj .
źródło