Skip to main content

Naive Bayes classifier for embedded systems

Project description

# embayes Bayesian machine learning classifiers for embedded systems. Train in Python, deploy on microcontroller.

## Key features

Embedded-friendly Classifier

  • Portable C99 code

  • No stdlib required

  • No dynamic allocations

  • Integer/fixed-point math only

  • Single header file include

  • Fast, sub-millisecond classification

Convenient Training

  • API-compatible with [scikit-learn](http://scikit-learn.org)

  • Implemented in Python 3

  • C classifier accessible in Python using pybind11

[MIT licensed](./LICENSE.md)

## Status Minimally useful

  • Gaussian Naive Bayes classifier implemented

  • Tested running on ESP8266 and Linux.

  • On ESP8266, 2 classes and 30 features classify in under 0.5ms

## Installing

Install from git

git clone https://github.com/jonnor/embayes python3 setup.py install –user

## Usage

See [examples/cancer.py](./examples/cancer.py) and [embayes.ino](./embayes.ino)

## TODO

0.2

  • Make estimator a wrapper around sklearn.naivebayes.GaussianNB

  • Make estimator work in sklearn pipeline

  • Make pdf approximation configurable as parameter

1.0

  • Support generating inline C code, not needing model coefficients in RAM

  • Support de/serializing coefficients at runtime

  • Support training on microcontroller

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

embayes-0.1.1.tar.gz (4.8 kB view details)

Uploaded Source

File details

Details for the file embayes-0.1.1.tar.gz.

File metadata

  • Download URL: embayes-0.1.1.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for embayes-0.1.1.tar.gz
Algorithm Hash digest
SHA256 caef32c1c84b1a5404593c8279f3b4fa9142e92a50a9054de9c39b81ebd7657b
MD5 48f2e0df306eb502170130d6c74e62c7
BLAKE2b-256 2f7a540f640593e41c031b35af0123b1d935b54d8dafd5340a059fe80e6c8494

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page