All Projects → scikit-multiflow → Scikit Multiflow

scikit-multiflow / Scikit Multiflow

Licence: bsd-3-clause
A machine learning package for streaming data in Python. The other ancestor of River.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Scikit Multiflow

godsend
A simple and eloquent workflow for streaming messages to micro-services.
Stars: ✭ 15 (-96.91%)
Mutual labels:  stream, streaming-data
Optbinning
Optimal binning: monotonic binning with constraints. Support batch & stream optimal binning
Stars: ✭ 79 (-83.71%)
Mutual labels:  stream, streaming-data
Saber
Window-Based Hybrid CPU/GPU Stream Processing Engine
Stars: ✭ 35 (-92.78%)
Mutual labels:  stream, streaming-data
meros
🪢 A fast utility that makes reading multipart responses simple
Stars: ✭ 109 (-77.53%)
Mutual labels:  stream, streaming-data
Sklearn Doc Zh
📖 [译] scikit-learn(sklearn) 中文文档
Stars: ✭ 4,520 (+831.96%)
Mutual labels:  scikit-learn
Gulp Awspublish
gulp plugin to publish files to amazon s3
Stars: ✭ 398 (-17.94%)
Mutual labels:  stream
Skorch
A scikit-learn compatible neural network library that wraps PyTorch
Stars: ✭ 4,241 (+774.43%)
Mutual labels:  scikit-learn
Foggycam
📹 A tool to locally capture your own Nest camera stream.
Stars: ✭ 391 (-19.38%)
Mutual labels:  stream
Palladium
Framework for setting up predictive analytics services
Stars: ✭ 481 (-0.82%)
Mutual labels:  scikit-learn
Stream
Event-driven readable and writable streams for non-blocking I/O in ReactPHP.
Stars: ✭ 466 (-3.92%)
Mutual labels:  stream
Covertutils
A framework for Backdoor development!
Stars: ✭ 424 (-12.58%)
Mutual labels:  stream
Awesome Kafka
A list about Apache Kafka
Stars: ✭ 397 (-18.14%)
Mutual labels:  streaming-data
Scikit Lego
Extra blocks for scikit-learn pipelines.
Stars: ✭ 445 (-8.25%)
Mutual labels:  scikit-learn
Csv
CSV Decoding and Encoding for Elixir
Stars: ✭ 398 (-17.94%)
Mutual labels:  stream
Best Of Ml Python
🏆 A ranked list of awesome machine learning Python libraries. Updated weekly.
Stars: ✭ 6,057 (+1148.87%)
Mutual labels:  scikit-learn
Kymatio
Wavelet scattering transforms in Python with GPU acceleration
Stars: ✭ 396 (-18.35%)
Mutual labels:  scikit-learn
Vs Streamjsonrpc
The StreamJsonRpc library offers JSON-RPC 2.0 over any .NET Stream, WebSocket, or Pipe. With bonus support for request cancellation, client proxy generation, and more.
Stars: ✭ 421 (-13.2%)
Mutual labels:  stream
Onnxruntime
ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator
Stars: ✭ 5,910 (+1118.56%)
Mutual labels:  scikit-learn
Wonka
🎩 A fast push & pull stream library for Reason, OCaml, and TypeScript
Stars: ✭ 421 (-13.2%)
Mutual labels:  stream
Machinejs
[UNMAINTAINED] Automated machine learning- just give it a data file! Check out the production-ready version of this project at ClimbsRocks/auto_ml
Stars: ✭ 412 (-15.05%)
Mutual labels:  scikit-learn

Build status Build Status codecov Python version Anaconda-Server Badge PyPI version Anaconda-Server Badge DockerHub License Gitter

scikit-multiflow is a machine learning package for streaming data in Python.


creme and scikit-multiflow are merging into a new project called River.

We feel that both projects share the same vision. We believe that pooling our resources instead of duplicating work will benefit both sides. We are also confident that this will benefit both communities. There will be more people working on the new project, which will allow us to distribute work more efficiently. We will thus be able to work on more features and improve the overall quality of the project.

Both projects will stop active development. The code for both projects will remain publicly available, although development will only focus on minor maintenance during a transition period. The architecture of the new package is very similar to that of creme. It will focus on single-instance incremental models.

We encourage users to use River instead of creme. We understand that this transition will require an extra effort in the short term from current users. However, we believe that the result will be better for everyone in the long run.

You will still be able to install and use creme as well as scikit-multiflow. Both projects will remain on PyPI, conda-forge and GitHub.


Quick links

Features

Incremental Learning

Stream learning models are created incrementally and are updated continuously. They are suitable for big data applications where real-time response is vital.

Adaptive learning

Changes in data distribution harm learning. Adaptive methods are specifically designed to be robust to concept drift changes in dynamic environments.

Resource-wise efficient

Streaming techniques efficiently handle resources such as memory and processing time given the unbounded nature of data streams.

Easy to use

scikit-multiflow is designed for users with any experience level. Experiments are easy to design, setup, and run. Existing methods are easy to modify and extend.

Stream learning tools

In its current state, scikit-multiflow contains data generators, multi-output/multi-target stream learning methods, change detection methods, evaluation methods, and more.

Open source

Distributed under the BSD 3-Clause, scikit-multiflow is developed and maintained by an active, diverse and growing community.

Use cases

The following tasks are supported in scikit-multiflow:

Supervised learning

When working with labeled data. Depending on the target type can be either classification (discrete values) or regression (continuous values)

Single/multi output

Single-output methods predict a single target-label (binary or multi-class) for classification or a single target-value for regression. Multi-output methods simultaneously predict multiple variables given an input.

Concept drift detection

Changes in data distribution can harm learning. Drift detection methods are designed to rise an alarm in the presence of drift and are used alongside learning methods to improve their robustness against this phenomenon in evolving data streams.

Unsupervised learning

When working with unlabeled data. For example, anomaly detection where the goal is the identification of rare events or samples which differ significantly from the majority of the data.


Jupyter Notebooks

In order to display plots from scikit-multiflow within a Jupyter Notebook we need to define the proper mathplotlib backend to use. This is done by including the following magic command at the beginning of the Notebook:

%matplotlib notebook

JupyterLab is the next-generation user interface for Jupyter, currently in beta, it can display interactive plots with some caveats. If you use JupyterLab then the current solution is to use the jupyter-matplotlib extension:

%matplotlib widget

Citing scikit-multiflow

If scikit-multiflow has been useful for your research and you would like to cite it in a academic publication, please use the following Bibtex entry:

@article{skmultiflow,
  author  = {Jacob Montiel and Jesse Read and Albert Bifet and Talel Abdessalem},
  title   = {Scikit-Multiflow: A Multi-output Streaming Framework },
  journal = {Journal of Machine Learning Research},
  year    = {2018},
  volume  = {19},
  number  = {72},
  pages   = {1-5},
  url     = {http://jmlr.org/papers/v19/18-251.html}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].