All Projects → alipsgh → tornado

alipsgh / tornado

Licence: MIT license
The Tornado 🌪️ framework, designed and implemented for adaptive online learning and data stream mining in Python.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to tornado

codes-for-moa
My Java codes for the MOA framework. It includes the implementations of FHDDM, FHDDMS, and MDDMs.
Stars: ✭ 21 (-80.91%)
Mutual labels:  concept-drift, drift-detection, fhddm, mddm
River
🌊 Online machine learning in Python
Stars: ✭ 2,980 (+2609.09%)
Mutual labels:  online-learning, concept-drift, incremental-learning
ML-MCU
Code for IoT Journal paper title 'ML-MCU: A Framework to Train ML Classifiers on MCU-based IoT Edge Devices'
Stars: ✭ 28 (-74.55%)
Mutual labels:  online-learning, incremental-learning
concept-drift
Algorithms for detecting changes from a data stream.
Stars: ✭ 95 (-13.64%)
Mutual labels:  adwin, concept-drift
Train plus plus
Repo and code of the IEEE UIC paper: Train++: An Incremental ML Model Training Algorithm to Create Self-Learning IoT Devices
Stars: ✭ 17 (-84.55%)
Mutual labels:  online-learning, incremental-learning
dana
DANA: Dimension-Adaptive Neural Architecture (UbiComp'21)( ACM IMWUT)
Stars: ✭ 28 (-74.55%)
Mutual labels:  adaptive-learning
Awesome Bigdata
A curated list of awesome big data frameworks, ressources and other awesomeness.
Stars: ✭ 10,478 (+9425.45%)
Mutual labels:  data-stream
Shallowlearn
An experiment about re-implementing supervised learning models based on shallow neural network approaches (e.g. fastText) with some additional exclusive features and nice API. Written in Python and fully compatible with Scikit-learn.
Stars: ✭ 196 (+78.18%)
Mutual labels:  online-learning
Nmflibrary
MATLAB library for non-negative matrix factorization (NMF): Version 1.8.1
Stars: ✭ 153 (+39.09%)
Mutual labels:  online-learning
wluma
Automatic brightness adjustment based on screen contents and ALS
Stars: ✭ 290 (+163.64%)
Mutual labels:  adaptive-learning
richflow
A Node.js and JavaScript synchronous data pipeline processing, data sharing and stream processing library. Actionable & Transformable Pipeline data processing.
Stars: ✭ 17 (-84.55%)
Mutual labels:  data-stream
artml
ARTML- Real time learning
Stars: ✭ 20 (-81.82%)
Mutual labels:  adaptive-learning
Strimzi Kafka Operator
Apache Kafka running on Kubernetes
Stars: ✭ 2,833 (+2475.45%)
Mutual labels:  data-stream
gravity
R package that provides estimation methods for Gravity Models
Stars: ✭ 24 (-78.18%)
Mutual labels:  ddm
sketches
HyperLogLog and other probabilistic data structures for mining in data streams
Stars: ✭ 15 (-86.36%)
Mutual labels:  data-stream
Lycoris
A lightweight and easy-to-use deep learning framework with neural architecture search.
Stars: ✭ 180 (+63.64%)
Mutual labels:  online-learning
awesome-bigdata
A curated list of awesome big data frameworks, ressources and other awesomeness.
Stars: ✭ 11,093 (+9984.55%)
Mutual labels:  data-stream
FACIL
Framework for Analysis of Class-Incremental Learning with 12 state-of-the-art methods and 3 baselines.
Stars: ✭ 411 (+273.64%)
Mutual labels:  incremental-learning
cdc
A library for performing Content-Defined Chunking (CDC) on data streams.
Stars: ✭ 18 (-83.64%)
Mutual labels:  data-stream
analyzing-reddit-sentiment-with-aws
Learn how to use Kinesis Firehose, AWS Glue, S3, and Amazon Athena by streaming and analyzing reddit comments in realtime. 100-200 level tutorial.
Stars: ✭ 40 (-63.64%)
Mutual labels:  data-stream

The Tornado Framework

Language Stars Repo Size

Tornado is a framework for data stream mining, implemented in Python. The framework includes various incremental/online learning algorithms as well as concept drift detection methods.

You must have Python 3.5 or above (either 32-bit or 64-bit) on your system to run the framework without any error. Note that the numpy, scipy, matplotlib, and pympler packages are used in the Tornado implementations. You may use the pip command in order to install these packages, for example:

pip install numpy

Although you can use an installer from https://www.python.org/downloads/ to install Python on your system, I highly recommend Anaconda, one of the Python distributions, since it includes the numpy, scipy, and mathplotlib packages by default. You may download one of the Anaconda's installers from https://www.anaconda.com/download/. Please note that, you still need to install the pympler package for Anaconda. For that, run the following command in a command prompt or a terminal:

conda install -c conda-forge pympler

Once you have all the packages installed, you may run the framework.

Three sample codes are prepared to show how you can use the framework. Those files are:

  • github_prequential_test.py - This file lets you evaluate an adaptive algorithm, i.e. a pair of a learner and a drift detector, prequentially. In this example, Naive Bayes is the learner and Fast Hoeffding Drift Detection Method (FHDDM) is the detector. You find lists of incremental learners in tornado/classifier/ and drift detectors in tornado/drift_detection/. The outputs in the created project directory are similar to:


  • github_prequential_multi_test.py - This file lets you run multiple adaptive algorithms together against a data stream. While algorithms are learning from instances of a data stream, the framework tells you which adaptive algorithm is optimal by considering classification, adaptation, and resource consumption measures. The outputs in the created project directory are similar to:


  • github_generate_stream.py - The file helps you use the Tornado framework for generating synthetic data streams containing concept drifts. You find a list of stream generators in tornado/streams/generators/.

Citation

Please kindly cite the following papers, or thesis, if you plan to use Tornado or any of its components:

  1. Pesaranghader, Ali. "A Reservoir of Adaptive Algorithms for Online Learning from Evolving Data Streams", Ph.D. Dissertation, Université d'Ottawa/University of Ottawa, 2018.
    DOI: http://dx.doi.org/10.20381/ruor-22444
  2. Pesaranghader, Ali, et al. "Reservoir of Diverse Adaptive Learners and Stacking Fast Hoeffding Drift Detection Methods for Evolving Data Streams", Machine Learning Journal, 2018.
    Pre-print available at: https://arxiv.org/abs/1709.02457, DOI: https://doi.org/10.1007/s10994-018-5719-z
  3. Pesaranghader, Ali, et al. "A framework for classification in data streams using multi-strategy learning", International Conference on Discovery Science, 2016.
    Pre-print available at: http://iwera.ir/~ali/papers/ds2016.pdf, DOI: https://doi.org/10.1007/978-3-319-46307-0_22


Ali Pesaranghader © 2020++ | MIT License

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].