# bayesian

Naive Bayesian Classification for Golang.

## Naive Bayesian Classification

Perform naive Bayesian classification into an arbitrary number of classes on sets of strings.

Copyright © 2011. Jake Brukhman. ([email protected]). All rights reserved. See the LICENSE file for BSD-style license.

### Background

See code comments for a refresher on naive Bayesian classifiers.

### Installation

Using the go command:

``````\$ go get github.com/jbrukh/bayesian
\$ go install !\$
``````

### Documentation

See the GoPkgDoc documentation here.

### Features

• Conditional probability and “log-likelihood”-like scoring.
• Underflow detection.
• Simple persistence of classifiers.
• Statistics.

### Example

To use the classifier, first you must create some classes and train it:

``````import . "bayesian"

const (
Good Class = "Good"
Bad Class = "Bad"
)

classifier := NewClassifier(Good, Bad)
goodStuff := []string{"tall", "rich", "handsome"}
badStuff  := []string{"poor", "smelly", "ugly"}
classifier.Learn(goodStuff, Good)
classifier.Learn(badStuff,  Bad)
``````

Then you can ascertain the scores of each class and the most likely class your data belongs to:

``````scores, likely, _ := classifier.LogScores(
[]string{"tall", "girl"}
)
``````

Magnitude of the score indicates likelihood. Alternatively (but with some risk of float underflow), you can obtain actual probabilities:

``````probs, likely, _ := classifier.ProbScores(
[]string{"tall", "girl"}
)
``````

Use wisely.

### Related Repositories

#### Probabilistic-Programming-and-Bayesian-Methods-for-Hackers

aka "Bayesian Methods for Hackers": An introduction to Bayesian methods + probabilistic programming with a computation/understanding-first, mathematics-second point of view. All in pure Python ;) ...

#### Bayesian-Modelling-in-Python

A python tutorial on bayesian modeling techniques (PyMC3) ...

#### bayesian-belief-networks

Pythonic Bayesian Belief Network Package, supporting creation of and exact inference on Bayesian Belief Networks specified as pure python functions. ...

#### bayesian

Naive Bayesian Classification for Golang. ...

#### Joint-Bayesian

Face verify using Joint Bayesian, implemented by Python ...