2010-04-05 9 views
20

Ho provato l'Orange Framework per la classificazione Naive Bayesiana. I metodi sono estremamente non intuitivi e la documentazione è estremamente disorganizzata. Qualcuno qui ha un altro quadro da raccomandare?Qualunque classificatore bayesiano non valido in python?

Per ora uso principalmente NaiveBayesian. Stavo pensando di usare NaiveClassification di nltk ma poi non pensano di poter gestire variabili continue.

Quali sono le mie opzioni?

risposta

9

Se stai elaborando un linguaggio naturale, controlla lo Natural Language Toolkit.

Se stai cercando qualcos'altro, ecco un semplice search on PyPI.

pebl sembra gestire variabili continue.

+0

C'è qualcosa che sai di quali variabili continue? – disappearedng

+0

Il [pebl tutorial] (http://ano.malo.us/pebl/docs/tutorial.html) riguarda la discretizzazione, quindi presumo che possa gestire variabili continue tramite quel metodo, almeno. –

13

This potrebbe essere un buon punto di partenza. È il codice sorgente completo (il parser di testo, l'archiviazione dei dati e il classificatore) per un'implementazione python di un classificatore bayesiano ingenuo. Anche se è completo, è ancora abbastanza piccolo da essere digerito in una sola sessione. Penso che il codice sia ragionevolmente ben scritto e ben commentato. Questo fa parte dei file del codice sorgente per il libro Programmazione Intelligenza Collettiva.

Per ottenere il sorgente, fare clic sul collegamento, dl e decomprimere lo zip, dalla cartella principale 'PCI_Code', andare alla cartella 'capitolo 6', che ha un file di origine python 'docclass.py. Questo è il codice sorgente completo per un filtro antispam bayesiano. I dati di addestramento (e-mail) sono mantenuti in un database SQLite che è anche incluso nella stessa cartella ('test.db') L'unica libreria esterna di cui hai bisogno sono i collegamenti Python a sqlite (pysqlite); è necessario anche lo stesso sqlite se non lo si è già installato).

+1

Posso anche aggiungere una spina per il libro di Toby, che è eccellente. Se stai usando il suo codice sorgente, potrebbe essere utile supportarlo! Ancora più importante, questo file mostra che un sistema Naive Bayes, se si rimuove tutta la gestione SQL, è lungo solo poche righe. Se stai cercando uno piccolo, potresti semplicemente crearne uno tuo. Le funzioni significative sono solo 'fprob' e' weightedprob' e 'naivebayes.classify' – Ian

+0

Ho trovato il codice sorgente in Programming Collective Intelligence terribile (probabilmente perché è stato scritto in una versione vecchia e brutta di Python). Nonostante il brutto codice, consiglio vivamente il libro per un'introduzione all'apprendimento automatico. – Buttons840

+1

Il link per il download è rotto. Qualcuno conosce il nuovo link? – krasnaya

24

Il scikit-learn ha un implementation di gaussiana classificatore Bayesiano ingenuo. In generale, l'obiettivo di questa libreria è quello di fornire un buon compromesso tra codice facile da leggere e da utilizzare ed efficienza. Spero che dovrebbe essere una buona libreria per imparare gli algoritmi funzionano.

0

C'è anche SpamBayes, che penso possa essere usato come un ingenuo clasisfier bayesiano generale, anziché solo per spam.

3

Ho trovato Divmod Reverend il classificatore bayesiano Python più semplice e facile da usare.

+0

collegamento interrotto. https: // GitHub.it/MostAwesomeDude/divmod-docs sembra valido – Quamis

+0

Il collegamento funziona ancora per me ... – Cerin

+0

sì, non ha funzionato ieri quando ho provato anche se – Quamis