v0.1.0 — Now Available

Open-Environmental Massive Online Analysis

A Python library for Utilitarian Online Learning and Streaming Data. Build adaptive machine learning systems that learn continuously from data streams in real-time.

$ pip install openmoa

Why OpenMOA?

Designed for researchers and practitioners working with streaming data and online learning.

Real-time Learning

Process data streams instantly with adaptive algorithms that learn incrementally without storing historical data.

Concept Drift Detection

Automatically detect and adapt to changes in data distribution over time with built-in drift detectors.

Modular Architecture

Combine classifiers, regressors, drift detectors, and evaluators with a clean, extensible API design.

Scikit-learn Compatible

Familiar API patterns that integrate seamlessly with the Python scientific computing ecosystem.

Extensive Algorithms

Hoeffding Trees, Adaptive Random Forest, ADWIN, DDM, and many more state-of-the-art streaming algorithms.

Rich Documentation

Comprehensive tutorials, API references, and real-world examples to get you started quickly.

Quick Start

Get up and running in minutes with this simple example.

example.py
from openmoa.streams import SEAGenerator
from openmoa.classifiers import HoeffdingTree
from openmoa.evaluation import prequential_evaluation

# Create a data stream
stream = SEAGenerator(noise_percentage=0.1)

# Initialize the classifier
classifier = HoeffdingTree()

# Run prequential evaluation
results = prequential_evaluation(
    stream=stream,
    learner=classifier,
    max_instances=10000,
    sample_frequency=1000
)

print(f"Accuracy: {results.accuracy()}")