Data stream mining

From HandWiki

Data Stream Mining (also known as stream learning) is the process of extracting knowledge structures from continuous, rapid data records. A data stream is an ordered sequence of instances that in many applications of data stream mining can be read only once or a small number of times using limited computing and storage capabilities.[1] In many data stream mining applications, the goal is to predict the class or value of new instances in the data stream given some knowledge about the class membership or values of previous instances in the data stream.[2] Machine learning techniques can be used to learn this prediction task from labeled examples in an automated fashion. Often, concepts from the field of incremental learning are applied to cope with structural changes, on-line learning and real-time demands. In many applications, especially operating within non-stationary environments, the distribution underlying the instances or the rules underlying their labeling may change over time, i.e. the goal of the prediction, the class to be predicted or the target value to be predicted, may change over time.[3] This problem is referred to as concept drift. Detecting concept drift is a central issue to data stream mining.[4][5] Other challenges[6] that arise when applying machine learning to streaming data include: partially and delayed labeled data,[7][8] recovery from concept drifts,[1] and temporal dependencies.[9]

Examples of data streams include computer network traffic, phone conversations, ATM transactions, web searches, and sensor data. Data stream mining can be considered a subfield of data mining, machine learning, and knowledge discovery.

Software for data stream mining

  • MOA (Massive Online Analysis): free open-source software specific for mining data streams with concept drift developed in Java. It has several machine learning algorithms (classification, regression, clustering, outlier detection and recommender systems). Also, it contains a prequential evaluation method, the EDDM concept drift methods, a reader of ARFF real datasets, and artificial stream generators as SEA concepts, STAGGER, rotating hyperplane, random tree, and random radius based functions. MOA supports bi-directional interaction with Weka (machine learning).[citation needed]
  • scikit-multiflow: A machine learning framework for multi-output/multi-label and stream data implemented in Python.[10] scikit-multiflow contains stream generators, stream learning methods for single-target and multi-target, concept drift detectors, evaluation and visualisation methods. (This software is discontinued)[11]
  • StreamDM: StreamDM is an open source framework for big data stream mining that uses the Spark Streaming[12] extension of the core Spark API. One advantage of StreamDM in comparison to existing frameworks is that it directly benefits from the Spark Streaming API, which handles much of the complex problems of the underlying data sources, such as out of order data and recovery from failures.
  • RapidMiner: commercial software for knowledge discovery, data mining, and machine learning also featuring data stream mining, learning time-varying concepts, and tracking drifting concept (if used in combination with its data stream mining plugin (formerly: Concept Drift plugin))
  • RiverML: River is a Python library for online machine learning. It is the result of a merger between creme and scikit-multiflow. River's ambition is to be the go-to library for doing machine learning on streaming data.[13]
  • GAENARI: C++ incremental decision tree. It continuously executes inserts and updates of chunked data sets. Rebuild support for concept drift issues.

Events

See also

Books

References

  1. 1.0 1.1 Gomes, Heitor M.; Bifet, Albert; Read, Jesse; Barddal, Jean Paul; Enembreck, Fabrício; Pfharinger, Bernhard; Holmes, Geoff; Abdessalem, Talel (2017-10-01). "Adaptive random forests for evolving data stream classification" (in en). Machine Learning 106 (9): 1469–1495. doi:10.1007/s10994-017-5642-8. ISSN 1573-0565. 
  2. Medhat, Mohamed; Zaslavsky; Krishnaswamy (2005-06-01). "Mining data streams" (in EN). ACM SIGMOD Record 34 (2): 18–26. doi:10.1145/1083784.1083789. 
  3. Lemaire, Vincent; Salperwyck, Christophe; Bondu, Alexis (2015), Zimányi, Esteban; Kutsche, Ralf-Detlef, eds., "A Survey on Supervised Classification on Data Streams" (in en), Business Intelligence: 4th European Summer School, eBISS 2014, Berlin, Germany, July 6–11, 2014, Tutorial Lectures, Lecture Notes in Business Information Processing (Springer International Publishing): pp. 88–125, doi:10.1007/978-3-319-17551-5_4, ISBN 978-3-319-17551-5 
  4. Webb, Geoffrey I.; Lee, Loong Kuan; Petitjean, François; Goethals, Bart (2017-04-02). "Understanding Concept Drift". arXiv:1704.00362 [cs.LG].
  5. Gama, João; Žliobaitė; Bifet; Pechenizkiy; Bouchachia (2014-03-01). "A survey on concept drift adaptation" (in EN). ACM Computing Surveys 46 (4): 1–37. doi:10.1145/2523813. http://eprints.bournemouth.ac.uk/22491/1/ACM%20computing%20surveys.pdf. 
  6. Gomes, Heitor Murilo; Read; Bifet; Barddal; Gama (2019-11-26). "Machine learning for streaming data" (in EN). ACM SIGKDD Explorations Newsletter 21 (2): 6–22. doi:10.1145/3373464.3373470. 
  7. Gomes, Heitor Murilo; Grzenda, Maciej; Mello, Rodrigo; Read, Jesse; Le Nguyen, Minh Huong; Bifet, Albert (2022-02-28). "A Survey on Semi-Supervised Learning for Delayed Partially Labelled Data Streams". ACM Computing Surveys 55 (4): 1–42. doi:10.1145/3523055. ISSN 0360-0300. 
  8. Grzenda, Maciej; Gomes, Heitor Murilo; Bifet, Albert (2019-11-16). "Delayed labelling evaluation for data streams" (in en). Data Mining and Knowledge Discovery 34 (5): 1237–1266. doi:10.1007/s10618-019-00654-y. ISSN 1573-756X. 
  9. Žliobaitė, Indrė; Bifet, Albert; Read, Jesse; Pfahringer, Bernhard; Holmes, Geoff (2015-03-01). "Evaluation methods and decision theory for classification of streaming data with temporal dependence" (in en). Machine Learning 98 (3): 455–482. doi:10.1007/s10994-014-5441-4. ISSN 1573-0565. 
  10. Montiel, Jacob; Read, Jesse; Bifet, Albert; Abdessalem, Talel (2018). "Scikit-Multiflow: A Multi-output Streaming Framework". Journal of Machine Learning Research 19 (72): 1–5. ISSN 1533-7928. Bibcode2018arXiv180704662M. http://jmlr.org/papers/v19/18-251.html. 
  11. Features, scikit-multiflow, 2021-10-09, https://github.com/scikit-multiflow/scikit-multiflow, retrieved 2021-10-11 
  12. Zaharia, Matei; Das, Tathagata; Li, Haoyuan; Hunter, Timothy; Shenker, Scott; Stoica, Ion (2013). "Discretized streams". Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles. New York, New York, USA: ACM Press. pp. 423–438. doi:10.1145/2517349.2522737. ISBN 978-1-4503-2388-8. 
  13. online-ml/river, OnlineML, 2021-10-11, https://github.com/online-ml/river, retrieved 2021-10-11