{"id":13473677,"url":"https://github.com/scikit-multiflow/scikit-multiflow","last_synced_at":"2025-05-15T10:03:48.059Z","repository":{"id":40960867,"uuid":"110717885","full_name":"scikit-multiflow/scikit-multiflow","owner":"scikit-multiflow","description":"A machine learning package for streaming data in Python. The other ancestor of River.","archived":false,"fork":false,"pushed_at":"2023-11-02T11:31:56.000Z","size":63885,"stargazers_count":777,"open_issues_count":72,"forks_count":188,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-05-15T04:11:17.326Z","etag":null,"topics":["machine-learning","meka","moa","scikit","scikit-learn","stream","streaming-data"],"latest_commit_sha":null,"homepage":"https://scikit-multiflow.github.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scikit-multiflow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md"}},"created_at":"2017-11-14T16:46:58.000Z","updated_at":"2025-05-14T08:40:46.000Z","dependencies_parsed_at":"2022-08-10T01:29:22.829Z","dependency_job_id":"d8ba348e-11ea-42c3-b37e-b859b3f57bc5","html_url":"https://github.com/scikit-multiflow/scikit-multiflow","commit_stats":{"total_commits":995,"total_committers":40,"mean_commits":24.875,"dds":0.4653266331658291,"last_synced_commit":"d073a706b5006cba2584761286b7fa17e74e87be"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scikit-multiflow%2Fscikit-multiflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scikit-multiflow%2Fscikit-multiflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scikit-multiflow%2Fscikit-multiflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scikit-multiflow%2Fscikit-multiflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scikit-multiflow","download_url":"https://codeload.github.com/scikit-multiflow/scikit-multiflow/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254319716,"owners_count":22051072,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["machine-learning","meka","moa","scikit","scikit-learn","stream","streaming-data"],"created_at":"2024-07-31T16:01:05.904Z","updated_at":"2025-05-15T10:03:43.032Z","avatar_url":"https://github.com/scikit-multiflow.png","language":"Python","readme":"\u003cimg src=\"https://raw.githubusercontent.com/scikit-multiflow/scikit-multiflow/master/docs/_static/images/skmultiflow-logo-wide.png\" height=\"100\"/\u003e\n\n[![Build status](https://travis-ci.org/scikit-multiflow/scikit-multiflow.svg?branch=master)](https://travis-ci.org/scikit-multiflow/scikit-multiflow)\n[![Build Status](https://dev.azure.com/scikit-multiflow/scikit-multiflow/_apis/build/status/scikit-multiflow.scikit-multiflow?branchName=master)](https://dev.azure.com/scikit-multiflow/scikit-multiflow/_build/latest?definitionId=1\u0026branchName=master)\n[![codecov](https://codecov.io/gh/scikit-multiflow/scikit-multiflow/branch/master/graph/badge.svg)](https://codecov.io/gh/scikit-multiflow/scikit-multiflow)\n![Python version](https://img.shields.io/badge/python-3.5%20%7C%203.6%20%7C%203.7%20%7C%203.8-blue.svg)\n[![Anaconda-Server Badge](https://anaconda.org/conda-forge/scikit-multiflow/badges/platforms.svg)](https://anaconda.org/conda-forge/scikit-multiflow)\n[![PyPI version](https://badge.fury.io/py/scikit-multiflow.svg)](https://badge.fury.io/py/scikit-multiflow)\n[![Anaconda-Server Badge](https://anaconda.org/conda-forge/scikit-multiflow/badges/version.svg)](https://anaconda.org/conda-forge/scikit-multiflow)\n[![DockerHub](https://img.shields.io/badge/docker-available-blue.svg?logo=docker)](https://hub.docker.com/r/skmultiflow/scikit-multiflow)\n[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)\n[![Gitter](https://badges.gitter.im/scikit-multiflow/community.svg)](https://gitter.im/scikit-multiflow/community?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge)\n\n`scikit-multiflow` is a machine learning package for streaming data in Python.\n\n---\n\n[creme](https://MaxHalford.github.io/) and [scikit-multiflow](https://scikit-multiflow.github.io/) are merging into a new project called [River](https://github.com/online-ml/river/).\n\nWe 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.\n\nBoth 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.\n\nWe 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.\n\nYou will still be able to install and use `creme` as well as `scikit-multiflow`. Both projects will remain on PyPI, conda-forge and GitHub.\n\n---\n\n### Quick links\n* [Webpage](https://scikit-multiflow.github.io/)\n* [Documentation](https://scikit-multiflow.readthedocs.io/en/stable/)\n* [Community](https://scikit-multiflow.github.io/community/)\n\n# Features\n\n### Incremental Learning\nStream learning models are created incrementally and are updated continuously. They are suitable\nfor big data applications where real-time response is vital.\n\n### Adaptive learning\nChanges in data distribution harm learning. Adaptive methods are specifically designed to be\nrobust to concept drift changes in dynamic environments.\n\n### Resource-wise efficient\nStreaming techniques efficiently handle resources such as memory and processing time given the\nunbounded nature of data streams. \n\n### Easy to use\nscikit-multiflow is designed for users with any experience level. Experiments are easy to design,\nsetup, and run. Existing methods are easy to modify and extend.\n\n### Stream learning tools\nIn its current state, scikit-multiflow contains data generators, multi-output/multi-target stream\nlearning methods, change detection methods, evaluation methods, and more.\n\n### Open source\nDistributed under the \n[BSD 3-Clause](https://github.com/scikit-multiflow/scikit-multiflow/blob/master/LICENSE), \n`scikit-multiflow` is developed and maintained by an active, diverse and growing [community](/community).\n\n# Use cases\nThe following tasks are supported in `scikit-multiflow`:\n\n### Supervised learning\nWhen working with labeled data. Depending on the target type can be either classification\n(discrete values) or regression (continuous values)\n\n### Single/multi output\nSingle-output methods predict a single target-label (binary or multi-class) for classification or\na single target-value for regression. Multi-output methods simultaneously predict multiple\nvariables given an input.\n\n### Concept drift detection\nChanges in data distribution can harm learning. Drift detection methods are designed to rise an\nalarm in the presence of drift and are used alongside learning methods to improve their robustness\nagainst this phenomenon in evolving data streams.\n\n### Unsupervised learning\nWhen working with unlabeled data. For example, anomaly detection where the goal is the\nidentification of rare events or samples which differ significantly from the majority of the data.\n\n---\n\n#### Jupyter Notebooks\nIn order to display plots from `scikit-multiflow` within a [Jupyter Notebook]() we need to define\nthe proper mathplotlib backend to use. This is done by including the following magic command at the\nbeginning of the Notebook:\n\n```python\n%matplotlib notebook\n```\n\n[JupyterLab](http://jupyterlab.readthedocs.io/en/stable/) is the next-generation user interface\nfor Jupyter, currently in beta, it can display interactive plots with some caveats. If you use\nJupyterLab then the current solution is to use the \n[jupyter-matplotlib](https://github.com/matplotlib/jupyter-matplotlib) extension:\n\n```python\n%matplotlib widget\n```\n\n## Citing `scikit-multiflow`\n\nIf `scikit-multiflow` has been useful for your research and you would like to cite it in a academic\npublication, please use the following Bibtex entry:\n\n```bibtex\n@article{skmultiflow,\n  author  = {Jacob Montiel and Jesse Read and Albert Bifet and Talel Abdessalem},\n  title   = {Scikit-Multiflow: A Multi-output Streaming Framework },\n  journal = {Journal of Machine Learning Research},\n  year    = {2018},\n  volume  = {19},\n  number  = {72},\n  pages   = {1-5},\n  url     = {http://jmlr.org/papers/v19/18-251.html}\n}\n```\n","funding_links":[],"categories":["Python"],"sub_categories":["General-Purpose Machine Learning"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscikit-multiflow%2Fscikit-multiflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscikit-multiflow%2Fscikit-multiflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscikit-multiflow%2Fscikit-multiflow/lists"}