From 5402bea9cbd27a2ee9e1306baa65a7cf4a273062 Mon Sep 17 00:00:00 2001 From: detlefarend Date: Tue, 8 Nov 2022 16:53:38 +0100 Subject: [PATCH 01/50] BF: Native stream provider with sample streams #253 --- src/mlpro/bf/streams/native.py | 130 +++++++++++++++++++++++++++++---- 1 file changed, 117 insertions(+), 13 deletions(-) diff --git a/src/mlpro/bf/streams/native.py b/src/mlpro/bf/streams/native.py index 8551653df..d93b70b0a 100644 --- a/src/mlpro/bf/streams/native.py +++ b/src/mlpro/bf/streams/native.py @@ -6,30 +6,126 @@ ## -- History : ## -- yyyy-mm-dd Ver. Auth. Description ## -- 2022-01-12 0.0.0 DA Creation +## -- 2022-11-08 0.1.0 DA First draft implementation ## ------------------------------------------------------------------------------------------------- """ -Ver. 0.0.0 (2022-01-12) +Ver. 0.1.0 (2022-11-08) This module provides native stream classes. """ -from mlpro.bf.various import ScientificObject -from mlpro.bf.streams import StreamProvider, Stream - +from mlpro.bf.various import Log, ScientificObject +from mlpro.bf.math import MSpace +from mlpro.bf.ops import Mode +from mlpro.bf.streams import * ## ------------------------------------------------------------------------------------------------- ## ------------------------------------------------------------------------------------------------- -class StreamRnd (Stream): +class StreamMLProBase (Stream): + """ + Base class for MLPro's native data streams. """ + C_ID = '' + C_NAME = '????' + C_VERSION = '0.0.0' + C_NUM_INSTANCES = 0 + + C_SCIREF_TYPE = ScientificObject.C_SCIREF_TYPE_ONLINE + C_SCIREF_AUTHOR = 'MLPro' + C_SCIREF_URL = 'https://mlpro.readthedocs.io' + +## ------------------------------------------------------------------------------------------------- + def __init__( self, p_logging=Log.C_LOG_ALL ): + + super().__init__( p_id = self.C_ID, + p_name = self.C_NAME, + p_num_instances = self.C_NUM_INSTANCES, + p_version = self.C_VERSION, + p_feature_space = self._setup_feature_space(), + p_label_space = None, + p_mode=Mode.C_MODE_SIM, + p_logging = p_logging ) + + +## ------------------------------------------------------------------------------------------------- + def _reset(self): + self._index = 0 + + + + + +## ------------------------------------------------------------------------------------------------- +## ------------------------------------------------------------------------------------------------- +class StreamMLProRnd2D (StreamMLProBase): + """ + Demo stream consisting of 1000 instances of 2-dimensional unlabelled real-valued random numbers. """ - pass + C_ID = 'Rnd2D' + C_NAME = 'Random 2D' + C_VERSION = '1.0.0' + C_NUM_INSTANCES = 1000 + + C_SCIREF_ABSTRACT = 'Demo stream of 2-dimensional unlabelled real-valued random numbers.' + +## ------------------------------------------------------------------------------------------------- + def _setup_feature_space(self) -> MSpace: + feature_space : MSpace = MSpace() + + feature_space.add_dim( Feature( p_name_short = 'f1', + p_base_set = Feature.C_BASE_SET_R, + p_name_long = 'Feature #1', + p_name_latex = '', + p_boundaries = [], + p_description = '', + p_symmetrical = False, + p_logging=Log.C_LOG_NOTHING ) ) + + feature_space.add_dim( Feature( p_name_short = 'f2', + p_base_set = Feature.C_BASE_SET_R, + p_name_long = 'Feature #2', + p_name_latex = '', + p_boundaries = [], + p_description = '', + p_symmetrical = False, + p_logging=Log.C_LOG_NOTHING ) ) + + return feature_space + + +## ------------------------------------------------------------------------------------------------- + def _get_next(self) -> Instance: + pass + + + + + +## ------------------------------------------------------------------------------------------------- +## ------------------------------------------------------------------------------------------------- +class StreamMLProRnd3D (StreamMLProRnd2D): + + C_NAME = 'Random 3D' + + def _setup_feature_space(self) -> MSpace: + return super()._setup_feature_space() + + + + + +## ------------------------------------------------------------------------------------------------- +## ------------------------------------------------------------------------------------------------- +class StreamMLProRnd10D (StreamMLProRnd3D): + + C_NAME = 'Random 10D' @@ -39,21 +135,29 @@ class StreamRnd (Stream): ## ------------------------------------------------------------------------------------------------- class StreamProviderMLPro (StreamProvider): """ - Builtin provider for native data streams. + MLPro's builtin provider class for native data streams. """ - C_NAME = 'MLPro' + C_NAME = 'MLPro' + + C_SCIREF_TYPE = ScientificObject.C_SCIREF_TYPE_ONLINE + C_SCIREF_AUTHOR = 'MLPro' + C_SCIREF_URL = 'https://mlpro.readthedocs.io' + +## ------------------------------------------------------------------------------------------------- + def __init__(self, p_logging=Log.C_LOG_ALL): + super().__init__(p_logging) + + # Determine all stream classes inherited from StreamMLProBase + - C_SCIREF_TYPE = ScientificObject.C_SCIREF_TYPE_ONLINE - C_SCIREF_AUTHOR = 'MLPro' - C_SCIREF_URL = 'https://mlpro.readthedocs.io' ## ------------------------------------------------------------------------------------------------- - def _get_stream_list(self, **p_kwargs) -> list: + def _get_stream_list(self, p_mode=Mode.C_MODE_SIM, p_logging=Log.C_LOG_ALL, **p_kwargs) -> list: raise NotImplementedError ## ------------------------------------------------------------------------------------------------- - def _get_stream(self, p_id) -> Stream: + def _get_stream(self, p_id, p_mode=Mode.C_MODE_SIM, p_logging=Log.C_LOG_ALL, **p_kwargs) -> Stream: raise NotImplementedError From ac7fa1e677a763e517fb3392e9bc33379c751dde Mon Sep 17 00:00:00 2001 From: detlefarend Date: Tue, 8 Nov 2022 18:59:41 +0100 Subject: [PATCH 02/50] BF: Native stream provider with sample streams #253 --- ...ms_001_accessing_native_data_from_mlpro.py | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 src/mlpro/bf/examples/howto_bf_streams_001_accessing_native_data_from_mlpro.py diff --git a/src/mlpro/bf/examples/howto_bf_streams_001_accessing_native_data_from_mlpro.py b/src/mlpro/bf/examples/howto_bf_streams_001_accessing_native_data_from_mlpro.py new file mode 100644 index 000000000..a94d7f48a --- /dev/null +++ b/src/mlpro/bf/examples/howto_bf_streams_001_accessing_native_data_from_mlpro.py @@ -0,0 +1,76 @@ +## ------------------------------------------------------------------------------------------------- +## -- Project : MLPro - A Synoptic Framework for Standardized Machine Learning Tasks +## -- Package : mlpro.bf.examples +## -- Module : howto_bf_streams_001_accessing_native_data_from_mlpro.py +## ------------------------------------------------------------------------------------------------- +## -- History : +## -- yyyy-mm-dd Ver. Auth. Description +## -- 2022-11-08 1.0.0 DA Creation +## ------------------------------------------------------------------------------------------------- + +""" +Ver. 1.0.0 (2022-11-08) + +This module demonstrates the use of native generic data streams provided by MLPro. To this regard, +all data streams of the related provider class will be determined and iterated. + +You will learn: + +1) How to access MLPro's native data streams. + +2) How to iterate the instances of a native stream. + +3) How to access feature data of a native stream. + +""" + + +from datetime import datetime +from mlpro.bf.streams import Stream +from mlpro.bf.streams.native import StreamProviderMLPro +from mlpro.bf.various import Log + + + +# 0 Prepare Demo/Unit test mode +if __name__ == '__main__': + logging = Log.C_LOG_ALL +else: + logging = Log.C_LOG_NOTHING + + +# 1 Create a Wrapper for OpenML stream provider +mlpro = StreamProviderMLPro(p_logging=logging) + + +# 2 Determine and iterate all native data streams provided by MLPro +for stream in mlpro.get_stream_list( p_logging=logging ): + stream.switch_logging( p_logging=logging ) + stream.log(Log.C_LOG_W, 'Number of features:', stream.get_feature_space().get_num_dim(), ', Number of instances:', stream.get_num_instances() ) + + # 2.1 Iterate all instances of the stream + myiterator = iter(stream) + for i, curr_instance in enumerate(myiterator): + curr_data = curr_instance.get_feature_data().get_values() + stream.log(Log.C_LOG_I, 'Instance ' + str(i) + ':\n Data:', curr_data) + + +# 3 Performance test: reset and iterate all data streams dark and measure the time +for stream in mlpro.get_stream_list( p_logging=logging ): + stream.switch_logging( p_logging=logging ) + stream.log(Log.C_LOG_TYPE_W, 'Number of features:', stream.get_feature_space().get_num_dim(), ', Number of instances:', stream.get_num_instances() ) + stream.switch_logging( p_logging=Log.C_LOG_NOTHING ) + + # 3.1 Iterate all instances of the stream + tp_start = datetime.now() + myiterator = iter(stream) + for i, curr_instance in enumerate(myiterator): + curr_data = curr_instance.get_feature_data().get_values() + + tp_end = datetime.now() + duration = tp_end - tp_start + duration_sec = duration.seconds + ( duration.microseconds / 1000000 ) + rate = myiterator.get_num_instances() / duration_sec + + myiterator.switch_logging( p_logging=logging ) + myiterator.log(Log.C_LOG_TYPE_W, 'Done in', round(duration_sec,3), ' seconds (throughput =', round(rate), 'instances/sec)') From 28dfbb251fb692ec271f5a63ed7e5b21c66e2a5c Mon Sep 17 00:00:00 2001 From: Laxmikant Shrikant Baheti <100450659+laxmikantbaheti@users.noreply.github.com> Date: Wed, 9 Nov 2022 12:13:49 +0100 Subject: [PATCH 03/50] window plot systematics in progress --- src/mlpro/bf/streams/tasks/windows.py | 45 +++++++++++++++++++++------ 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/src/mlpro/bf/streams/tasks/windows.py b/src/mlpro/bf/streams/tasks/windows.py index c13e2a3ca..19b9b8233 100644 --- a/src/mlpro/bf/streams/tasks/windows.py +++ b/src/mlpro/bf/streams/tasks/windows.py @@ -13,7 +13,11 @@ Ver. 0.1.0 (2022-11-04) This module provides pool of window objects further used in the context of online adaptivity. """ - +from matplotlib.axes import Axes +from mpl_toolkits.mplot3d import Axes3D +from matplotlib.collections import PolyCollection +from matplotlib.patches import Rectangle +import matplotlib.pyplot as plt import numpy as np from mlpro.bf.streams.models import * from mlpro.bf.events import * @@ -203,32 +207,53 @@ def get_std_deviation(self): ## ------------------------------------------------------------------------------------------------- def _init_plot_2d(self, p_figure: Figure, p_settings: PlotSettings): """ + Custom method to initialize a 2D plot for the window object Parameters ---------- - p_figure - p_settings + p_figure: Matplotlib.figure.Figure + The figure object that hosts the plot - Returns - ------- + p_settings: list of PlotSettings objects. + Additional settings for the plot """ + + if p_figure is None: + p_figure = plt.figure() + + if not p_settings.axes: + self.axes = Axes(p_figure, [0.05,0.05,0.9,0.9]) + else: + self.axes = p_settings.axes + + self.window_patch = Rectangle((0,0),0,0) + pass ## ------------------------------------------------------------------------------------------------- def _init_plot_3d(self, p_figure: Figure, p_settings: PlotSettings): """ + Custom method to initialize a 3D plot for window object Parameters ---------- - p_figure - p_settings - - Returns - ------- + p_figure: matplotlib.figure.Figure + The figure object to host the plot. + p_settings: PlotSettings + Additional Settings for the plot """ + if p_figure is None: + p_figure = plt.figure() + + if not p_settings.axes: + self.axes = Axes3D(p_figure, (0.05,0.05,0.9,0.9)) + else: + self.axes = p_settings.axes + + self. pass From cfa58e342809aa6f1b35c67e8c7d9d717bfac250 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cdetlefarend=E2=80=9D?= <“detlef@arend-privat.net”> Date: Thu, 10 Nov 2022 08:55:24 +0100 Subject: [PATCH 04/50] BF-Streams: Howto 001 - Stream-Tasks, -Workflows, -Scenarios #483 --- .../howto.bf.streams.010.rst | 0 .../howto.bf.streams.011.rst | 0 .../howto.bf.streams.012.rst | 0 doc/rtd/content/append1/howto.bf.rst | 6 +- ...$MLPro-BF-Streams_class_diagram.drawio.bkp | 2 +- .../bf/MLPro-BF-Streams_class_diagram.drawio | 2 +- .../MLPro-BF-Streams_class_diagram.drawio.png | Bin 617781 -> 621053 bytes ...streams_051_accessing_data_from_openml.py} | 0 ...ms_052_accessing_data_from_scikitlearn.py} | 0 ..._streams_053_accessing_data_from_river.py} | 0 ...to_bf_streams_101_stream_task_scenario.py} | 29 ++-- ...f_streams_102_stream_workflows_scenario.py | 138 ++++++++++++++++++ src/mlpro/bf/streams/models.py | 23 ++- 13 files changed, 172 insertions(+), 28 deletions(-) rename doc/rtd/content/append1/bf/{data => streams}/howto.bf.streams.010.rst (100%) rename doc/rtd/content/append1/bf/{data => streams}/howto.bf.streams.011.rst (100%) rename doc/rtd/content/append1/bf/{data => streams}/howto.bf.streams.012.rst (100%) rename src/mlpro/bf/examples/{howto_bf_streams_010_accessing_data_from_openml.py => howto_bf_streams_051_accessing_data_from_openml.py} (100%) rename src/mlpro/bf/examples/{howto_bf_streams_012_accessing_data_from_scikitlearn.py => howto_bf_streams_052_accessing_data_from_scikitlearn.py} (100%) rename src/mlpro/bf/examples/{howto_bf_streams_011_accessing_data_from_river.py => howto_bf_streams_053_accessing_data_from_river.py} (100%) rename src/mlpro/bf/examples/{howto_bf_streams_001_tasks_workflows_and_stream_scenarios.py => howto_bf_streams_101_stream_task_scenario.py} (82%) create mode 100644 src/mlpro/bf/examples/howto_bf_streams_102_stream_workflows_scenario.py diff --git a/doc/rtd/content/append1/bf/data/howto.bf.streams.010.rst b/doc/rtd/content/append1/bf/streams/howto.bf.streams.010.rst similarity index 100% rename from doc/rtd/content/append1/bf/data/howto.bf.streams.010.rst rename to doc/rtd/content/append1/bf/streams/howto.bf.streams.010.rst diff --git a/doc/rtd/content/append1/bf/data/howto.bf.streams.011.rst b/doc/rtd/content/append1/bf/streams/howto.bf.streams.011.rst similarity index 100% rename from doc/rtd/content/append1/bf/data/howto.bf.streams.011.rst rename to doc/rtd/content/append1/bf/streams/howto.bf.streams.011.rst diff --git a/doc/rtd/content/append1/bf/data/howto.bf.streams.012.rst b/doc/rtd/content/append1/bf/streams/howto.bf.streams.012.rst similarity index 100% rename from doc/rtd/content/append1/bf/data/howto.bf.streams.012.rst rename to doc/rtd/content/append1/bf/streams/howto.bf.streams.012.rst diff --git a/doc/rtd/content/append1/howto.bf.rst b/doc/rtd/content/append1/howto.bf.rst index 1ccc8c8c8..097476088 100644 --- a/doc/rtd/content/append1/howto.bf.rst +++ b/doc/rtd/content/append1/howto.bf.rst @@ -38,14 +38,14 @@ Mathematics -Data Sets and Streams ---------------------- +Data Stream Processing +---------------------- .. toctree:: :maxdepth: 1 :glob: - bf/data/howto* + bf/streams/howto* diff --git a/doc/rtd/content/append2/core/images/bf/.$MLPro-BF-Streams_class_diagram.drawio.bkp b/doc/rtd/content/append2/core/images/bf/.$MLPro-BF-Streams_class_diagram.drawio.bkp index 7d9da21ad..b19bd3bc2 100644 --- a/doc/rtd/content/append2/core/images/bf/.$MLPro-BF-Streams_class_diagram.drawio.bkp +++ b/doc/rtd/content/append2/core/images/bf/.$MLPro-BF-Streams_class_diagram.drawio.bkp @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/doc/rtd/content/append2/core/images/bf/MLPro-BF-Streams_class_diagram.drawio b/doc/rtd/content/append2/core/images/bf/MLPro-BF-Streams_class_diagram.drawio index aef0cbd06..ff37b66f8 100644 --- a/doc/rtd/content/append2/core/images/bf/MLPro-BF-Streams_class_diagram.drawio +++ b/doc/rtd/content/append2/core/images/bf/MLPro-BF-Streams_class_diagram.drawio @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/doc/rtd/content/append2/core/images/bf/MLPro-BF-Streams_class_diagram.drawio.png b/doc/rtd/content/append2/core/images/bf/MLPro-BF-Streams_class_diagram.drawio.png index 0a44ac0a788a6b422ee71b86f341cbfadafc4b50..f89e32dc84b82023c774097809fde03699eec7d4 100644 GIT binary patch literal 621053 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