Problem
Ich habe versucht, Naive Bayes für einen beschrifteten Datensatz von Kriminalitätsdaten zu verwenden, habe aber wirklich schlechte Ergebnisse erzielt (7% Genauigkeit). Naive Bayes läuft viel schneller als andere Alogorithmen, die ich verwendet habe, deshalb wollte ich herausfinden, warum die Punktzahl so niedrig war.
Forschung
Nach dem Lesen stellte ich fest, dass naive Bayes mit ausgeglichenen Datensätzen verwendet werden sollten, da sie eine Tendenz für Klassen mit höherer Häufigkeit aufweisen. Da meine Daten unausgeglichen sind, wollte ich versuchen, die Complementary Naive Bayes zu verwenden, da sie speziell für den Umgang mit Datenversatz entwickelt wurden. In dem Artikel, der den Prozess beschreibt, ist die Anwendung für die Textklassifizierung vorgesehen, aber ich verstehe nicht, warum die Technik in anderen Situationen nicht funktionieren würde. Das Papier, auf das ich mich beziehe, finden Sie hier . Kurz gesagt, die Idee ist, Gewichte zu verwenden, die auf den Vorkommen basieren, in denen eine Klasse nicht angezeigt wird.
Nach einigen Recherchen konnte ich eine Implementierung in Java finden, aber leider kenne ich kein Java und verstehe den Algorithmus einfach nicht gut genug, um mich selbst zu implementieren.
Frage
Wo finde ich eine Implementierung in Python? Wenn das nicht existiert, wie soll ich es selbst implementieren?
quelle
Meine Implementierung von Complement Naive Bayes in Scikit-Learn finden Sie hier .
quelle