{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "b773bf8e-c420-44e1-80a6-99f75dd12268", "metadata": {}, "source": [ "# 7. Pipelines and Transformers\n", "\n", "This notebook showcases the current version of data processing pipelines in CapyMOA. \n", "\n", "* Includes an example of how preprocessing can be accomplished via pipelines and transformers.\n", "* Transformers transform an instance, e.g., using standardization, normalization, etc.\n", "* Pipelines bundle transformers and can also act as classifiers or regressors\n", "\n", "Please note that this feature is still under development; some functionality might not yet be available or change in future releases.\n", "\n", "---\n", "\n", "*More information about CapyMOA can be found in* https://www.capymoa.org\n", "\n", "**notebook last updated on 25/07/2024**" ] }, { "attachments": {}, "cell_type": "markdown", "id": "55d070de-8697-4f98-a11b-eab4e3d5c281", "metadata": {}, "source": [ "## 1. Running onlineBagging without any preprocessing\n", "\n", "First, let us have a look at a simple test-then-train classification example without pipelines. \n", "- We loop over the instances of the data stream\n", "- make a prediction,\n", "- update the evaluator with the prediction and label\n", "- and then train the classifier on the instance." ] }, { "cell_type": "code", "execution_count": 1, "id": "14681f54-23a1-4f93-9145-abf484c91c54", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "82.06656073446328" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "## Test-then-train loop\n", "from capymoa.datasets import Electricity\n", "from capymoa.classifier import OnlineBagging\n", "from capymoa.evaluation import ClassificationEvaluator\n", "\n", "## Opening a file as a stream\n", "elec_stream = Electricity()\n", "\n", "# Creating a learner\n", "ob_learner = OnlineBagging(schema=elec_stream.get_schema(), ensemble_size=5)\n", "\n", "# Creating the evaluator\n", "ob_evaluator = ClassificationEvaluator(schema=elec_stream.get_schema())\n", "\n", "while elec_stream.has_more_instances():\n", " instance = elec_stream.next_instance()\n", " \n", " prediction = ob_learner.predict(instance)\n", " ob_evaluator.update(instance.y_index, prediction)\n", " ob_learner.train(instance)\n", "\n", "ob_evaluator.accuracy()" ] }, { "attachments": {}, "cell_type": "markdown", "id": "0c1360ef-0583-4c87-8645-1e2d701fffca", "metadata": {}, "source": [ "## 2. Online Bagging using pipelines and transformers\n", "\n", "If we want to perform some preprocessing, such as normalization or feature transformation, or a combination of both, we can chain multiple such `Transformer`s within a pipeline. The last step of a pipeline is a learner, such as capymoa classifier or regressor.\n", "\n", "Similar as classifiers and regressors, pipelines support `train` and `test`. Hence, we can use them in the same way as we would use other capymoa learners. Internally, the pipeline object passes an incoming instance from one transformer to the next. It then returns the prediction of the classifier / regressor using the transformed instance.\n", "\n", "Creating a pipeline consists of the following steps:\n", "1. Create a stream instance\n", "2. Initialize the transformers\n", "3. Initialize the learner\n", "4. Create the pipeline. Here, we use a `ClassifierPipeline`\n", "5. Use the pipeline the same way as any other learner." ] }, { "cell_type": "code", "execution_count": 2, "id": "ae9bb646-e0d1-4de6-b5a1-cff0f0a1b172", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "77.5048552259887" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from capymoa.stream.preprocessing import MOATransformer\n", "from capymoa.stream.preprocessing import ClassifierPipeline\n", "from capymoa.stream import Stream\n", "from moa.streams.filters import AddNoiseFilter, NormalisationFilter\n", "from moa.streams import FilteredStream\n", "\n", "elec_stream = Electricity()\n", "\n", "# Creating the transformers\n", "normalisation_transformer = MOATransformer(schema=elec_stream.get_schema(), moa_filter=NormalisationFilter())\n", "add_noise_transformer = MOATransformer(schema=normalisation_transformer.get_schema(), moa_filter=AddNoiseFilter())\n", "\n", "# Creating a learner\n", "ob_learner = OnlineBagging(schema=add_noise_transformer.get_schema(), ensemble_size=5)\n", "\n", "# Creating and populating the pipeline\n", "pipeline = ClassifierPipeline(transformers=[normalisation_transformer, add_noise_transformer],\n", " learner=ob_learner)\n", "\n", "# Creating the evaluator\n", "ob_evaluator = ClassificationEvaluator(schema=elec_stream.get_schema()) \n", "\n", "while elec_stream.has_more_instances():\n", " instance = elec_stream.next_instance()\n", " prediction = pipeline.predict(instance)\n", " ob_evaluator.update(instance.y_index, prediction)\n", " pipeline.train(instance)\n", "\n", "ob_evaluator.accuracy()" ] }, { "cell_type": "markdown", "id": "676f53b7-0839-47a5-88f9-393b2007855e", "metadata": {}, "source": [ "We can also get a textual representation of the pipeline:" ] }, { "cell_type": "code", "execution_count": 3, "id": "31a481db-d23b-4fc8-a689-fc5c14df5fff", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'Transformer(NormalisationFilter) | Transformer(AddNoiseFilter) | OnlineBagging'" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "str(pipeline)" ] }, { "cell_type": "markdown", "id": "df255274-83cd-41df-a1da-04778bc427aa", "metadata": {}, "source": [ "### 2.1 Alternative syntax\n", "* An alternative syntax to define the pipeline is shown below\n", "* Since the pipeline behaves like a learner, it can be used with high-level evaluation functions like `prequential_evaluation`" ] }, { "cell_type": "code", "execution_count": 4, "id": "50cb066b-e3e4-4ffd-ad9d-65631d5462e3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "AdaptiveRandomForest: 88.55049435028248\n", "Transformer(NormalisationFilter) | AdaptiveRandomForest: 88.07821327683615\n" ] }, { "data": { "image/png": "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/HE6d+6cpmX6rbfeolSpUnh5efHQQw9x9erVVLdv2rSJdu3a4efnh4+PDy1btmTLli2ptrHZbMycOZO7774bd3d3ypcvz9dff22/vVy5cgDUq1cPm81Gq1atgNTd1z/66CMCAgJITk5Ote+uXbvy4IMP2q9/99131K9fHzc3N8qXL8+4ceNITExMdR8vLy9Kly5N+fLlGT16NMWKFWP58uWZfkyzZs2ie/fueHh4UKlSJZYuXZpqm2XLllG5cmXc3d1p3bo1R44cSfP8L168mBo1auDq6kpISAiTJ09OdXtISAivv/46gwYNokiRIgQHB7N06VLOnTtH165dKVKkCLVr1yYsLCzNvkuWLEnp0qXtfylJeUREBIMGDaJo0aJ4eHhw9913888//9jv9/nnn+Pr68vSpUupXr06rq6uhIeHExcXx7PPPkuZMmXw9PSkcePGrFy50n6/o0eP0qVLF4oWLYqnpyc1atRg2bJlHDlyhNatWwNQtGhRbDYbQ4YMSROviIiISIG3Zykc/B0cXaDTJBV3k2yjpPxGhgHx0bf2d3onLH0SjGQwklJfLh0Gp3fd+r4MI9OhLly4kKpVq1KlShUGDBjAp59+inFtPwsXLmTs2LG88cYbhIWF4e/vz/vvv5/q/leuXGHw4MGsXr2a9evXU6lSJTp16sSVK1dSbffyyy/To0cPtm/fTv/+/enbty979uwBYOPGjQD89ttvnDp1iiVLlqSJs1evXly4cIEVK1bY1128eJGff/6Z/v37A/DXX38xaNAgRowYwe7du/nwww/5/PPPmTBhQrqPPTk5mcWLFxMREYGLi0umH9O4cePo3bs3O3bsoFOnTvTv35+LFy8CcOzYMe677z66dOnCtm3bePjhh3nhhRdS3X/z5s307t2bvn37snPnTsaOHcvLL7+c5oeRqVOn0rx5c7Zu3Urnzp0ZOHAggwYNYsCAAWzZsoUKFSowaNAg++v2X4YMGUJYWBhLly5l3bp1GIZBp06dSEhIsG8TExPDxIkTmTVrFn///TclS5Zk2LBhrFu3jgULFrBjxw569epFx44d7Qn9E088QVxcHH/++Sc7d+5k4sSJFClShMDAQBYvXgyYrfenTp1i+vTptxSriIiISIERFwU/P28uNx+Ra71ipZAwCrjLly8bgHH58uU0t8XGxhq7d+82YmNj/10ZF2UY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5hujXr16F11K5MknnzR27NhhvP322xddSsTV1dX4+OOPje3btxtjx441/Pz8ys2GKnI9nnrqKWPlypVGWlqasXXrVuOpp54yLBaLsWTJEsMw1Neldjt/9nXDUH+X2uOJJ54wVqxYYaSlpRlr1qwxevfubQQFBRlZWVmGYdT+vq5QLrXS8uXLDeCCrxEjRhiG4VgW7dlnnzWCg4MNV1dXo1evXsauXbvKHePYsWPG0KFDDS8vL8PHx8cYOXKkkZeXV67Nli1bjG7duhmurq5Gw4YNjZdeeumCWmbNmmU0a9bMcHFxMWJjY42FCxdW2vuWuulifR0wPvroo7I2BQUFxvjx4w1/f3/Dw8PDGDBggJGRkVHuOHv37jX69etnuLu7G0FBQcYTTzxhFBcXl2uzfPlyo23btoaLi4sRHR1d7hxnvfnmm0ZERITh4uJidOzY0fjxxx8r421LHTVq1CijUaNGhouLi1GvXj2jV69eZYHcMNTXpXb7ZShXf5faYsiQIUZoaKjh4uJiNGzY0BgyZIixe/fusv21va9bDMMwKvdavIiIiIiIiIhcjMaUi4iIiIiIiJhEoVxERERERETEJArlIiIiIiIiIiZRKBcRERERERExiUK5iIiIiIiIiEkUykVERERERERMolAuIiIiIiIiYhKFchERERERERGTKJSLiIiIiIiImEShXEREpJo4cuQILi4u5OfnU1xcjKenJ+np6Zd9zQsvvEDbtm0rrIaePXsyceLECjueiIiIXJ5CuYiISDWxbt062rRpg6enJ5s2bSIgIICIiAizyxIREZFKpFAuIiJSTaxdu5auXbsCsHr16rLtq/Hggw9yzz338M9//pPQ0FACAwOZMGECxcXFZW3eeecdmjZtipubG8HBwQwaNKjstStXruT111/HYrFgsVjYu3cvpaWljB49mqioKNzd3WnevDmvv/76VZ+3sLCQSZMmER4ejqurK02aNGH69Oll+1NSUujXrx9eXl4EBwczfPhwjh49WrZ/zpw5tG7dGnd3dwIDA+nduzf5+flX/T0SERGpTpzMLkBERKQuS09PJy4uDoBTp05hs9n4+OOPKSgowGKx4Ofnx/33388777xzxcdcvnw5oaGhLF++nN27dzNkyBDatm3LmDFjSExM5LHHHuPTTz+lS5cuZGdns2rVKgBef/11fvrpJ1q1asVf//pXAOrVq4fdbicsLIzZs2cTGBjI2rVrGTt2LKGhoQwePPiKzgvwwAMPsG7dOt544w3atGlDWlpaWeg+ceIEt9xyCw899BD//ve/KSgoYNKkSQwePJhly5aRkZHB0KFDmTJlCgMGDCAvL49Vq1ZhGEaF/D2IiIiYxWLop5mIiIhpSkpKOHDgALm5ucTHx5OYmIinpydt27Zl4cKFRERE4OXlRVBQ0EVf/8ILL7BgwQKSkpIAxxXrFStWkJqais1mA2Dw4MFYrVZmzpzJvHnzGDlyJAcOHMDb2/uC4/Xs2ZO2bdvy2muvXbbuRx99lMzMTObMmXNF5/3pp59o3rw5S5cupXfv3hcc7+9//zurVq3i22+/LXvuwIEDhIeHs2vXLk6ePEn79u3Zu3cvjRo1+tXvq4iISE2h29dFRERM5OTkRGRkJDt37qRDhw7ExcWRmZlJcHAw3bt3JzIy8pKB/FJiY2PLgjFAaGgoWVlZANx66600atSI6Ohohg8fzn//+19OnTr1q8d8++23ad++PfXq1cPLy4v33nvvgknoLnfepKQkbDYbPXr0uOjxt2zZwvLly/Hy8ir7atGiBQCpqam0adOGXr160bp1a+677z7ef/99jh8/flXfFxERkepIoVxERMREsbGxeHl5MXz4cBISEvDy8qJXr17s3bsXLy8vYmNjr/qYzs7O5f5ssViw2+0AeHt7s2nTJj7//HNCQ0N57rnnaNOmDSdOnLjk8WbOnMn//d//MXr0aJYsWUJSUhIjR46kqKjois/r7u5+2ZpPnjzJnXfeSVJSUrmvn3/+me7du2Oz2Vi6dCmLFy8mJiaGN998k+bNm5OWlnal3xYREZFqSaFcRETERIsWLSIpKYmQkBD+85//kJSURKtWrXjttddISkpi0aJFFX5OJycnevfuzZQpU9i6dSt79+5l2bJlALi4uFBaWlqu/Zo1a+jSpQvjx4+nXbt2NGnShNTU1Ks6Z+vWrbHb7axcufKi+2+44Qa2bdtGZGQkTZo0Kffl6ekJOEJ+165d+ctf/sLmzZtxcXFh/vz51/AdEBERqT4UykVEREzUqFEjvLy8OHz4MHfffTfh4eFs27aNgQMH0qRJkwofP/3111/zxhtvkJSUxL59+/jkk0+w2+00b94cgMjISNavX8/evXs5evQodrudpk2bkpiYyLfffstPP/3Es88+y4YNG67qvJGRkYwYMYJRo0axYMEC0tLSWLFiBbNmzQJgwoQJZGdnM3ToUDZs2EBqairffvstI0eOpLS0lPXr1/OPf/yDxMRE0tPTmTdvHkeOHKFly5YV+v0RERGpagrlIiIiJluxYgUdOnTAzc2NhIQEwsLCCA0NrZRz+fn5MW/ePG655RZatmzJu+++y+eff152m/z//d//YbPZiImJoV69eqSnp/Pwww9z7733MmTIEDp16sSxY8cYP378VZ976tSpDBo0iPHjx9OiRQvGjBlTtqRZgwYNWLNmDaWlpfTp04fWrVszceJE/Pz8sFqt+Pj48MMPP3D77bfTrFkznnnmGf71r3/Rr1+/Cv3+iIiIVDXNvi4iIiIiIiJiEl0pFxERERERETGJQrmIiIiIiIiISRTKRUREREREREyiUC4iIiIiIiJiEoVyEREREREREZMolIuIiIiIiIiYRKFcRERERERExCQK5SIiIiIiIiImUSgXERERERERMYlCuYiIiIiIiIhJFMpFRERERERETPL/DV/BN5eLwl4AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from capymoa.evaluation import prequential_evaluation\n", "from capymoa.classifier import AdaptiveRandomForestClassifier\n", "from capymoa.evaluation.visualization import plot_windowed_results\n", "\n", "elec_stream = Electricity()\n", "\n", "# Creating a transformer\n", "normalisation_transformer = MOATransformer(schema=elec_stream.get_schema(), moa_filter=NormalisationFilter())\n", "\n", "# Creating an ARF classifier as a baseline\n", "arf = AdaptiveRandomForestClassifier(schema=normalisation_transformer.get_schema(), ensemble_size=5)\n", "\n", "# Alternative syntax. \n", "pipeline_arf = ClassifierPipeline()\n", "pipeline_arf.add_transformer(normalisation_transformer)\n", "pipeline_arf.set_learner(AdaptiveRandomForestClassifier(schema=add_noise_transformer.get_schema(), ensemble_size=5))\n", "\n", "results_arf_pipeline = prequential_evaluation(stream=elec_stream, learner=pipeline_arf, window_size=4500)\n", "results_arf_baseline = prequential_evaluation(stream=elec_stream, learner=arf, window_size=4500)\n", "\n", "print(f\"{arf}: {results_arf_baseline['cumulative'].accuracy()}\")\n", "print(f\"{pipeline_arf}: {results_arf_pipeline['cumulative'].accuracy()}\")\n", "plot_windowed_results(results_arf_pipeline, results_arf_baseline, metric='accuracy')" ] }, { "cell_type": "markdown", "id": "5cc06f0d-d2a0-4fc6-aa9f-ea80e0d224cd", "metadata": {}, "source": [ "## 3. RegressorPipeline\n", "\n", "* The regression version of the pipeline is quite similar to the classification one" ] }, { "cell_type": "code", "execution_count": 8, "id": "f3c8271b-bbb7-4ca9-97f5-fb41e27ec4fd", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "rmse: 2.5841013025710358\n" ] } ], "source": [ "from capymoa.regressor import AdaptiveRandomForestRegressor\n", "from capymoa.stream.preprocessing import RegressorPipeline\n", "from capymoa.evaluation import RegressionEvaluator\n", "from capymoa.datasets import Fried\n", "\n", "fried_stream = Fried()\n", "\n", "# Creating a transformer\n", "normalisation_transformer = MOATransformer(schema=fried_stream.get_schema(), moa_filter=NormalisationFilter())\n", "\n", "arfreg = AdaptiveRandomForestRegressor(schema=normalisation_transformer.get_schema(), ensemble_size=5)\n", "\n", "# Creating and populating the pipeline\n", "pipeline_arfreg = RegressorPipeline(transformers=[normalisation_transformer],\n", " learner=arfreg)\n", "\n", "# Creating the evaluator\n", "arfreg_evaluator = RegressionEvaluator(schema=fried_stream.get_schema()) \n", "\n", "while fried_stream.has_more_instances():\n", " instance = fried_stream.next_instance()\n", " prediction = pipeline_arfreg.predict(instance)\n", " arfreg_evaluator.update(instance.y_value, prediction)\n", " pipeline_arfreg.train(instance)\n", "\n", "print(f\"rmse: {arfreg_evaluator.rmse()}\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.19" } }, "nbformat": 4, "nbformat_minor": 5 }