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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | caef32c1c84b1a5404593c8279f3b4fa9142e92a50a9054de9c39b81ebd7657b |
|
MD5 | 48f2e0df306eb502170130d6c74e62c7 |
|
BLAKE2b-256 | 2f7a540f640593e41c031b35af0123b1d935b54d8dafd5340a059fe80e6c8494 |