2010-04-05 3 views
20

Ich habe das Orange Framework für Naive Bayesian Klassifizierung versucht. Die Methoden sind extrem unintuitiv und die Dokumentation ist extrem unorganisiert. Hat jemand hier ein anderes Framework zu empfehlen?Jeder Naive Bayesian Classifier in Python?

Ich benutze hauptsächlich NaiveBayesian für jetzt. Ich dachte daran, nltk's NaiveClassification zu verwenden, aber dann glauben sie nicht, dass sie mit kontinuierlichen Variablen umgehen können.

Was sind meine Optionen?

Antwort

9

Wenn Sie die natürliche Sprache verarbeiten, sehen Sie sich die Natural Language Toolkit an.

Wenn Sie etwas anderes suchen, hier ist eine einfache search on PyPI.

pebl scheint kontinuierliche Variablen zu behandeln.

+0

Gibt es etwas, von dem Sie wissen, dass kontinuierliche Variablen erlaubt? – disappearedng

+0

Das [pebl tutorial] (http://ano.malo.us/pebl/docs/tutorial.html) behandelt die Diskretisierung, also nehme ich an, dass es über diese Methode zumindest kontinuierliche Variablen verarbeiten kann. –

13

This könnte ein guter Anfang sein. Es ist der vollständige Quellcode (der Textparser, der Datenspeicher und der Klassifikator) für eine Python-Implementierung eines naiven Bayesschen Klassifikators. Obwohl es vollständig ist, ist es immer noch klein genug, um in einer Sitzung zu verdauen. Ich denke, der Code ist einigermaßen gut geschrieben und gut kommentiert. Dies ist Teil der Quellcodedateien für das Buch Programmierung Collective Intelligence.

Um die Quelle zu erhalten, klicken Sie auf den Link, dl und entpacken Sie die Zip, aus dem Hauptordner 'PCI_Code', gehen Sie zum Ordner 'Kapitel 6', die eine Python-Quelldatei 'docclass.py hat. Das ist der vollständige Quellcode für einen Bayes-Spam-Filter. Die Trainingsdaten (E-Mails) werden in einer sqlite-Datenbank gespeichert, die ebenfalls im selben Ordner enthalten ist ('test.db'). Die einzige externe Bibliothek, die Sie benötigen, sind die Python-Bindungen zu sqlite (pysqlite); Sie brauchen auch sqlite selbst, wenn Sie es nicht bereits installiert haben).

+1

Kann ich auch einen Stecker für Tobys Buch hinzufügen, der hervorragend ist. Wenn Sie seinen Quellcode verwenden, könnte es gut sein, ihn zu unterstützen! Am wichtigsten ist, dass diese Datei zeigt, dass ein Naive Bayes-System, wenn Sie die gesamte SQL-Behandlung entfernen, nur ein paar Zeilen lang ist. Wenn Sie nach einem kleinen suchen, können Sie ganz einfach Ihr eigenes machen. Die signifikanten Funktionen sind nur 'fprob' und' weightedprob' und 'naivebayes.classify'. – Ian

+0

Ich fand den Quellcode in Programming Collective Intelligence fürchterlich (möglicherweise weil er in einer alten und hässlicheren Version von Python geschrieben wurde). Trotz des hässlichen Codes empfehle ich das Buch für eine Einführung in das maschinelle Lernen. – Buttons840

+1

Der Link zum Herunterladen ist kaputt. Kennt jemand den neuen Link? – krasnaya

24

Die scikit-learn hat eine implementation von Gauß-naive Bayes-Klassifikator Python. Im Allgemeinen besteht das Ziel dieser Bibliothek darin, einen guten Kompromiss zwischen Code, der leicht zu lesen und zu verwenden ist, und Effizienz bereitzustellen. Hoffentlich sollte es eine gute Bibliothek sein, um von den Algorithmen zu lernen.

0

Es gibt auch SpamBayes, die ich denke, kann als eine allgemeine naive Bayesian clasisfier statt nur für Spam verwendet werden.

3

Ich fand Divmod Reverend zu den einfachsten und einfachsten Python Bayesian Classifier zu verwenden.

+0

Link unterbrochen. https: // GitHub.com/MostAwesomeDude/divmod-docs scheint gültig – Quamis

+0

Link funktioniert immer noch für mich ... – Cerin

+0

yeah, habe gestern nicht gearbeitet, als ich versuchte, – Quamis