Skip to content

lytics/multibayes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3457a55 · Nov 8, 2016

History

59 Commits
Nov 17, 2014
Aug 19, 2016
Aug 19, 2016
Aug 19, 2016
Nov 18, 2014
Dec 12, 2014
Nov 18, 2014
Aug 19, 2016
Jan 2, 2015
Nov 18, 2014
Nov 18, 2014
Nov 18, 2014
Nov 8, 2016
Nov 18, 2014

Repository files navigation

Multibayes

Build Status GoDoc

Multiclass naive Bayesian document classification.

Often in document classification, a document may have more than one relevant classification -- a question on stackoverflow might have tags "go", "map", and "interface".

While multinomial Bayesian classification offers a one-of-many classification, multibayes offers tools for many-of-many classification. The multibayes library strives to offer efficient storage and calculation of multiple Bayesian posterior classification probabilities.

Usage

A new classifier is created with the NewClassifier function, and can be trained by adding documents and classes by calling the Add method:

classifier.Add("A new document", []string{"class1", "class2"})

Posterior probabilities for a new document are calculated by calling the Posterior method:

classifier.Posterior("Another new document")

A posterior class probability is returned for each class observed in the training set, which the user can use to determine class assignment. A user can then assign classifications according to his or her own heuristics -- for example, by using all classes that yield a posterior probability greater than 0.8

Example

documents := []struct {
	Text    string
	Classes []string
}{
	{
		Text:    "My dog has fleas.",
		Classes: []string{"vet"},
	},
	{
		Text:    "My cat has ebola.",
		Classes: []string{"vet", "cdc"},
	},
	{
		Text:    "Aaron has ebola.",
		Classes: []string{"cdc"},
	},
}

classifier := NewClassifier()
classifier.MinClassSize = 0

// train the classifier
for _, document := range documents {
	classifier.Add(document.Text, document.Classes)
}

// predict new classes
probs := classifier.Posterior("Aaron's dog has fleas.")
fmt.Printf("Posterior Probabilities: %+v\n", probs)

// Posterior Probabilities: map[vet:0.8571 cdc:0.2727]

About

Multiclass Naive Bayesian Classification

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages