{"id":13408734,"url":"https://github.com/online-ml/awesome-online-machine-learning","last_synced_at":"2025-05-04T06:33:48.121Z","repository":{"id":40313564,"uuid":"204671402","full_name":"online-ml/awesome-online-machine-learning","owner":"online-ml","description":":bookmark_tabs: Online machine learning resources","archived":false,"fork":false,"pushed_at":"2023-12-16T19:03:08.000Z","size":101,"stargazers_count":457,"open_issues_count":1,"forks_count":49,"subscribers_count":20,"default_branch":"master","last_synced_at":"2024-05-23T05:28:58.903Z","etag":null,"topics":["awesome","awesome-list","machine-learning","online-machine-learning"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/online-ml.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-08-27T09:44:51.000Z","updated_at":"2024-05-20T16:20:32.000Z","dependencies_parsed_at":"2023-12-16T20:21:59.542Z","dependency_job_id":"1bd944a3-af3a-49e8-8156-35723a6499e9","html_url":"https://github.com/online-ml/awesome-online-machine-learning","commit_stats":null,"previous_names":["maxhalford/awesome-online-machine-learning"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/online-ml%2Fawesome-online-machine-learning","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/online-ml%2Fawesome-online-machine-learning/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/online-ml%2Fawesome-online-machine-learning/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/online-ml%2Fawesome-online-machine-learning/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/online-ml","download_url":"https://codeload.github.com/online-ml/awesome-online-machine-learning/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221472644,"owners_count":16828243,"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":["awesome","awesome-list","machine-learning","online-machine-learning"],"created_at":"2024-07-30T20:00:54.884Z","updated_at":"2024-11-13T04:21:03.395Z","avatar_url":"https://github.com/online-ml.png","language":null,"funding_links":[],"categories":["Machine Learning (ML) and Data Mining (DM)","Other Lists","ML Sub-fields"],"sub_categories":["TeX Lists"],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003ch1\u003eAwesome Online Machine Learning\u003c/h1\u003e\n    \u003ca href=\"https://github.com/sindresorhus/awesome\"\u003e\u003cimg src=\"https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg\"/\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n[Online machine learning](https://www.wikiwand.com/en/Online_machine_learning) is a subset of machine learning where data arrives sequentially. In contrast to the more traditional batch learning, online learning methods update themselves incrementally with one data point at a time.\n\n- [Courses and books](#courses-and-books)\n- [Blog posts](#blog-posts)\n- [Software](#software)\n  - [Modelling](#modelling)\n  - [Deployment](#deployment)\n- [Papers](#papers)\n  - [Linear models](#linear-models)\n  - [Support vector machines](#support-vector-machines)\n  - [Neural networks](#neural-networks)\n  - [Decision trees](#decision-trees)\n  - [Unsupervised learning](#unsupervised-learning)\n  - [Time series](#time-series)\n  - [Drift detection](#drift-detection)\n  - [Anomaly detection](#anomaly-detection)\n  - [Metric learning](#metric-learning)\n  - [Graph theory](#graph-theory)\n  - [Ensemble models](#ensemble-models)\n  - [Expert learning](#expert-learning)\n  - [Active learning](#active-learning)\n  - [Miscellaneous](#miscellaneous)\n  - [Surveys](#surveys)\n  - [General-purpose algorithms](#general-purpose-algorithms)\n  - [Hyperparameter tuning](#hyperparameter-tuning)\n  - [Evaluation](#evaluation)\n\n## Courses and books\n\n- [Machine Learning for Streaming Data with Python](https://github.com/PacktPublishing/Machine-Learning-for-Streaming-Data-with-Python)\n- [IE 498: Online Learning and Decision Making](https://yuanz.web.illinois.edu/teaching/IE498fa19/)\n- [Introduction to Online Learning](https://parameterfree.com/lecture-notes-on-online-learning/)\n- [Machine Learning the Feature](http://www.hunch.net/~mltf/) — Gives some insights into the inner workings of Vowpal Wabbit, especially the [slides on online linear learning](http://www.hunch.net/~mltf/online_linear.pdf).\n- [Machine learning for data streams with practical examples in MOA](https://www.cms.waikato.ac.nz/~abifet/book/contents.html)\n- [Online Methods in Machine Learning (MIT)](http://www.mit.edu/~rakhlin/6.883/)\n- [Streaming 101: The world beyond batch](https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-101)\n- [Prediction, Learning, and Games](http://www.ii.uni.wroc.pl/~lukstafi/pmwiki/uploads/AGT/Prediction_Learning_and_Games.pdf)\n- [Introduction to Online Convex Optimization](https://ocobook.cs.princeton.edu/OCObook.pdf)\n- [Reinforcement Learning and Stochastic Optimization: A unified framework for sequential decisions](https://castlelab.princeton.edu/RLSO/) — The entire book builds upon Online Learning paradigm in applied learning/optimization problems, *Chapter 3  Online learning* being the reference.\n- [Big Data course at the CILVR lab at NYU](https://cilvr.cs.nyu.edu/doku.php?id=courses:bigdata:slides:start) — Focus on linear models and bandits. Some courses are given by John Langford, the creator of Vowpal Wabbit.\n- [Machine Learning for Personalization](http://www.cs.columbia.edu/~jebara/6998/) — Course from Columbia by Tony Jebara, covers bandits.\n- [An Introduction to Online Learning](http://chercheurs.lille.inria.fr/~lazaric/Webpage/Home/Entries/2012/1/31_Course_on_%22Advanced_topics_of_machine_learning_theory_and_online_learning%22_files/poli-online.pdf)\n- [Streaming Data Analytics](https://github.com/emanueledellavalle/streaming-data-analytics) - Course from Politecnico di Milano.\n\n## Blog posts\n\n- [Fennel AI blog posts about online recsys](https://fennel.ai/blog)\n- [Anomaly Detection with Bytewax \u0026 Redpanda (Bytewax, 2022)](https://www.bytewax.io/blog/anomaly-detection-bw-rpk/)\n- [The online machine learning predict/fit switcheroo (Max Halford, 2022)](https://maxhalford.github.io/blog/predict-fit-switcheroo/)\n- [Real-time machine learning: challenges and solutions (Chip Huyen, 2022)](https://huyenchip.com/2022/01/02/real-time-machine-learning-challenges-and-solutions.html)\n- [Anomalies detection using River (Matias Aravena Gamboa, 2021)](https://medium.com/spikelab/anomalies-detection-using-river-398544d3536)\n- [Introdução (não-extensiva) a Online Machine Learning (Saulo Mastelini, 2021)](https://medium.com/@saulomastelini/introdu%C3%A7%C3%A3o-a-online-machine-learning-874bd6b7c3c8)\n- [Machine learning is going real-time (Chip Huyen, 2020)](https://huyenchip.com/2020/12/27/real-time-machine-learning.html)\n- [The correct way to evaluate online machine learning models (Max Halford, 2020)](https://maxhalford.github.io/blog/online-learning-evaluation/)\n- [What is online machine learning? (Max Pagels, 2018)](https://medium.com/value-stream-design/online-machine-learning-515556ff72c5)\n- [What Is It and Who Needs It (Data Science Central, 2015)](https://www.datasciencecentral.com/profiles/blogs/stream-processing-what-is-it-and-who-needs-it)\n\n## Software\n\nSee more [here](https://github.com/stars/MaxHalford/lists/online-learning).\n\n### Modelling\n\n- [River](https://github.com/creme-ml/creme/) — A Python library for general purpose online machine learning.\n- [dask](https://ml.dask.org/incremental.html)\n- [Jubatus](http://jubat.us/en/index.html)\n- [Flink ML](https://nightlies.apache.org/flink/flink-ml-docs-stable/) - Apache Flink machine learning library\n- [LIBFFM](https://www.csie.ntu.edu.tw/~cjlin/libffm/) — A Library for Field-aware Factorization Machines\n- [LIBLINEAR](https://www.csie.ntu.edu.tw/~cjlin/liblinear/) — A Library for Large Linear Classification\n- [LIBOL](https://github.com/LIBOL) — A collection of online linear models trained with first and second order gradient descent methods. Not maintained.\n- [MOA](https://moa.cms.waikato.ac.nz/documentation/)\n- [scikit-learn](https://scikit-learn.org/stable/) — [Some](https://scikit-learn.org/stable/computing/scaling_strategies.html#incremental-learning) of scikit-learn's estimators can handle incremental updates, although this is usually intended for mini-batch learning. See also the [\"Computing with scikit-learn\"](https://scikit-learn.org/stable/computing.html) page.\n- [Spark Streaming](https://spark.apache.org/docs/latest/streaming-programming-guide.html) — Doesn't do online learning per say, but instead mini-batches the data into fixed intervals of time.\n- [SofiaML](https://code.google.com/archive/p/sofia-ml/)\n- [StreamDM](https://github.com/huawei-noah/streamDM) — A machine learning library on top of Spark Streaming.\n- [Tornado](https://github.com/alipsgh/tornado)\n- [VFML](http://www.cs.washington.edu/dm/vfml/)\n- [Vowpal Wabbit](https://github.com/VowpalWabbit/vowpal_wabbit)\n\n### Deployment\n\n- [KappaML](https://www.kappaml.com/)\n- [django-river-ml](https://github.com/vsoch/django-river-ml) — a Django plugin for deploying River models\n- [chantilly](https://github.com/online-ml/chantilly) — a prototype meant to be compatible with River (previously Creme)\n\n## Papers\n\n### Linear models\n\n- [Field-aware Factorization Machines for CTR Prediction (2016)](https://www.csie.ntu.edu.tw/~cjlin/papers/ffm.pdf)\n- [Practical Lessons from Predicting Clicks on Ads at Facebook (2014)](https://research.fb.com/wp-content/uploads/2016/11/practical-lessons-from-predicting-clicks-on-ads-at-facebook.pdf)\n- [Ad Click Prediction: a View from the Trenches (2013)](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/41159.pdf)\n- [Normalized online learning (2013)](https://arxiv.org/abs/1305.6646)\n- [Towards Optimal One Pass Large Scale Learning with Averaged Stochastic Gradient Descent (2011)](https://arxiv.org/abs/1107.2490)\n- [Dual Averaging Methods for Regularized Stochastic Learning andOnline Optimization (2010)](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/xiao10JMLR.pdf)\n- [Adaptive Regularization of Weight Vectors (2009)](https://papers.nips.cc/paper/3848-adaptive-regularization-of-weight-vectors.pdf)\n- [Stochastic Gradient Descent Training forL1-regularized Log-linear Models with Cumulative Penalty (2009)](https://www.aclweb.org/anthology/P09-1054)\n- [Confidence-Weighted Linear Classification (2008)](https://www.cs.jhu.edu/~mdredze/publications/icml_variance.pdf)\n- [Exact Convex Confidence-Weighted Learning (2008)](https://www.cs.jhu.edu/~mdredze/publications/cw_nips_08.pdf)\n- [Online Passive-Aggressive Algorithms (2006)](http://jmlr.csail.mit.edu/papers/volume7/crammer06a/crammer06a.pdf)\n- [Logarithmic Regret Algorithms forOnline Convex Optimization (2007)](https://www.cs.princeton.edu/~ehazan/papers/log-journal.pdf)\n- [A Second-Order Perceptron Algorithm (2005)](http://www.datascienceassn.org/sites/default/files/Second-order%20Perception%20Algorithm.pdf)\n- [Online Learning with Kernels (2004)](https://alex.smola.org/papers/2004/KivSmoWil04.pdf)\n- [Solving Large Scale Linear Prediction Problems Using Stochastic Gradient Descent Algorithms (2004)](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.58.7377)\n\n### Support vector machines\n\n- [Pegasos: Primal Estimated sub-GrAdient SOlver for SVM (2007)](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.74.8513)\n- [A New Approximate Maximal Margin Classification Algorithm (2001)](http://www.jmlr.org/papers/volume2/gentile01a/gentile01a.pdf)\n- [The Relaxed Online Maximum Margin Algorithm (2000)](https://papers.nips.cc/paper/1727-the-relaxed-online-maximum-margin-algorithm.pdf)\n\n### Neural networks\n\n- [Three scenarios for continual learning (2019)](https://arxiv.org/pdf/1904.07734.pdf)\n\n### Decision trees\n\n- [AMF: Aggregated Mondrian Forests for Online Learning (2019)](https://arxiv.org/abs/1906.10529)\n- [Mondrian Forests: Efficient Online Random Forests (2014)](https://arxiv.org/abs/1406.2673)\n- [Mining High-Speed Data Streams (2000)](https://homes.cs.washington.edu/~pedrod/papers/kdd00.pdf)\n\n### Unsupervised learning\n\n- [Online Clustering: Algorithms, Evaluation, Metrics, Applications and Benchmarking (2022)](https://dl.acm.org/doi/pdf/10.1145/3534678.3542600)\n- [Online hierarchical clustering approximations (2019)](https://arxiv.org/pdf/1909.09667.pdf)\n- [DeepWalk: Online Learning of Social Representations (2014)](https://arxiv.org/pdf/1403.6652.pdf)\n- [Online Learning with Random Representations (2014)](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.2742\u0026rep=rep1\u0026type=pdf)\n- [Online Latent Dirichlet Allocation with Infinite Vocabulary (2013)](http://proceedings.mlr.press/v28/zhai13.pdf)\n- [Web-Scale K-Means Clustering (2010)](https://www.eecs.tufts.edu/~dsculley/papers/fastkmeans.pdf)\n- [Online Dictionary Learning For Sparse Coding (2009)](https://www.di.ens.fr/sierra/pdfs/icml09.pdf)\n- [Density-Based Clustering over an Evolving Data Stream with Noise (2006)](https://archive.siam.org/meetings/sdm06/proceedings/030caof.pdf)\n- [Knowledge Acquisition Via Incremental Conceptual Clustering (2004)](http://www.inf.ufrgs.br/~engel/data/media/file/Aprendizagem/Cobweb.pdf)\n- [Online and Batch Learning of Pseudo-Metrics (2004)](https://ai.stanford.edu/~ang/papers/icml04-onlinemetric.pdf)\n- [BIRCH: an efficient data clustering method for very large databases (1996)](https://www2.cs.sfu.ca/CourseCentral/459/han/papers/zhang96.pdf)\n\n### Time series\n\n- [Online Learning for Time Series Prediction (2013)](https://arxiv.org/pdf/1302.6927.pdf)\n\n### Drift detection\n\n- [A Survey on Concept Drift Adaptation (2014)](http://eprints.bournemouth.ac.uk/22491/1/ACM%20computing%20surveys.pdf)\n\n### Anomaly detection\n\n- [Leveraging the Christoffel-Darboux Kernel for Online Outlier Detection (2022)](https://hal.laas.fr/hal-03562614/document)\n- [Interpretable Anomaly Detection with Mondrian Pólya Forests on Data Streams (2020)](https://arxiv.org/pdf/2008.01505.pdf)\n- [Fast Anomaly Detection for Streaming Data (2011)](https://www.ijcai.org/Proceedings/11/Papers/254.pdf)\n\n### Metric learning\n\n- [Online Metric Learning and Fast Similarity Search (2009)](http://people.bu.edu/bkulis/pubs/nips_online.pdf)\n- [Information-Theoretic Metric Learning (2007)](http://www.cs.utexas.edu/users/pjain/pubs/metriclearning_icml.pdf)\n- [Online and Batch Learning of Pseudo-Metrics (2004)](https://ai.stanford.edu/~ang/papers/icml04-onlinemetric.pdf)\n\n### Graph theory\n\n- [DeepWalk: Online Learning of Social Representations (2014)](http://www.cs.cornell.edu/courses/cs6241/2019sp/readings/Perozzi-2014-DeepWalk.pdf)\n\n### Ensemble models\n\n- [Optimal and Adaptive Algorithms for Online Boosting (2015)](http://proceedings.mlr.press/v37/beygelzimer15.pdf) — An implementation is available [here](https://github.com/VowpalWabbit/vowpal_wabbit/blob/master/vowpalwabbit/boosting.cc)\n- [Online Bagging and Boosting (2001)](https://ti.arc.nasa.gov/m/profile/oza/files/ozru01a.pdf)\n- [A Decision-Theoretic Generalization of On-Line Learning and an Application to Boosting (1997)](http://www.face-rec.org/algorithms/Boosting-Ensemble/decision-theoretic_generalization.pdf)\n\n### Expert learning\n\n- [On the optimality of the Hedge algorithm in the stochastic regime](https://arxiv.org/pdf/1809.01382.pdf)\n\n### Active learning\n\n- [A survey on online active learning (2023)](https://arxiv.org/ftp/arxiv/papers/2302/2302.08893.pdf)\n\n### Miscellaneous\n\n- [Multi-Output Chain Models and their Application in Data Streams (2019)](https://jmread.github.io/talks/2019_03_08-Imperial_Stats_Seminar.pdf)\n- [A Complete Recipe for Stochastic Gradient MCMC (2015)](https://arxiv.org/abs/1506.04696)\n- [Online EM Algorithm for Latent Data Models (2007)](https://arxiv.org/abs/0712.4273) — Source code is available [here](https://www.di.ens.fr/~cappe/Code/OnlineEM/)\n- [StreamAI: Dealing with Challenges of Continual Learning Systems for Serving AI in Production (2023)](https://ieeexplore.ieee.org/abstract/document/10172871)\n\n### Surveys\n\n- [Machine learning for streaming data: state of the art, challenges, and opportunities (2019)](https://www.kdd.org/exploration_files/3._CR_7._Machine_learning_for_streaming_data_state_of_the_art-Final.pdf)\n- [Online Learning: A Comprehensive Survey (2018)](https://arxiv.org/abs/1802.02871)\n- [Online Machine Learning in Big Data Streams (2018)](https://arxiv.org/abs/1802.05872v1)\n- [Incremental learning algorithms and applications (2016)](https://www.elen.ucl.ac.be/Proceedings/esann/esannpdf/es2016-19.pdf)\n- [Batch-Incremental versus Instance-Incremental Learning in Dynamic and Evolving Data](http://albertbifet.com/wp-content/uploads/2013/10/IDA2012.pdf)\n- [Incremental Gradient, Subgradient, and Proximal Methods for Convex Optimization: A Survey (2011)](https://arxiv.org/abs/1507.01030)\n- [Online Learning and Stochastic Approximations (1998)](https://leon.bottou.org/publications/pdf/online-1998.pdf)\n\n### General-purpose algorithms\n\n- [Maintaining Sliding Window Skylines on Data Streams (2006)](http://www.cs.ust.hk/~dimitris/PAPERS/TKDE06-Sky.pdf)\n- [The Sliding DFT (2003)](https://pdfs.semanticscholar.org/525f/b581f9afe17b6ec21d6cb58ed42d1100943f.pdf) — An online variant of the Fourier Transform, a concise explanation is available [here](https://www.comm.utoronto.ca/~dimitris/ece431/slidingdft.pdf)\n- [Sketching Algorithms for Big Data](https://www.sketchingbigdata.org/)\n\n### Hyperparameter tuning\n\n- [ChaCha for Online AutoML (2021)](https://arxiv.org/pdf/2106.04815.pdf)\n\n### Evaluation\n\n- [Delayed labelling evaluation for data streams (2019)](https://link.springer.com/article/10.1007/s10618-019-00654-y)\n- [Efficient Online Evaluation of Big Data Stream Classifiers (2015)](https://dl.acm.org/doi/pdf/10.1145/2783258.2783372)\n- [Issues in Evaluation of Stream Learning Algorithms (2009)](https://dl.acm.org/doi/pdf/10.1145/1557019.1557060)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonline-ml%2Fawesome-online-machine-learning","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fonline-ml%2Fawesome-online-machine-learning","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonline-ml%2Fawesome-online-machine-learning/lists"}