adaptive-machine-learning / CapyMOA

Enhanced machine learning library tailored for data streams, featuring a Python API integrated with MOA backend support. This unique combination empowers users to leverage a wide array of existing algorithms efficiently while fostering the development of new methodologies in both Python and Java.
BSD 3-Clause "New" or "Revised" License
63 stars 22 forks source link

CapyMOA

Banner Image

PyPi Version Join the Discord Documentation GitHub

Machine learning library tailored for data streams. Featuring a Python API tightly integrated with MOA (Stream Learners), PyTorch (Neural Networks), and scikit-learn (Machine Learning). CapyMOA provides a fast python interface to leverage the state-of-the-art algorithms in the field of data streams.

To setup CapyMOA, simply install it via pip. If you have any issues with the installation (like not having Java installed) or if you want GPU support, please refer to the installation guide. Once installed take a look at the tutorials to get started.

# CapyMOA requires Java. This checks if you have it installed
java -version

# CapyMOA requires PyTorch. This installs the CPU version
pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu

# Install CapyMOA and its dependencies
pip install capymoa

# Check that the install worked
python -c "import capymoa; print(capymoa.__version__)"

⚠️ WARNING

CapyMOA is still in the early stages of development. The API is subject to change until version 1.0.0. If you encounter any issues, please report them in GitHub Issues or talk to us on Discord.


Benchmark Image Benchmark comparing CapyMOA against other data stream libraries. The benchmark was performed using an ensemble of 100 ARF learners trained on capymoa.datasets.RTG_2abrupt dataset containing 100,000 samples and 30 features. You can find the code to reproduce this benchmark in notebooks/benchmarking.py. CapyMOA has the speed of MOA with the flexibility of Python and the richness of Python's data science ecosystem.