{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "b773bf8e-c420-44e1-80a6-99f75dd12268", "metadata": {}, "source": [ "# 5. Creating a new classifier in CapyMOA\n", "\n", "In this tutorial we show how simple it is to create a new learner in capymoa using Python.\n", "\n", "* We choose to make an implementation of the canonical ensemble classifier Online Bagging (AKA OzaBag)\n", "* The base learner is a capymoa object, which allows us to use either SKLearn algorithms or MOA algorithms, thus even though it will be all implemented in Python by us, it can be quite efficient in terms of run time as it depends on the base learner. \n", "\n", "\n", "Reference: _Online bagging and boosting._ Oza, Nikunj C., and Stuart J. Russell. In International Workshop on Artificial Intelligence and Statistics, pp. 229-236. PMLR, 2001.\n", "\n", "---\n", "\n", "*More information about CapyMOA can be found in* https://www.capymoa.org\n", "\n", "**last update on 27/07/2024**" ] }, { "attachments": {}, "cell_type": "markdown", "id": "96cb3df1-190c-49ea-959b-292559df13e6", "metadata": {}, "source": [ "## 1. Creating the classifier\n", "\n", "* The first step is to extend the `Classifier` abstract class from `capymoa.base` and implement the required methods\n", " * ```__init__(self, schema=None, random_seed=1, ...)```\n", " * ```train(self, instance)```\n", " * ```predict(self, instance)```\n", " * ```predict_proba(self, instance)```\n", " \n", "* There is no need to pay much attention to the auxiliary function `poisson`, even though it is a defining characteristic of Online Bagging algorithm but not that relevant for our example\n", "\n", "* We specify the parameter `base_learner_class` as a class identifier and proceed to instantiate it inside the init method\n", "```python\n", " self.ensemble = []\n", " for i in range(self.ensemble_size): \n", " self.ensemble.append(self.base_learner_class(schema=self.schema))\n", "```" ] }, { "cell_type": "code", "execution_count": 1, "id": "26f4959d-dbc9-41dc-b70a-69ff61dbdf66", "metadata": {}, "outputs": [], "source": [ "from capymoa.base import Classifier\n", "from capymoa.classifier import HoeffdingTree\n", "\n", "from collections import Counter\n", "import numpy as np\n", "import random\n", "import math\n", "\n", "# Generates a random sample from a Poisson distribution with a given mean parameter `lambd`\n", "def poisson(lambd, random_generator):\n", " if lambd < 100.0:\n", " product = 1.0\n", " _sum = 1.0\n", " threshold = random_generator.random() * math.exp(lambd)\n", " i = 1\n", " max_val = max(100, 10 * math.ceil(lambd))\n", " while i < max_val and _sum <= threshold:\n", " product *= (lambd / i)\n", " _sum += product\n", " i += 1\n", " return i - 1\n", " x = lambd + math.sqrt(lambd) * random_generator.gauss(0, 1)\n", " if x < 0.0:\n", " return 0\n", " return int(math.floor(x))\n", "\n", "# Online Bagging Implementation\n", "class CustomOnlineBagging(Classifier):\n", " def __init__(self, schema=None, random_seed=1, ensemble_size=5, base_learner_class=None):\n", " super().__init__(schema=schema, random_seed=random_seed)\n", "\n", " self.random_generator = random.Random()\n", " \n", " self.ensemble_size = ensemble_size\n", " self.base_learner_class = base_learner_class\n", " \n", " if self.base_learner_class is None:\n", " self.base_learner_class = HoeffdingTree\n", " \n", " self.ensemble = []\n", " for i in range(self.ensemble_size): \n", " self.ensemble.append(self.base_learner_class(schema=self.schema))\n", " \n", " def __str__(self):\n", " return 'CustomOnlineBagging'\n", "\n", " def train(self, instance):\n", " for i in range(self.ensemble_size):\n", " k = poisson(1.0, self.random_generator)\n", " for _ in range(k):\n", " self.ensemble[i].train(instance)\n", "\n", " def predict(self, instance):\n", " predictions = []\n", " for i in range(self.ensemble_size):\n", " predictions.append(self.ensemble[i].predict(instance))\n", " majority_vote = Counter(predictions)\n", " prediction = majority_vote.most_common(1)[0][0]\n", " return prediction\n", "\n", " def predict_proba(self, instance):\n", " probabilities = []\n", " for i in range(self.ensemble_size):\n", " classifier_proba = self.ensemble[i].predict_proba(instance)\n", " classifier_proba = classifier_proba / np.sum(classifier_proba)\n", " probabilities.append(classifier_proba)\n", " avg_proba = np.mean(probabilities, axis=0)\n", " return avg_proba" ] }, { "attachments": {}, "cell_type": "markdown", "id": "a4ff1ac9-07a1-4a0b-9bb5-f2afa79dd928", "metadata": {}, "source": [ "## 3. Evaluating the classifier\n", "\n", "* We use the same approach as when we evaluate any other capymoa learner.\n", "* We show how it is simple to use learners with different backends in our implementation, e.g.\n", " * `HoeffdingTree` (MOA)\n", " * `SGDClassifier` (SKLearn)" ] }, { "cell_type": "code", "execution_count": 2, "id": "da2bba35-c258-4fc0-8932-f97d56e4e276", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CustomOnlineBagging(HT) accuracy: 82.72643008474576, wallclock: 3.5534441471099854\n", "CustomOnlineBagging(SGD) accuracy: 82.25414901129943, wallclock: 3.1383869647979736\n" ] }, { "data": { "image/png": "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iIiUqaAGcO98mDrcTLynDAEsYLEChvl8+Vvn9m/YFfqML95SdxERF3N5Ur5gwQKSkpIYPnz4BdseeeQRsrOz+ec//0lycjIxMTHMnz+fBg0auCBSEREREXEZ70AYOAVmjYaNkwADDPuF+3UaA53H/OVq7SIiZc3lSXm3bt24XAH4MWPGFOlTLiIiIiJVlM3NnP22WMFwXLjdYjOXrishF5EKpFwUehMRERERKZaUyxX8Nf5ku4hI+aOkXEREREQqjsAI4FIz4Zaz20VEKg4l5SIiIiJSccQNxizudjFnW6CJiFQgSspFREREpOIIagC93zPvK7fYij72fs/cLiJSgbi80JuIiIiISInEDYKIa4v2KY8brIRcRCokJeUiIiIiUvEENYCuY10dhYjIFdPydREREREREREXUVIuIiIiIiIi4iJKykVERERERERcREm5iIiIiIiIiIsoKRcRERERERFxESXlIiIiIiIiIi6ipFxERERERETERZSUi4iIiIiIiLiIknIRERERERERF1FSLiIiIiIiIuIiSspFREREREREXMTN1QE4m2EYAKSlpbk4EqnI8vLyyMzMJC0tDXd3d1eHI+JUGu9SVWisS1Wi8S5VSXkY7wX5Z0E+ejmVPilPT08HIDw83MWRiIiIiIiISFWSnp5OtWrVLruPxShO6l6BORwODh8+jL+/PxaLxdXhSAWVlpZGeHg4Bw4cICAgwNXhiDiVxrtUFRrrUpVovEtVUh7Gu2EYpKenExYWhtV6+bvGK/1MudVqpW7duq4OQyqJgIAA/SCTKkPjXaoKjXWpSjTepSpx9Xj/sxnyAir0JiIiIiIiIuIiSspFREREREREXERJuUgxeHp68sILL+Dp6enqUEScTuNdqgqNdalKNN6lKqlo473SF3oTERERERERKa80Uy4iIiIiIiLiIkrKRURERERERFxESbmIiIiIiIiIiygpFxEREREREXERJeVSKS1dupRbb72VsLAwLBYLM2bMKLLdMAyef/55QkND8fb2pmvXruzevbvIPsnJyQwaNIiAgAACAwO59957OXPmTJF9Nm3axPXXX4+Xlxfh4eG89tprF8Ty/fff07RpU7y8vGjZsiWzZ88u9c9XqraXX36Zq6++Gn9/f2rVqsVtt93Gzp07i+yTnZ3NqFGjCAoKws/Pj379+nHs2LEi+yQlJdGr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GDVr1rxoK5HHH3/c2L59uzF+/PiLthLx9PQ0Pv/8c2Pbtm3G/fffbwQGBhaphipyJcaMGWMsWbLE2Lt3r7Fp0yZjzJgxhsViMebNm2cYhsa6VG7nV183DI13qTz+9a9/GYsXLzb27t1rrFixwujatasRHBxsHD9+3DCMyj/WlZRLpbRo0SIDuOBj6NChhmGYbdGee+45IyQkxPD09DS6dOli7Ny5s8g5Tp06Zdx9992Gn5+fERAQYAwbNsxIT08vss/GjRuN6667zvD09DTq1KljvPLKKxfEMmXKFKNx48aGh4eH0bx5c+Pnn3922uctVdPFxjpgTJw4sXCfrKws46GHHjKqV69u+Pj4GH379jWOHDlS5Dz79u0zevToYXh7exvBwcHGv/71LyMvL6/IPosWLTJiY2MNDw8Po379+kWuUWDcuHFGRESE4eHhYVxzzTXGb7/95oxPW6qo4cOHG/Xq1TM8PDyMmjVrGl26dClMyA1DY10qtz8m5RrvUlkMGDDACA0NNTw8PIw6deoYAwYMMH7//ffC7ZV9rFsMwzCcOxcvIiIiIiIiIheje8pFREREREREXERJuYiIiIiIiIiLKCkXERERERERcREl5SIiIiIiIiIuoqRcRERERERExEWUlIuIiIiIiIi4iJJyERERERERERdRUi4iIiIiIiLiIkrKRURERERERFxESbmIiEg5ceLECTw8PMjIyCAvLw9fX1+SkpIue8zYsWOJjY0ttRg6d+7MI488UmrnExERkctTUi4iIlJOrFq1ipiYGHx9fdmwYQM1atQgIiLC1WGJiIiIEykpFxERKSdWrlxJhw4dAFi+fHnh85L429/+xm233cYbb7xBaGgoQUFBjBo1iry8vMJ93n//fRo1aoSXlxchISHccccdhccuWbKEd955B4vFgsViYd++fdjtdu69916ioqLw9vamSZMmvPPOOyW+bk5ODk8++STh4eF4enrSsGFDPv3008LtW7ZsoUePHvj5+RESEsLgwYM5efJk4fapU6fSsmVLvL29CQoKomvXrmRkZJT4ayQiIlKeuLk6ABERkaosKSmJ6OhoADIzM7HZbHz++edkZWVhsVgIDAxk4MCBvP/++8U+56JFiwgNDWXRokX8/vvvDBgwgNjYWEaMGMG6det4+OGH+eqrr2jfvj3JycksW7YMgHfeeYddu3bRokUL/vOf/wBQs2ZNHA4HdevW5fvvvycoKIiVK1dy//33Exoayp133lms6wIMGTKEVatW8e677xITE8PevXsLk+6UlBRuvPFG7rvvPt566y2ysrJ48sknufPOO1m4cCFHjhzh7rvv5rXXXqNv376kp6ezbNkyDMMolX8HERERV7EY+mkmIiLiMvn5+Rw8eJC0tDTatGnDunXr8PX1JTY2lp9//pmIiAj8/PwIDg6+6PFjx45lxowZJCQkAOaM9eLFi0lMTMRmswFw5513YrVamTx5MtOnT2fYsGEcPHgQf3//C87XuXNnYmNjefvtty8b9+jRozl69ChTp04t1nV37dpFkyZNmD9/Pl27dr3gfC+++CLLli1j7ty5he8dPHiQ8PBwdu7cyZkzZ2jdujX79u2jXr16f/p1FRERqSi0fF1ERMSF3NzciIyMZMeOHVx99dVER0dz9OhRQkJC6NixI5GRkZdMyC+lefPmhYkxQGhoKMePHwfgpptuol69etSvX5/BgwfzzTffkJmZ+afnHD9+PK1bt6ZmzZr4+fnx0UcfXVCE7nLXTUhIwGaz0alTp4uef+PGjSxatAg/P7/Cj6ZNmwKQmJhITEwMXbp0oWXLlvTv35+PP/6Y06dPl+jrIiIiUh4pKRcREXGh5s2b4+fnx+DBg1mzZg1+fn506dKFffv24efnR/PmzUt8Tnd39yKvLRYLDocDAH9/fzZs2MCkSZMIDQ3l+eefJyYmhpSUlEueb/LkyTz22GPce++9zJs3j4SEBIYNG0Zubm6xr+vt7X3ZmM+cOcOtt95KQkJCkY/du3fTsWNHbDYb8+fP55dffqFZs2aMGzeOJk2asHfv3uJ+WURERMolJeUiIiIuNHv2bBISEqhduzZff/01CQkJtGjRgrfffpuEhARmz55d6td0c3Oja9euvPbaa2zatIl9+/axcOFCADw8PLDb7UX2X7FiBe3bt+ehhx4iLi6Ohg0bkpiYWKJrtmzZEofDwZIlSy66vVWrVmzdupXIyEgaNmxY5MPX1xcwk/wOHTrw73//m/j4eDw8PPjhhx/+wldARESk/FBSLiIi4kL16tXDz8+PY8eO0adPH8LDw9m6dSv9+vWjYcOGpX7/9E8//cS7775LQkIC+/fv58svv8ThcNCkSRMAIiMjWb16Nfv27ePkyZM4HA4aNWrEunXrmDt3Lrt27eK5555j7dq1JbpuZGQkQ4cOZfjw4cyYMYO9e/eyePFipkyZAsCoUaNITk7m7rvvZu3atSQmJjJ37lyGDRuG3W5n9erV/Pe//2XdunUkJSUxffp0Tpw4wVVXXVWqXx8REZGypqRcRETExRYvXszVV1+Nl5cXa9asoW7duoSGhjrlWoGBgUyfPp0bb7yRq666ig8++IBJkyYVLpN/7LHHsNlsNGvWjJo1a5KUlMTIkSO5/fbbGTBgAG3btuXUqVM89NBDJb72hAkTuOOOO3jooYdo2rQpI0aMKGxpFhYWxooVK7Db7XTr1o2WLVvyyCOPEBgYiNVqJSAggKVLl9KzZ08aN27Ms88+y5tvvkmPHj1K9esjIiJS1lR9XURERERERMRFNFMuIiIiIiIi4iJKykVERERERERcREm5iIiIiIiIiIsoKRcRERERERFxESXlIiIiIiIiIi6ipFxERERERETERZSUi4iIiIiIiLiIknIRERERERERF1FSLiIiIiIiIuIiSspFREREREREXERJuYiIiIiIiIiL/D8WE7z5QE2WUwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from capymoa.evaluation import prequential_evaluation\n", "from capymoa.evaluation.visualization import plot_windowed_results\n", "from capymoa.datasets import Electricity\n", "from capymoa.classifier import HoeffdingTree\n", "from capymoa.classifier import SGDClassifier\n", "\n", "elec_stream = Electricity()\n", "\n", "# Creating a learner: using a hoeffding adaptive tree as the base learner\n", "ob_ht = CustomOnlineBagging(schema=elec_stream.get_schema(), ensemble_size=5, base_learner_class=HoeffdingTree)\n", "ob_sgd = CustomOnlineBagging(schema=elec_stream.get_schema(), ensemble_size=5, base_learner_class=SGDClassifier)\n", "\n", "results_ob_ht = prequential_evaluation(stream=elec_stream, learner=ob_ht, window_size=4500)\n", "print(f\"CustomOnlineBagging(HT) accuracy: {results_ob_ht.cumulative.accuracy()}, wallclock: {results_ob_ht.wallclock()}\")\n", "results_ob_sgd = prequential_evaluation(stream=elec_stream, learner=ob_ht, window_size=4500)\n", "print(f\"CustomOnlineBagging(SGD) accuracy: {results_ob_sgd.cumulative.accuracy()}, wallclock: {results_ob_sgd.wallclock()}\")\n", "\n", "results_ob_ht.learner = \"OB(HT)\"\n", "results_ob_sgd.learner = \"OB(SGD)\"\n", "plot_windowed_results(results_ob_ht, results_ob_sgd, metric=\"accuracy\")" ] }, { "attachments": {}, "cell_type": "markdown", "id": "c99c28f5-0eb7-49f1-b38b-7e6891d5f30a", "metadata": {}, "source": [ "## 4. CustomOnlineBagging and OnlineBagging\n", "\n", "* Testing and training our custom online bagging implementation alongside the online bagging implementation from `capymoa.classifier.OnlineBagging`." ] }, { "cell_type": "code", "execution_count": 3, "id": "3da81297-af63-4d30-a643-81f347304efa", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[custom] Online Bagging acc: 66.533\n", "[capymoa] Online Bagging acc: 60.357000000000006\n", "CPU times: user 17.4 s, sys: 51.5 ms, total: 17.5 s\n", "Wall time: 16.5 s\n" ] } ], "source": [ "%%time\n", "from capymoa.classifier import OnlineBagging\n", "from capymoa.evaluation import ClassificationEvaluator\n", "from capymoa.datasets import RBFm_100k\n", "\n", "RBFm_100k_stream = RBFm_100k()\n", "\n", "# Creating a learner without specifying the base_learner thus HoeffdingTree is used\n", "custom_ob = CustomOnlineBagging(schema=RBFm_100k_stream.get_schema(), ensemble_size=5)\n", "capy_ob = OnlineBagging(schema=RBFm_100k_stream.get_schema(), ensemble_size=5)\n", "\n", "custom_ob_evaluator = ClassificationEvaluator(schema=RBFm_100k_stream.get_schema())\n", "capy_ob_evaluator = ClassificationEvaluator(schema=RBFm_100k_stream.get_schema())\n", "\n", "while RBFm_100k_stream.has_more_instances(): \n", " instance = RBFm_100k_stream.next_instance()\n", "\n", " prediction_new = custom_ob.predict(instance)\n", " prediction = capy_ob.predict(instance)\n", " \n", " custom_ob_evaluator.update(instance.y_index, prediction_new)\n", " capy_ob_evaluator.update(instance.y_index, prediction)\n", " \n", " custom_ob.train(instance)\n", " capy_ob.train(instance)\n", "\n", "print(f'[custom] Online Bagging acc: {custom_ob_evaluator.accuracy()}')\n", "print(f'[capymoa] Online Bagging acc: {capy_ob_evaluator.accuracy()}')" ] }, { "cell_type": "code", "execution_count": null, "id": "ba55eedb-5578-4c0d-9b09-921a690729dc", "metadata": {}, "outputs": [], "source": [] } ], "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 }