{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "# Convolution based time series classification in aeon\n", "\n", "This notebook is a high level introduction to using and configuring convolution based\n", "classifiers in aeon. Convolution based classifiers are based on the ROCKET transform\n", "[1] and the subsequent extensions MiniROCKET [2] and MultiROCKET [3]. These\n", "transforms can be used in pipelines, but we provide two convolution based classifiers\n", " based on ROCKET for ease of use and reproducability. The RocketClassifier combines\n", " the transform with a scikitlearn RidgeClassifierCV classifier. Ther term\n", " convolution and kernel are used interchangably in this notebook. A convolution is a\n", " subseries that is used to create features for a time series. To do this, a\n", " convolution is run along a series, and the dot product is calculated. The creates a\n", " new series (often called an activation map or feature map) where large values\n", " correspond to a close correlation to the convolution.\n", "\n", "\"Windowing.\"\n", "\n", "ROCKET computes two features from the resulting feature maps: the maximum value\n", "(sometimes called a max pooling operation), and the proportion of positive values (or\n", " ppv). In the above example the first entry of the activation map is the result of a\n", " dot-product between $T_{1:3} * \\omega = T_{1:3} \\cdot \\omega = 0 + 0 + 3 = 3$. Max\n", " pooling extracts the maximum from the activation map as feature. The proportion of\n", " positive values (PPV) is $8 / 11$ in this example.\n", "\n", "A large number of random convolutions are generated, and the two features are\n", "combined to produce a transformed train data set. This is used to train a linear\n", "classifier. [1] reccomend a RIDGE Regression Classifier using cross-validation to\n", "train the $L_2$-regularisation parameter $\\alpha$. A logistic regression classifier\n", "is suggested as a replacement for larger datasets.\n", "\"ROCKET.\"\n", "\n", "ROCKET employs dilation. Dilation is a form of down sampling, in that it defines\n", "spaces between time points. Hence, a convolution with dilation $d$ is compared to\n", "time points $d$ steps apart when calculating the distance.\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": " name \\\n0 Arsenal \n1 HydraClassifier \n2 MultiRocketHydraClassifier \n3 RocketClassifier \n\n estimator \n0 \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
nameestimator
0Arsenal<class 'aeon.classification.convolution_based....
1HydraClassifier<class 'aeon.classification.convolution_based....
2MultiRocketHydraClassifier<class 'aeon.classification.convolution_based....
3RocketClassifier<class 'aeon.classification.convolution_based....
\n" }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import warnings\n", "\n", "from aeon.registry import all_estimators\n", "\n", "warnings.filterwarnings(\"ignore\")\n", "all_estimators(\n", " \"classifier\", filter_tags={\"algorithm_type\": \"convolution\"}, as_dataframe=True\n", ")" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": "(67, 1, 24)" }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.metrics import accuracy_score\n", "\n", "from aeon.classification.convolution_based import Arsenal, RocketClassifier\n", "from aeon.datasets import load_basic_motions # multivariate dataset\n", "from aeon.datasets import load_italy_power_demand # univariate dataset\n", "\n", "italy, italy_labels = load_italy_power_demand(split=\"train\")\n", "italy_test, italy_test_labels = load_italy_power_demand(split=\"test\")\n", "motions, motions_labels = load_basic_motions(split=\"train\")\n", "motions_test, motions_test_labels = load_basic_motions(split=\"test\")\n", "italy.shape" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "ROCKET compiles (via Numba) on import, which may take a few seconds. ROCKET does not\n", "produce estimates of class probabilities. Because of this, the Arsenal was developed\n", "to use with the HIVE-COTE meta-ensemble (in the hybrid package). The Arsenal is an\n", "ensemble of ROCKET classifiers that is no more accurate than ROCKET, but gives better\n", " probability estimates.\n", "\n", "\"Rocket\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": "0.9689018464528668" }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rocket = RocketClassifier()\n", "rocket.fit(italy, italy_labels)\n", "y_pred = rocket.predict(italy_test)\n", "accuracy_score(italy_test_labels, y_pred)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": "0.9698736637512148" }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "afc = Arsenal()\n", "afc.fit(italy, italy_labels)\n", "y_pred = afc.predict(italy_test)\n", "accuracy_score(italy_test_labels, y_pred)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "MiniROCKET[2] is a fast version of ROCKET that uses hard coded convolutions and only\n", " uses PPV. MultiROCKET [3] adds three new pooling operations extracted from each\n", " kernel: mean of positive values (MPV), mean of indices of positive values (MIPV) and\n", " longest stretch of positive values (LSPV). MultiRocket generates a total of 50k\n", " features from 10k kernels and 5 pooling operations. It also extracts features from\n", " first order differences. The RocketClassifier and Arsenal can be configured to use\n", " MiniROCKET and MultiROCKET. Simply set with rocket_transform as \"minirocket\" or\n", " \"multirocket\". Both work on multivariate series: channels are simply randomly\n", " selected for each convolution." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": "0.9718172983479106" }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "multi_r = Arsenal(rocket_transform=\"multirocket\")\n", "multi_r.fit(italy, italy_labels)\n", "y_pred = multi_r.predict(italy_test)\n", "accuracy_score(italy_test_labels, y_pred)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": "1.0" }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mini_r = RocketClassifier(rocket_transform=\"minirocket\")\n", "mini_r.fit(motions, motions_labels)\n", "y_pred = mini_r.predict(motions_test)\n", "accuracy_score(motions_test_labels, y_pred)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "RocketClassifier has three other parameters that may effect performance.\n", "`num_kernels` (default 10,000) determines the number of convolutions/kernels generated\n", " and will influence the memory usage. `max_dilations_per_kernel` (default=32) and\n", "`n_features_per_kernel` (default=4) are used in 'MiniROCKET' and 'MultiROCKET. For\n", "each candidate convolution, `max_dilations_per_kernel` are assessed and\n", "`n_features_per_kernel` are retained.\n" ] }, { "cell_type": "markdown", "source": [ "## Performance on the UCR univariate datasets\n", "\n", "You can find the convolution based classifiers as follows" ], "metadata": { "collapsed": false } }, { "cell_type": "code", "execution_count": 14, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "('Arsenal', )\n", "('HydraClassifier', )\n", "('MultiRocketHydraClassifier', )\n", "('RocketClassifier', )\n" ] } ], "source": [ "from aeon.registry import all_estimators\n", "\n", "est = all_estimators(\"classifier\", filter_tags={\"algorithm_type\": \"convolution\"})\n", "for c in est:\n", " print(c)" ], "metadata": { "collapsed": false } }, { "cell_type": "markdown", "source": [ "We can recover the results and compare the classifier performance as follows:\n" ], "metadata": { "collapsed": false } }, { "cell_type": "code", "execution_count": 20, "outputs": [ { "data": { "text/plain": "(112, 5)" }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from aeon.benchmarking import get_estimator_results_as_array\n", "from aeon.datasets.tsc_datasets import univariate\n", "\n", "names = [t[0].replace(\"Classifier\", \"\") for t in est]\n", "names.append(\"MiniROCKET\") # Alternatve configuration of the RocketClassifier\n", "results, present_names = get_estimator_results_as_array(\n", " names, univariate, include_missing=False\n", ")\n", "results.shape" ], "metadata": { "collapsed": false } }, { "cell_type": "code", "execution_count": 21, "outputs": [ { "data": { "text/plain": "(
, )" }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "
", "image/png": "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iIhINSYWRERERESkGhMLKjY8PT3h4uLCdRT+Q+zzosF+Lxrs96LBficqObjyNhUb8fHxiI2NLeowShX2edFgvxcN9nvRYL8TlRy8Y0FERERERKoxsSAiIiIiItWYWBARERERkWpMLIiIiIiISDUmFkREREREpBoTC6JCxqkUiwb7vWiw34sG+52IXgWcbpaokHEqxaLBfi8a7PeiwX4nolcB71gQEREREZFqTCyIiIiIiEg1JhZERERERKQaEwsiIiIiIlKNiQUREREREanGxIKIiIiIiFTTiIgUdRBEuWFiYoLU1FQYGBigYsWKRR1OrsXFxSEjI6PYxQ0w9py8eOrUaDQvfZ8Xt27dgohAo9HAyclJfbD/obz0u5o+Kgz8vheNzNiNjY2RkpJS1OEQkQpMLKjYMDQ0REZGRlGHQUREhcDAwADp6elFHQYRqcAF8qjYMDMzQ3JyMgwNDVGhQoWiDifX/v33X6Snpxe7uAHGnhMRwa1bt+Dk5KTcocjpfV7cvn0baWlpMDIygoODQ4HHXpjy0u9q+qgw8PteNDJjNzMzK+pQiEgl3rEgIsqH1NRUmJiYICUlBcbGxi99r6btkqq0HCcRUWnBwdtERERERKQaEwsiIiIiIlKNiQUREREREanGxIKIiIiIiFRjYkFERERERKoxsSAiIiIiItWYWBARERERkWpMLIiIiIiISDUmFkREREREpBoTCyIiIiIiUo2JBRERERERqcbEgoiIiIiIVGNiQUREREREqjGxICIiIiIi1ZhYEBERERGRakZFHQARUXHw4MEDnDt3TnmflpYGADh69CiMjIxe+j4vstu3Xr16sLGxUXUcREREhUUjIlLUQRARveqOHDkCLy+vIo3h8OHDeOONN4o0hoKUmpoKExMTpKSkwNjYuKjDISIilfgoFBERERERqcbEgoiIiIiIVOOjUEREuaBvjEXr1q0RFhamjKnI6X1eZLdvSRtjwUehiIhKFiYWRET5kPWi+GXv1bRdUpWW4yQiKi34KBQREREREanGxIKIiIiIiFRjYkFERERERKoxsSAiIiIiItWYWBARERERkWpMLIiIiIiISDUmFkREREREpBoTCyIiIiIiUo2JBRERERERqcbEgoiIiIiIVGNiQUREREREqjGxICIiIiIi1ZhYEBERERGRakwsiIiIiIhINSYWRERERESkGhMLIiIiIiJSjYkFERERERGpxsSCiIiIiIhUY2JBRERERESqMbEgIiIiIiLVmFgQEREREZFqTCyIiIiIiEg1JhZERERERKQaEwsiIiIiIlKNiQUREREREanGxIKIiIiIiFRjYkFERERERKoxsSAiIiIiItWYWBARERERkWpMLIiIiIiISDUmFkREREREpBoTCyIiIiIiUo2JBRERERERqcbEgoiIiIiIVGNiQUREREREqjGxICIiIiIi1ZhYEBERERGRakwsiIiIiIhINSYWRERERESkGhMLIiIiIiJSjYkFERERERGpxsSCiIiIiIhUY2JBRERERESqMbEgIiIiIiLVmFgQEREREZFqTCyIiIiIiEg1JhZERERERKQaEwsiIiIiIlKNiQUREREREanGxIKIiIiIiFRjYkFERERERKoxsSAiIiIiItWYWBARERERkWpMLIiIiIiISDUmFkREREREpBoTCyIiIiIiUo2JBRERERERqcbEgoiIiIiIVGNiQUREREREqjGxICIiIiIi1ZhYEBERERGRakwsiIiIiIhINSYWRERERESkGhMLKpaWLl2K+vXrw9raGtbW1mjevDl27dqVbf0VK1bAy8sLtra2sLW1hY+PD06cOKFVZ/DgwdBoNFqvDh06aNVJSEiAv78/rK2tUbZsWQwbNgyPHz/WqnP27Fl4eXnBzMwMlSpVwrx58wruwImIVJo7dy6aNGkCKysrVKhQAd27d8eVK1dy3OfXX3+Fp6cnypYtizJlyqBhw4b46aeftOo8fvwYo0ePhouLC8zNzVG3bl0sW7ZMq867776LatWqwdzcHOXLl0e3bt1w+fJlrTr79+9HixYtYGVlBUdHR0ycOBFpaWkFc/BEVKiYWFCx5OLigsDAQJw+fRqnTp1CmzZt0K1bN1y4cEFv/fDwcPj5+SEsLAwRERGoVKkS2rdvj9jYWK16HTp0QFxcnPL6+eeftcr9/f1x4cIF7Nu3D6GhoTh06BBGjBihlD98+BDt27eHq6srTp8+jfnz52P69OlYvnx5wXcCEVE+HDx4EO+//z5+//137Nu3D6mpqWjfvj2ePHmS7T52dnaYMmUKIiIicPbsWQwZMgRDhgzBnj17lDrjx4/H7t27sW7dOly6dAnjxo3D6NGjERISotRp3LgxVq1ahUuXLmHPnj0QEbRv3x7p6ekAgKio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" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from aeon.visualisation import plot_boxplot_median, plot_critical_difference\n", "\n", "plot_critical_difference(results, names)" ], "metadata": { "collapsed": false } }, { "cell_type": "code", "execution_count": 4, "outputs": [ { "data": { "text/plain": "(
, )" }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "
", "image/png": "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XC7dc889mjhxor744gt9+umnkrgxhpYMi6SDKJk/f77OOuss7bPPPgqFQlq2bJlOOukkTZ8+XZJUVFSkhx56SF988YVeeOEFjRw5MsYVA12DaZrhLqu/dtJJJ+m1117TSy+9pAMPPLCdKwPw6/a5+SZ2XV2dZs2apeuvv17XXXedrr322lb3BxBdm9uk1+tVU1OTsrOzZbPZVF1drVNPPVUffvih3n33XQ0ZMoT2iTBHrAtA5/Tpp5/qoosu0i233KJzzjlH33zzjQ488EDddNNNqq6u1syZM/XHP/5RgUBACQkJys7OjnXJQJew5QXA3Llz9c0338iyLA0dOlRnnHGGnn76aZ144ok65phjNH/+fI0bNy7GFQNdx5bt895779WPP/6o77//Xuecc472339/XXHFFbLZbJoxY4YMw9A111wjm80WDgEAomtzW3vllVd03333acmSJdprr72055576uqrr9ajjz6qs846S+PGjdO7776rwYMH0z4hie7liALLsvTFF1/oyCOP1DnnnKPi4mIdffTROuKII3TTTTfp/vvv14033ihJOuSQQzRnzhz17t07xlUDXcPmC/orrrhC06ZNk2EY8vv9uvzyy3XBBRdIkp566ikdfvjhOu644/Tmm2/GslygS9ncPq+66ir94x//UP/+/TVmzBj9/e9/11VXXaVAIKAzzjhD11xzjWbOnKkrr7xSkrigB9qJYRh68803dcIJJ+jQQw/VvHnzlJ2drb///e96++23lZ2drQceeEBjx47V0KFD9cMPP9A+IYnQjSgwDENnnnmmTjrpJPl8Pp122mkaN26c5s6dq+OOO06ZmZm64YYbdNVVV0mSkpKSYlwx0PltObasqKhI8+bN00svvaS7775b48aNU1NTk4YOHSqp+cL/ySef1MiRI3XvvffGqmSgS/rwww81f/58vf7667rssst0xBFHqLi4WIcffrjcbreys7N1zjnnaMqUKeGeKgCio76+Pvx7y7LU0NCguXPn6uqrr9all16qXXfdVa+88orOPfdcHXzwwZKk/Px8PfDAAzrxxBPlcNCpGM0I3dhpmz/wfT5feFtSUpLGjBmjFStWaOPGjTr//PMlSYmJiRo3bpzmzJmjSZMmxaReoCu59NJL5fV6W4wpW7t2rQoKCrTXXntp/vz5mjRpkmbOnKlJkyaptrZWRUVFkqQ333xTb7zxRqxKBzq9a6+9VgsXLmyxrampSR6PRyNHjtTzzz+vww8/XPfdd59OPvlk1dXVqaioSElJSbrsssu0YMECJiIFouT+++/XlVdeqVAoFO4inpSUpPLycg0ZMkRr1qzR4MGDdfjhh4dvUL/88sv6+OOPlZubq8cff1wDBgyI8XeBeEHoxk7Z/EPozTff1KRJk3T44YfrrbfeUmVlpaTmJ2bLly/Xu+++K9M0NWvWLJWUlOjYY49Vv379Ylw90Lm99NJL8nq9W/UmycjIUM+ePfX888/rtNNO0x133KFzzjlHkvTRRx/p5Zdf1rp16yQxQzIQLR9++KFWr14d7mGyWV1dnUzT1Guvvaazzz5bM2bM0OTJkyVJ7733np555hmtW7dOaWlp4cBN91Wgbf3www9qamrSRRddJLvdrmAwKKm5fSYlJem///2vxo0bp0MPPVRz5syRJJWXl2vevHn68ccfZZpmiyVzAUI3dophGHr33Xd11FFHKSEhQVVVVZo0aZJmzZqltWvXasCAAbrooos0ffp07bbbbnrooYd09913KzMzM9alA53a6aefrlAopDlz5sjhcOi5557Txo0bJUndu3fX66+/rr/97W+69dZbw4G7sbFR9957r+rq6lRQUBA+FzOvAm1rr732ktfr1eOPPy6Hw6F58+aFe5gcddRRMk1TRxxxhGbOnKkpU6ZIan4C/uCDD6qhoUGFhYXhcxG4gbZ1zjnn6IILLtC5556r/v376+OPP9a5556r0tJSpaSk6Nxzz9WcOXOUlZWlhx9+ONwG77nnHn366ac68MAD+dzEVlgyDDulpKRE9913nwoKCsJdyG+66SY9++yzOvbYY3XJJZcoISFBX375pVauXKn9999fvXr1im3RQCc3ceJEFRUVqbi4WJK0ePFi/eUvf1HPnj31zDPPKDMzU//617903HHH6dJLL9X++++vpKQk3XrrrSorK9PChQvlcDh4ggZEwUUXXaS33npL3333nVwulyoqKrTPPvto991310UXXaSxY8fqo48+0plnnqn09HRdc801qqys1LPPPqv169fr66+/pn0CUfL+++/rpJNO0gsvvKAxY8ZIkh555BHde++92nvvvXXjjTcqNzdX99xzj6ZOnaqTTz5Zbrdbfr9fL7/8st555x3tueeeMf4uEI+4DYMd9sMPP+iAAw7Qiy++qLS0tPD26667Tn/729/0/PPP67777lNlZaX2228/nXrqqQRuIMqqq6u1bt06TZs2TZL0f//3f+EL94aGBp188smqrKzUMccco8cee0yvvvqqJk2apGuuuUZJSUn68ssv5XA4FAqFuKAHouDnn3/WuHHj5HK5dN1112njxo168MEHVVFRoVmzZunjjz/WPvvso6efflpJSUm6+OKL9dBDDyknJ0dfffUV7ROIoqamJlVXV2vo0KH697//rWOOOUaTJk3SmWeeqUWLFoVvgl188cV6+eWX1dDQoJKSEmVlZemTTz4hcGObeNKNnTJ58mQ98sgjOu+883TjjTfK4/GE37vlllt077336uKLL9bll18uu93ORQLQDiZNmqSXX35ZRxxxhB577DGtW7dOubm5evbZZ/XAAw8oPT1dTzzxhLKysrR+/Xr5/X653W7l5eXJMAwFg0FmXAWi5KGHHtL06dO155576v3339fChQu122676T//+Y+mT5+ugoICTZ06Vfvss48kac2aNcrKylJiYiLtE4iypqYmHXfccfriiy+0ceNGPfLIIzr11FMlSXfffbdefPFFDRo0SDfffLNyc3PV0NCgpKQkhUIhxnDjNxG6sd221ZVtypQpev3113XllVfqxBNPbBG877zzTh199NHq27dve5YKdDmfffaZRo8eHf66oKBAVVVVevrpp/WXv/xFkhQKhfTcc8+Fg/eTTz651fwKpmkyFg1oY3PnztXpp58uqXmlj3322UdfffWVpk2bpn/84x/h/TYH7x49emjKlCkaO3Zsi/PQpRxoe7fddptGjBihP/7xj5KaZy2/6KKLlJGRobVr1yoxMTG878yZMzVv3jwNHjw43NVcom3i93Flhe2y+YfJBx98oKuuukoXXnihZs6cKUmaPXu2Dj30UN1555165plnVFNTEz7usssuI3ADUXbrrbfq0ksvDS8b9M4778jlcmnYsGG68MILtWjRIkmS3W7XCSecoClTpqi2tlaHHXaY6urqWpyLwA20rXvvvVf//e9/FQqFJEnfffedgsGgTj/9dD3xxBOaPXt2eN+DDjpIN910kzZs2KCbbrpJ3377bYtzcVEPtK3i4mItXbpU3bt3l9R8vbtmzRrddtttGjZsmPr376/S0tLw/lOnTtXxxx+vDz/8ULfcckt4dQ/aJn4PT7qx3ebPn68zzzxThx9+uHJzc3X33Xfrr3/9q5599llJzV3N33nnHZ199tmaNGlSi3HeAKJnzZo1ys/Pl8Ph0OrVq9WzZ0+Vl5crJSVFRx99tBYtWqS3335bgwYNktT8xPuxxx7Tl19+qQceeICgDURRVVWV0tLSZLfbwz1SLMtSaWmp7r77bj399NO65pprwsuCSdJrr72mV199VQ8++CDtE4iyzV3EP/jgA0nSfvvtJ0latGiRpkyZohUrVmjhwoXhp9qS9MADD+hPf/oTcxVhuxG6sV1Wr16tgw46SOeff74uvPBCrV+/XoMHD9aJJ56oe++9N3xRcOKJJ+qnn37S//73P6Wnp8e2aKCLee2113TEEUfojTfe0CGHHCLLslRRUaFTTz1V3333XYvgvWU3crqUA9GxZdt6++23NXnyZJ122mmaPn26JGn58uV6+OGH9dRTT20VvFs7B4C2s2Xbqqmp0TnnnKNPP/1Uc+bMCX+G/vDDDzrvvPO0YsUKffXVV8rJyYlx1eio+CmO7eL1epWamqoLL7xQxcXFGjVqlI477jjdf//9stlsev/99yVJzzzzjN544w0CN9AONndr22zgwIE67bTTdMopp2jBggUyDEPdunXTE088oaFDh+rQQw8Nd1fd8iKeC3qg7f06LA8ePFiHHXaY3nrrLd10002SpL59++qss87SKaecoltvvVV33nnnVuehfQLRsblLeCgUksfj0cUXX6wDDjhAl19+efgzdNCgQXrggQe06667hnuRATuCn+TYLgkJCfL7/XrllVd0wAEH6LDDDtOsWbMkSd9//71mzpyphQsXSpLy8vJiWSrQJfz6Cdry5cvVr18/TZ8+XUcddZT+9re/acGCBZKkbt266fHHH1deXp6uv/76WJYNdAlbts9nnnlGX3/9tfLz83Xddddp1KhRev3117cK3ocddpg+/PBD0QERiL7NcxW9/fbbuv7661VeXq699tpLU6ZM0dChQ7cK3jNnztSBBx6o6urqWJeODorQja1s/sD/+uuv9dVXX6mhoUHdunVTz549dfLJJ2vUqFF66KGHwkuWPPnkk9q4caMKCwtjWTbQZViWFb6gv/rqq3X22Wfr888/V319vXr37q0rr7xSxxxzzFbB++2339b8+fNjWTrQ6W3ZPqdNm6bLL79c//3vf+X1etWtWzddffXV2muvvfTqq6+Gg3efPn10zTXX6KWXXpJhGARvIMoMw9C//vUvHX/88WpoaFBlZaUkadSoUbrgggs0ePBgXXbZZXrrrbdkGIaGDh2ql156Sf37949x5eioGNONFjbf+XvppZd07rnnaurUqTr11FOVn5+vV199VVOmTNF+++2n448/XllZWXrxxRc1d+5cvf/++xoyZEisywe6lBtvvFEPPPCAXnzxRf3hD39QcnJy+L0NGzbommuu0SuvvKJHHnlERx11VPg9xogC0XfLLbfo7rvv1oIFC7THHnvI7XaH297GjRt1yy236KOPPtJ+++2n22+/PXwcSw8B0ffll19qwoQJuuuuu8LL+UlSY2OjEhMT9eOPP+qWW27RO++8oyeeeCK8nBiwoxyxLgDxxTAMvfXWWzrllFN0991367jjjguPz/7zn/8s0zQ1e/ZsnXTSSerbt6+SkpL03nvvEbiBdlZRUaG33npLM2bM0H777acNGzZo0aJFeu6557T77rvrxBNP1K233qqamhrNmTOnRegmcAPRVVtbq08//VQzZszQ8OHDVVxcrJ9++kkPPvigRo8erZNPPlnXXnutpk6dqurq6hZBm8ANRN/y5cv1hz/8Qaeffrq8Xq/eeOMNPfXUUyovL9cRRxyhK6+8Uueff76SkpLUu3fvWJeLToAn3WghFApp0qRJcrvdmjNnjhobG7Vy5Uo9+eSTKigo0LHHHqv8/HwtX75cycnJSkpKYmkwoB38+ul0SUmJxo0bp8mTJ2uXXXbRvHnztGLFCnm9Xtntdv31r3/VNddcozVr1qh79+4EbSCKft0+6+vrNXz4cI0aNUqnnnqqZs2apYqKCqWkpOirr77SGWecoVtvvVUbN25Uenq6bDYbT7iBKPp1+3rmmWd08skn67777tMzzzyjrKws5eXlye1269VXX9Ubb7yhQYMGhZ98AzuLJ90I/yD69ttvlZ2drerqank8Hn3xxRd65JFHtHLlSv3888/Kzc0NL6XQt2/fWJcNdBlbXtAXFRVp8ODBysvL02GHHaY777xTFRUVuuCCC3TGGWfowAMP1JFHHhmeYXXzXAt0KQeiY8u29eKLL2rAgAEaMmSIZs6cqXPOOUevv/66zj33XB188ME64IADdMUVV2jp0qUKhULKzMzc6hwA2tbm69z//Oc/+uCDD3TNNdfoxBNP1KJFi/TEE09oxIgROuOMMzRixAjV19frvffeC0+YRuBGW+EnPGQYhl555RXtueeeqqmp0V/+8he9/vrrmjBhgqqrqzVp0iStXLlShx12mEpLS5WamhrrkoEuY8tJma655hqdccYZevvttxUKhXTnnXfq5Zdf1ldffaXbbrtNBx54oCSpoaFBKSkpLc7DBT3Q9n49adoVV1yhV199VfX19frTn/6kRYsWaeHChfrHP/6hAw44QKZp6uuvv1avXr1kt9vD56F9AtGzedK0E044QZWVlVq6dKkkacaMGXrzzTf1wAMPaMSIEZKkf/zjHwoGgzxcQpvjSTdUU1OjZcuW6Y477tDuu++u3XffXaNGjVJtba1GjBgRXgu4urpaSUlJamhoUFJSUoyrBrqGzd3hbrjhBv3zn//Uiy++qMGDB4cv2Pfcc09JUlVVlVatWqXrrrtOJSUluuGGG2JVMtBlbG6fN998sx5++GG9+eabGjx4sBISEmRZltLT05Wenq6GhgZ9+OGHuu+++1RSUqI333xTEpOmAe3h888/16RJkzRz5kxNnDgxvD0YDIZ7m7zwwgv63//+p3nz5uk///kPy9+izRG6u7jvvvtOI0eOVJ8+fXTzzTeHtw8YMCD8+++//17PPfecHnnkEX344YcEbqCdlZWV6a233tI999yj/fbbT2VlZVq4cKFeeOEFjRgxQgceeKC+/fZbXXHFFcrKytJXX30lh8OhUCjU4mkagLZXWVmp999/X7Nnz9bIkSO1Zs0aLV26VP/85z81atQoHXfccVqzZo0eeeQRSQq3z2AwGF56E0D0fP/999p77701ceJEVVVV6X//+5+efPJJlZSU6PTTT9exxx6rqqoqrV27Vu+9954GDRoU65LRCfHTvov49XixzRfjOTk5OuWUU/Too4+G1yjc8kL9xx9/1KWXXqqysjK9//77Gjx4cEzqB7oyn8+nZcuWqampSf/5z3/09NNP68cff1RVVZVeffVV1dTUaNKkSbrrrru07777ym63c0EPtJOkpCStXbtWb7/9tgoKCnTPPfdo3bp1yszM1KWXXiqfz6fLL79cN910k/r37y+bzUb7BNqR0+nUm2++qblz5+rxxx9XcnKycnJylJ6erhtuuEETJkzQOeecoxNPPJEhlIgaZi/vQn766Sc9+eSTOvvss1VYWBgO4Rs2bNC0adP0wgsv6O2339a+++7bosvb119/rW7duqlHjx6xLB/oErY1odLFF1+sxx9/XIFAIDwp08EHH6w//vGPGjp0qGbOnBnelyfcQHRsq30+/fTTuu6661RWVqbzzz9fBx98sA488EBdcsklKi0t1dNPPx3+TGXSNCB6tjVk45JLLtFrr72mAw88UBMnTtRee+2luro67bXXXpo7d254TDcQLYTuLiIQCGifffbRl19+qX79+unII4/UyJEj9de//lVS8/ImkyZN0iuvvKK3335b++yzDxfuQDvb8mL8+++/V0NDg7KyssITunz44YdKT0/XHnvsET5m/PjxGjt2rK699tqY1Ax0FVu2z88//1wVFRXadddd1bNnTzmdTlVVVamiokL9+/eX1Hzx/8c//lEjR47UbbfdFsvSgS5hc+D+5JNP9MUXX8jr9WrChAkaMWKEDMNQWVmZcnJywvtPmzZNr7zyit55550W24FoIHR3IXfccYccDof22GMPffTRR7rvvvv0pz/9Sfvuu6/OOecceb1eXXbZZXrhhRf08ssva+zYsbEuGegytrw7f8011+iVV15RcXGxRo0apZEjR+qWW24J71tbW6sVK1bommuuUXFxcXiMKIDo2LJ9Xn311Xr66afD3cRPPvlknXbaaRo4cKAkqa6uLryiwNq1a7Vw4ULaJxBlm9vo/PnzdcYZZ2js2LFaunSpcnJydPDBB+uqq64K3zR744039Morr+jFF1/Uf//73/CEpEA00b+pCxk5cqRuuOEGZWRk6IYbbtAPP/yg/v3765JLLtE+++yjF154QaeddpqOOuoonXzyyWpqaop1yUCXseUsyI888ojuvfdeLVu2TD169NADDzygKVOmhPd95513NGXKFPl8vvAFfSgUilXpQKcWCoXC7fPWW2/V448/rscffzy8lOb//d//6e6779aSJUskSR9//LEeeOABmaapL7/8kvYJRNHmZ4eGYeijjz7SBRdcoDvvvFP//ve/NW/ePH355Zd66qmndMMNN8iyLDU0NGjp0qUqLi7W+++/T+BGuyF0dyFjx47V2WefrXvuuUdNTU3Kz8/X4sWL1atXL/Xv31/PPPOMDjzwQHXv3l2ffvqpEhISYl0y0Kl9/PHHLb7+9ttv9corr+jpp58Oz0j+wgsv6OCDD9Zbb72lSy65RJJ0xBFH6MYbb9SCBQvkdDoVDAYZCgK0sYcffliSZLfbZZqmiouL9cEHH2jmzJkaO3asXnvtNT333HM66KCD9Prrr+uOO+7QqlWrdNBBB2natGl6/fXXaZ9AlNx222164403ZBiGLMuSZVn6+uuvdfjhh2vSpElauXKl/vznP+voo4/Wfvvtp0ceeUS33367EhMTdfHFF+u5555jlnK0LwtdyosvvmiNGTPGCoVC1plnnmnl5uZa33//vWVZlrV48WLr/vvvD38NIHrmzp1rGYZhPf/88y22P/DAA1ZFRYX17rvvWnl5edbDDz9shUIh69BDD7VcLpd14oknttg/GAy2Z9lAl/Cf//zHMgzDOv/888PbvF6v9eabb1pVVVXWp59+ahUUFFizZs2yLMuyJk+ebGVlZVl//etfrVWrVoWPCYVC7V470Nk1NTVZf/vb3yybzWb997//DW+vqKiwFi1aZDU2Nlr777+/NXHiRMuyLKusrMzKzc21CgoKrBtvvDFWZaOLY5BRF3Psscfq/vvvl9PpVF5ent56663wnb6BAweGx6QBiK7TTjtNixYt0umnny5J4UkNzz33XBmGoeeee07HHnusTjvtNNlsNg0aNEgNDQ1KS0trMaETT9CAtjdixAg9/PDDuvrqq2VZlmbNmqXU1FTtvffeSktL07x587T//vvr7LPPliRlZmaqT58+ysrKUmFhYfg8zFIOtD23263Zs2crNTVVf/rTn/Taa6/poIMOUkZGhrKysvTNN9+ovLxcd999tySpurpaw4cP15AhQ8KfuUB7I3R3IdamSSauvPJKlZSU6LbbbtPQoUO3ubwCgOi68847ZZqmTjnlFEnNwXtzW1yxYoWSkpLkdDoVCoW0evVqnXLKKTrjjDNkGAbLDgFRlJ6erjPPPFOWZYWD9+zZs5WWliZJ8nq9qq2tVVVVlXJycvTTTz/pqquu0tFHH037BKJgc5tqbGyUJHk8Ht1///2SpMMPPzwcvKXm612fz6dPP/1Uu+++u5566im5XC5deeWVSk9Pj9W3gC6O0N2FbL6YHz58uEzT1MKFC3XUUUcRuIF29P777+vbb7/VmjVrdPvtt2vmzJmy2WwtgrdlWZowYYKeeOIJ/elPf5LX61V1dbWeffbZ8Pg1LuiBtve///1PH3zwgaqrq3X55Zfr+OOPl2EYmjZtmiRp9uzZkqRBgwbpf//7n4499ljV1NTI7/friCOOoH0CUbA5cP/888+aMWOGvF6v9t9/f1144YWaMWOGDMNoEbwLCws1ZswYzZw5U3fddZe8Xq/efvttAjdiitDdBeXm5ur666/Xueeeqz//+c8aNWpUrEsCuoS5c+fq1ltv1aGHHtqiC+qdd94pSTrllFNkWZaOP/54/e1vf5NhGPr8889VWFioWbNmyW63KxQK0aUciIJHH31UN910k/7yl79o5MiRKigokPTL0I+rr75apmnqwQcf1IUXXii73a7169crEAjolltuCc9STvsE2s7mwL1o0SIdfPDBOuGEE3TkkUdqwoQJkpqHdsyYMUNS8xPvl19+WYcccojuuOMOffnll6qoqNABBxygPn36xPLbAFinu6tat26dTj75ZD355JPq0aNHrMsBOr3nnntOZ5xxhh5//HEdccQRcrvdW+1z2WWX6f7779fjjz+uE044Yav3g8Eg6/0CUTBv3jxNnDhRjz32mI455piteoDV1tbqhRde0NVXX62jjz5ac+bM2eoctE8gOoqLizV27Fgde+yxuv3228PbtxzGUVVVpWnTpumxxx7TK6+8Eg7lQLzg06GL6t69u958802WBQPawYYNG3T//ffrxhtv1HHHHbfN/TY/8T7jjDPU1NTUYsIXy7K4oAeioLq6Wo888oguuugiHXvssa3uk5qaGm6711xzjbxer5555pkW+9A+gehYsGCBevTooUsuuaTFPERbDuPIyMjQrbfeKkk69NBDVVRUpHHjxsWkXqA1fEJ0YQRuoH3U1NRo2bJlGjNmTKvvb3m3/s4771RVVZXmzp3bInQz9wIQHdXV1Vq4cKHOOeecVt/f3D4TExN15plnqr6+Xm+//TaTpQHt5N1335Uk5efnb/Xe5hDe1NSk1NRU3X333UpMTFReXl47Vwn8Nj4tACDKysvLVVFRoYyMjFbft9lsWrlypS677DJJ0j//+U+988477Vki0GXV1NTINE15PB5Jzd3Et2Sz2VReXq4rr7xSVVVVOvPMM/Xqq6/KZrPJNM1YlAx0KQkJCTIMQ36/f6v2ufmG9PXXX69HHnlEiYmJuuuuu7TbbrvFolRgmwjdABBlKSkpstvt+s9//rPNi/TPPvtMpaWl4QuKzcsOAYiu7t27KxgM6l//+pek5m7iv2577733nsrLy+VyuZScnMws5UAUbNnuAoFA+PfDhg3Txx9/rG+++abV9llRUaG1a9eqe/fukkS7RFziXyUARNmee+6po446Sv/4xz/0ySefbPV+U1OTXnzxReXm5rYYF8qFAxBdoVBI2dnZuuiiizRnzhzde++9klq2PZ/Pp2effVbp6elKTk4Ob2fIB9C2bDab1q9fr/r6ejmdTr322mt68cUXdfTRR2vPPffU0UcfrSVLlmz12Thr1iz99NNPGjZsWGwKB7YDs5cDQBva1jjPH3/8UaeccorWr1+v2bNn64ADDlBWVpYWLVqkyy+/XOXl5frss8/kcDhaTBQDoO1sq30uWrRI1113nV5//XVdd911Ouecc+R0OvXDDz/o5ptvVklJiRYuXEj7BKKopqZGxx57rJKSknTcccfp1FNP1fz583XUUUfp1Vdf1eWXX67q6mpNnz5dw4cP17p16/TWW2/p+eef13vvvaehQ4fG+lsAtonQDQBtZMsL+ldffVXr1q1Tamqqxo8fr9zcXH311Ve64oor9L///U8FBQWy2+3yeDzKysrS22+/LafTyTq/QJRs2T6ffvppFRcXq6KiQldccYVyc3P1ww8/6N5779UjjzyinJwc1dfXa8CAAcrKytJrr71G+wSizO/3a/78+br22mu1Zs0azZo1S2eddZak5gnT3n//fd1///16+eWXZVmW+vbtq549e2rmzJnaY489Ylw98NsI3QDQBrZ8+nXVVVdp7ty52n333bV48WKNGTNG5513nsaPHy9JeuKJJ8Ljt/fcc08ddNBBstvtrPMLtIOrrrpKTz75pIYPH66ysjJt2LBBDz30kA455BAFAgEtXbpUH3/8sSzL0tChQzVy5EjZbDbaJxBFmz9Df/zxR40bN05ut1v77LOPHnnkkRbDOqTmnin19fUqLCxUWlqaUlNTY1Q1sP0I3QDQhu6++27dfffdmjdvnkaNGqVZs2bp4osv1rhx43TBBRfoiCOOaPU4nqAB0ffggw/qlltu0auvvqphw4apqKhIBx10kAoKCvTAAw/o4IMPbnU5TZYHA9pHZWWl1qxZo59++kl33nmnevbsqSeeeELJycny+/1yuVzcAEOHxCcIAOyELWdRramp0fLly3X11Vdr1KhRmj9/vq677jpdfvnlKikp0a233qrXXnut1fMQuIG2t2X7tCxL69ev14033qhhw4bppZde0jHHHKPHHntMI0eO1JQpU/Sf//xHTU1NW52HwA1Ex+Znf0uXLtXChQu1ZMkSDRs2TH/961918cUXq7i4WBMnTlRDQ4NcLpcefPBBvfTSS+KZIToannQDQBt4+eWXNXLkSJWUlKiwsFClpaU68sgjdeGFF+qiiy7Ss88+q7PPPluDBg3SbbfdpgMOOCDWJQNdxl133aUpU6boxx9/VH5+vmpqanT00Udr8uTJuvDCC/Xee+9p3LhxcjqdKioq0r777hvrkoFOb3OX8vnz5+uSSy5Rbm6uli5dqvHjx2vKlCnaf//99eSTT+qhhx6S3+/X3nvvrdmzZ+v777/X7rvvHuvygYhw6xYAdsCWT9BuuOEGnXjiifL5fBo0aJC6deum999/X927d9fEiRMlNU8Qs//++2ufffbRfvvtF6uygS5hy/b5f//3f7r88sv1/fff6w9/+IPy8/O1ePFipaWlhYd7hEIhXXXVVbr88su11157xapsoEsxDEMfffSRzjzzTF177bX6/PPP9fTTT2v+/Pn6+eefZbfbddJJJ2n69OnabbfdtGLFCn377bcEbnRIDIgAgB2wubvpqlWr5HA4NG/ePPXu3Tvc5a2hoUH19fXhtUPnz5+vCRMm6MILL5TEGFEgWrYc7/nf//5XpaWl+te//qURI0aE99mwYYOWLl2qqqoqORwO3X333erfv79mzpwpiTkWgGjb/JT7gw8+0Pjx43XWWWdp2bJluvjiizVp0iSdffbZkprb86GHHqpDDz1UjY2NSkxMjHHlwI7hig8AttO9996r2tra8Nevvfaa+vTpo1mzZoUvBDbPYL7//vursbFRp5xyigYMGKAVK1Zo8uTJkpovNgjcQNs6//zzVVxcHF5Le/MTtLvuuktJSUmSmi/gJem8887ToEGDNGbMGO27775as2aNbrvttvC5CNxAdGy+MV1fXy+p+QbYgAEDZFmWxo4dqwMPPFAPPfSQJOmFF17QvHnzFAgEJInAjQ6Nqz4A2A6LFy/WJZdcoilTpqiurk6SNHr0aF100UUqLy/XqlWrJDU/IbMsS6NGjdITTzyhadOm6fLLL9fXX38tp9OpYDAYDuYA2sbPP/+s/2/vPqOivNb3j39nABGwoQQxQVATNJYTbLEsURJbLBiJotFk6Q+xxZKiMRbUGBtiPSpijgWNBUXN0YgiRI4VY4kxGmNsKLEuK2AFKTPzf+GfiaSckoijcH3e6BpmnnXPi72e55q99713795N69atuXz5MgaDAU9PT0JCQrCzs2PdunUA2Nvbk52dDcCePXtYvnw5c+fO5dChQ9bxKSIFx2AwEBcXR1hYGAD16tUjIiICNzc3unTpwvz58633yK+//pqkpCRMJpMtSxZ5LNRITUTkv7Rnzx46dOhAu3btWLBgASVKlODmzZuMHj2aZcuWERcXR4sWLTCZTBiNxt+Eay1ZFSkYZrOZ7777jpEjR3LhwgV27NhBxYoVuXLlClFRUURFRdG9e3frg35WVhaOjo75rqHxKfL4rV27Fm9vbxo2bGjdVtWrVy88PT2ZOHEiN27cYMSIEWzevJmNGzfSuHFj7ty5w9SpU4mKimLnzp28/PLLtv4aIn+Z9nSLiPwHeQ8Kfn5+xMbG0rp1a8qVK8fkyZNxc3NjypQpmEwmAgICiIuLo3nz5pjN5t+Ebj3Qizx+OTk5ODg40KBBA0JDQxkzZgwBAQEkJCRQoUIFazPDVatWYTQamTRpEo6Ojr/pq6DxKfJ4nTp1ihkzZljvl3Xr1gUeLimvVKkSAM899xy9evXi9u3bvPbaa9SpUwd7e3vOnz9PfHy8ArcUGgrdIiL/xqP7r8ePH096ejqlS5dm3rx53Llzh8jISMqWLcu0adMAePPNN1m3bh1t27a1ZdkiRYaDgwMAkyZN4sCBA2RnZ/Pjjz/SvHlzEhMT8fT0JDg4GIPBQExMDLdv3yYiIkJ9FUQKWLVq1Rg+fDiLFy9m3LhxjBs3jvr16+Pk5MRzzz0HPFxh0rRpU6pWrUpQUBCnT5+mUqVK+Pv7W4O5SGGg5eUiIv+F8PBwpk+fztq1azEYDKSkpDBkyBDefPNNFi5ciIuLC+np6fTt25fU1FR27Nhh65JFioyIiAhCQ0OJjY2lYsWK7N+/n8jISFJTU9m+fTuenp5cvnyZuXPncunSJVauXKneCiIF6NHtGuvXr2f+/Pk4OjoSFhbG/PnzadmyJV26dLFxlSJPjkK3iMh/YDabCQoK4sUXX2T69OnW1xMTEwkMDOSdd95h5syZlCpVirt37+Li4qJZNJEnwGKxkJuby3vvvUfx4sWJjIy0/m3Xrl0MGjQIo9HI1q1b8fDw4MaNG7i5uWEwGKxHFonI4/fr8fXVV18xf/58jEYjSUlJeHh44ObmBjxsrpadnY2npyerVq3CxcVFY1MKHS0vFxH5lV8/LGRnZ3Px4kVcXV2tr5lMJlq1akVISAiRkZGkpaURHR1NyZIlAZ3DLVJQHh2fBoMBBwcHTCYT33//fb73+fv7ExgYSFhYGDVr1uT48eOUL1/+N9cQkccrb3wlJiaSlJRE//79CQwMJDc3lwULFuDl5UXDhg3p3LkzN27c4M6dO9jb29OyZUtKlChh6/JFCoSeCEVEfiXvYXzKlCkkJiZSvHhxevfuTWJiIlu2bAF+abrk5eVFx44dycjIoFixYtZrKHCLFIy88blgwQI+++wzAFq3bk12djYrV64kKyvL+t7q1asTFBRE//79rbNqj15DRB4/g8HA+vXr6dy5MxkZGdy+fRuAoKAgBg4cSJUqVbh58yY+Pj6EhITw0UcfMXjwYDVNk0JNT4UiIr8jKyuL/fv3ExUVRU5ODk2bNqVJkyZMmzaNzZs3A5Cens6uXbvo0KED8fHxGI1GzGazjSsXKfwyMjL45ptv+OGHH4CHDQwrVqzIggULWLJkCampqaSmprJ27VoqV65MWFgYdnZ2Ou9X5Ak4fvw4H374IbNmzWLGjBnUqFHD+re33nqL3r17k5ubS9++fTl8+LANKxV5chS6RUR+h6OjI23atOHw4cPcvHmTmjVr0r9/f7y9venevTu1atWiQYMGXLhwgZ49ewL5O52LSMFxdnZm0KBBxMXFERsbS4kSJVixYgXe3t4sWrQILy8vmjVrxpkzZ5g8eTLwcHzqWDCRgnf16lXKlStH+/btrT90PfqDdKdOnQgJCcHNzS3fChSRwkyN1ERE/o3atWtTv359Fi9eDMD169dJTk4mKSkJV1dXevfujb29fb5OrSLy+PxRfwSz2UyfPn2wWCzMmTOHUqVKkZ2dzc8//8yBAwcoUaIEHTt2tM5wa3yKPBkrVqywnuTh4uKSb/wdOnQIDw8PXnjhBe7evWvtgyJS2Cl0i0iR9vXXX9OgQQNcXV35/PPPKV++PE2aNLE2XFqwYAHLly9n9erVeHl5/W4A0AO9SMHIycmxnsMdHh6Oi4sLzZs3p2bNmgB88cUXjBw5kv379//hmb4anyJPVkpKCgEBAXTo0IHQ0FBKly5tHYe9evWiatWqjBw5Ur0VpEjROkgRKbLu3r3L0KFDqVOnDtevX2fjxo1MnjyZxo0bs2rVKlJSUujZsydnzpxh06ZNwO83SNMDvcjjt337dtq1a0daWhoAqampTJ06lZCQEHr16sWFCxcIDg6mWbNmjB49+g+vo/EpUjDy5u1OnDjB7t272b59OxkZGVSpUoW33nqLnTt38tlnn3Hz5k3OnDnDmDFjiIuLIzAwUIFbihzNdItIkXb8+HF69uyJvb098fHx3Lt3j8jISGJjY3FwcKBr165cvnyZAwcOsHHjRjw9PW1dskiRsHz5cmbPno23tzdLly6lTJkyJCcnc/ToUcaPH4+joyMeHh5UqFCBlJQUVq5ciYeHh44DE3kC8sbZP//5TwYOHIi7uzs//fQT/v7+DB48mE6dOhEeHs7atWs5evQo1atXJzMzky+//JI6derYunyRJ06hW0SKpLxl4rm5uVy+fJnOnTvj6OjI5s2bcXV15ejRo5w+fZrRo0eTmZnJpUuXSEhIoHXr1jqDW+QJMJlMxMTE8Pnnn1OqVCmio6NxdXUFHj7wf/nll2zfvp1FixZhNpuZPHkyo0aNsnHVIkXHd999R+vWrZk2bRodOnQgPT2dsWPHcvXqVYYMGUKnTp1IT09n7969uLu74+npSYUKFWxdtohNKHSLSJGSmppKuXLlAMjOzraerd22bVu+/vprqlevzp49e6wP9/fu3WPfvn3MmjWLmzdvsn//fi1XFSlgj+7D3rBhA/3798fPz4+oqCjr2Mzz7bffEh0dzffff8/q1au1GkXkMfujH5r/8Y9/sHDhQvbt20exYsUwGAykpKQwdOhQMjMz2bJli+6XIv+fpmpEpMhISkoiKCiI3bt3A1gDd5cuXbh8+TKJiYk4Ozvj5+dHeno6ACVKlKBVq1aMGTOGBw8ecOzYMZvVL1KYHTlyhOTkZIB8y8NXrlyJo6MjFy5coEePHtaxmZOTA0CDBg3o3r07p0+fJiUl5ckXLlKI5QXuixcvEhUVxaJFi0hKSgIe3kPv37/P/fv3MRgM5ObmUqVKFcaNG0diYiKHDh2ycfUiTw+FbhEpMtzd3bFYLEydOtX6MBAUFMSJEyeIi4ujRYsWLF++HCcnJ/z9/UlNTbV+tk6dOqSlpXHx4kVblS9SKFksFs6fP0+LFi2YNWsWp06dss6qde7cmTNnzrBz506GDx9Oeno6PXv25NatWzg4OJCbmwtAo0aNqFixIj/99JMtv4pIoZIXuI8ePUrTpk1ZuHAho0aNolevXsTFxdGsWTOSk5NZsWIFAPb29sDDH6tr1KhB8eLFbVm+yFNFoVtEioxq1apZ93+OGzeOpk2bkpKSwubNm6lYsSIA1atXZ+XKldy6dYsPP/zQ+tlNmzaRnp5O9erVbVW+SKFkMBjw9vZm2rRpxMfHs2jRIq5du8bbb7/N6dOnWb9+PS+++CKdO3dm0KBB3L59m7Zt23L37l3rQ/4XX3zByZMnadmypY2/jUjh8Gjgbty4Md27d2fHjh3ExMSQmZlJZGQkL730EjNmzGDYsGHMmDGDixcvcufOHb744gsyMjJwd3e39dcQeWpoT7eIFDnJyckMHDiQgwcPsmjRIrp06QLk37d2/vx5PD09rfvRNm/eTNWqValatarN6hYpjB4dd2vWrOHjjz/G0dERBwcHdu7ciYeHh3WPt8lkYunSpXz33XfMnz/f+rkff/yRYsWKUa1aNVt+FZFC5eLFi9StW5fXX3+dtWvXWl9v0KABt27d4uDBgzg7O7N27Vp69+6Np6cn9vb23L59m7i4OOrWrWvD6kWeLgrdIlIknT17lkGDBmE0GgkNDcXPzw/4bcOY3Nxc62yaiDw+u3fvplatWpQtW5bPPvsMHx8f3n33XdasWcOgQYN48803GTduHN7e3sAvzdUeHaMmkwmj0agjwkQKwLlz5+jatSsVKlRg+PDhNGnShClTpjB69Gjq169PhQoVKFu2LB07dsTFxYXbt29TqlQpqlWrZh23IvKQQreIFFnJycl88MEHAIwZM4YmTZrYuCKRouH8+fN07dqVMmXKUKVKFRYtWsT333/PK6+8AjxsnjZy5EiCgoIYPHgwL730EvDHXZRFpGDk3SeLFSuGu7s7GzduZP78+TRo0IBDhw5x7Ngx5s6dS8mSJalfv36+GXER+YVCt4gUacnJyQwZMoRr164RFRVlfegXkYK1adMm+vbty507d4iPj8ff35+srCwcHR0BWLFiBaGhoXTp0oV+/frx8ssv27hikaLp9OnTDB48mKSkJCZOnMiwYcPy/T01NZUdO3bg6+uLj4+PjaoUebopdItIkXfixAkWL17M9OnTNYsmUsDyZqv37t1LcHAwTk5OeHl5ERUVhbu7O9nZ2dbj/FauXMn//d//MWvWrHyNDUXkyTp79iwDBw7Ezs4u35asnJwcHBwcbFydyNNPoVtE5BFavipSMH49tjIzM7l37x779u0jPDyc0qVLs2zZst90PN6+fTv+/v7WpoYiYht5S80tFgtjx47VliyR/4FCt4iIiBSoRwN3fHw8aWlpAHTs2JESJUqwYcMGZs6cSZkyZVi6dCnPPfccISEhBAQE0KlTJ+CXRmoiYjvJyckMHTqUmzdv8ve//51GjRrZuiSRZ4JCt4iIiDwRI0aMIDo6mho1anDy5EkqVapEaGgobdq0Yc2aNURGRnLx4kUqVapEcnIy586d0+kBIk+ZkydPMnbsWGbOnImXl5etyxF5JuhOJiIiIgVuyZIlrFixgk2bNlGvXj0WL15M//79MZvNAHTt2hUvLy+2bNnC/fv3SUxMxN7eXjPcIk+Zl19+mejoaGvvBRH5zzTTLSIiIo+dxWLBYDBY/x0+fDgZGRnMmzePNWvW0L9/f6ZMmcKAAQO4f/8+2dnZuLq65ruGAreIiBQG6hYkIiIij1Ve0Aa4du0aAJcuXaJSpUocPnyYPn36EB4ezoABAzCbzURFRbFhwwZyc3PzXUeBW0RECgOFbhERESkQEyZMYPbs2QC0bduWsWPHUq9ePRYuXMh7770HQEZGBps3b+bs2bPavy0iIoWSQreIiIj8ZRMmTCAxMRHAOsv9448/4uPjA0CrVq0IDg7Gw8MDNzc3MjMzOXPmDF26dCEtLY3x48fbrHYREZGCpJ+URURE5C85cuQIcXFx7N27F0dHR5o1a4bZbObcuXOYTCYAPDw8CAkJITs7m3bt2vHCCy9QunRpSpcuzb59+9Q0TURECi2FbhEREflLateuzYQJE4iIiGDy5MlYLBb8/f0BcHZ2Bh42RXv11Vfx9fUlJCSEa9eu4ebmhp+fH0ajkdzcXC0vFxGRQkl3NxEREfnT8man33jjDQDmzJnDpEmTMBqN1KxZk3LlypGRkUFWVhYlS5bEaDRSuXJlmjRpYr2G2WxW4BYRkUJLR4aJiIjIn2I2mzEaH7aHefDgAcWLF+df//oXs2fP5tatW+zdu5cKFSrg6OhoPY87KyuLli1bsnz5cuvebxERkcJMPyuLiIjI/+zRwD116lQuX77MkCFDaNmyJbm5uURERFC3bl3atGlDjx49uHfvHunp6VgsFl5//XUFbhERKTIUukVEROR/lhe4R4wYwfLlyxk/fjzFihUDoE2bNhgMBiIjIzl48CBt27bNt5wcUNM0EREpMrS8XERERP6Ubdu2ERwczLp162jUqBEAFovFOou9detW5s6dy5UrV1i8eDF16tSxZbkiIiI2oZluERER+VOuXr2Ku7s7vr6+vztz3bp1a7Kzs9m5cye+vr42qlJERMS2FLpFRETkT7l37x5nzpwhJycHJycn6z5vs9nMtm3b8PHxISAggICAACD/PnAREZGiQnc+ERER+bfyOo//mp+fH15eXkyYMIEbN25YA3VmZiZhYWHExsbme78Ct4iIFEXa0y0iIiJ/6NHZ6djYWK5du4bRaKRVq1Z4eXkRFhbGV199RbVq1Rg8eDDp6enMmTOHa9eu8e233+r8bRERKfJ0JxQREZE/lBe4hw0bxrJly6hWrRpHjhyhRo0a9O/fn9DQUNzc3Fi9ejWNGzfmlVdeoXz58hw4cAB7e3t1KRcRkSJPM90iIiLyb61bt44PPviATZs2UbduXW7dusXw4cM5ceIEgwcPpnv37gAcO3aMsmXL4uHhgdFoJDc3VzPdIiJS5GlzlYiIiFg9+lt83v/Pnj1L5cqVqV27NgBly5Zl0qRJuLu7s2TJEuv7a9WqxfPPP29tpqbALSIiotAtIiIij7hz5w45OTlkZmZaz9u2s7PjwYMHZGdnW2ewPTw8GDVqFNu2bePo0aO/uY6apomIiDykO6KIiIgAD5eRd+/enUaNGtGvXz/OnTsHPDxv+8iRI8yaNQvAOoNtMpmoVasWJUuWtFXJIiIiTz2FbhEREWHBggUEBwfj5+dH7dq12bNnD3379iUtLQ1fX18WL17MhAkTGDFiBPv27ePkyZNMnDgRV1dXvL29bV2+iIjIU0uN1ERERIq45cuXExwczNatW2nZsiUA77zzDtu3b+fbb7/Fy8sLgNWrVzNkyBCMRiMuLi64u7uzc+dOHBwc8h0tJiIiIr9Q6BYRESnCTp06xRtvvIG3tzdbt27F0dERgDZt2rBt2zaioqKoV68e5cuXx83NjdTUVC5fvkxGRgYNGjRQl3IREZH/QKFbRESkCPrhhx/w9fXFYrEQHh5OQkICf/vb35g9ezY9evRg9+7dBAQEcOvWLc6ePculS5fo06cPL7zwAgMGDLBeRzPcIiIi/55Ct4iISBHz8ccfk5GRQUREBPb29pjNZqZPn05sbCyXLl3CycmJQ4cO4eLiAsClS5eIjY1l7dq12NnZkZiYqKAtIiLyX1LoFhERKWK++eYbGjZsiL29PT///DOVK1fGbDYza9YslixZQu3atVm4cCElSpTAYrFYjw5LS0vD1dUVg8GQ73URERH5Y/qZWkREpIjI+529SZMm2NvbEx0dTbdu3di+fTtGo5GhQ4cSHBzMuXPn+Pjjj0lLS8NgMJCTkwNA2bJlFbhFRET+RwrdIiIiRVBGRgYVK1akVKlSzJw5k507d2I0Ghk2bBgdO3bk2LFjjBkzhtTUVBwcHPJ9VoFbRETkv6fQLSIiUgTExsZy8OBBAIYNG0a/fv1o1qwZQ4cOxWKxMGXKFGvw/uSTTwgMDCQxMZElS5bYuHIREZFnm/Z0i4iIFHImk4n27duzf/9+2rVrx+bNm0lKSsLX1xeA+Ph4IiIiMJlMjBo1itdeew2TyURMTAzdunXDzs7Oxt9ARETk2aXQLSIiUkhFRUXRvn17PDw8APDw8OD27dssXryYd999F5PJZA3U8fHxzJs3D4vFwocffsgbb7xhvc6j7xMREZH/jZaXi4iIFEIHDx6kb9++TJkyhStXrpCZmYmHhwd16tThk08+Yf/+/djZ2Vmbq7Vt25b333+f69evk5CQAPzSeE2BW0RE5M/TTLeIiEghFRsbS6dOnXjvvfeIiIiwNkALCAjg0KFDbNiwgUaNGlnfn52dTUpKClWrVtU53CIiIo+JQreIiEghYzabMRgMGAwGNm7cyFtvvcXAgQMZPXo0FSpUICcnh86dO3Po0CFWrVrFK6+8Qp8+fShfvjzz58+3XkPBW0RE5K9T6BYRESlEHj1DOycnBwcHB7766is6derEoEGDGDNmDOXLlyc3N5euXbuyadMmqlevTk5ODkePHv3N8WAiIiLy1yh0i4iIFEJLly7l/v37hISE4Ozs/LvBGyA6OhqAt99+G3t7e3Jzc7G3t7dl6SIiIoWK7qoiIiKFjMlkYs2aNVy/fh1nZ2e6detGYGAg69evp1OnThgMBkaOHMnzzz/Pu+++m+9zCtwiIiKPl2a6RUREnnG/d6TXgwcP6NWrF2fPnqVfv36888471hnvrl270q1bN2bPnk3ZsmVtVLWIiEjRoA4pIiIiz7i8wH327FnMZjMAxYsXZ+nSpVSqVImFCxcSExNDZmYmgYGBLFu2jJSUFMqUKWPDqkVERIoGhW4REZFn1NatW4mJiQEgJiaG9u3bs2XLlnzBe9myZbi6ujJx4kRiYmK4f/8+3bt3Z8+ePRiNRut7RUREpGAodIuIiDyDvvnmG9q0acPMmTNZv349AQEBuLu7Ex4eTkJCgjVMOzk5MXPmTNLS0ggPD2fbtm3Awy7ngI4FExERKWDqliIiIvIMunnzJgDOzs5ERUXh5OREQkICAQEBTJw4EYvFQvv27QFIT08nKCiI8uXLW1/LO1ZMRERECpYaqYmIiDyjevbsyYULFyhXrhzXr19nzJgxNG3alICAALKysujSpQvNmzdn9OjR1KhRg6lTpwK/33hNRERECoZCt4iIyDMmKysLR0dHoqOj2bVrF71792batGlcvXqVTz/9lGbNmjFgwAB27dpFTk4OXl5e7Nq1CwcHBywWi2a5RUREniCFbhERkWfAjh07SElJoXfv3tbXrly5wquvvsrEiRNp27YtgwYN4tq1a4SGhtKuXTvOnTvHlStXaNiwIUajkdzcXJ3DLSIi8oQpdIuIiDzlduzYQYsWLQBo3bo1gYGB+Pn5UatWLWJiYli1ahWrVq3iwoULfPrpp6SmptKjRw9CQkKs19CSchEREdtQy1IREZGnXMWKFWnatCmvv/46WVlZHD9+nNdee405c+Zw5coV7t+/z5EjR6hRowYTJkwA4PDhwzz6u7oCt4iIiG1opltEROQZcPr0aUaNGkVOTg4ffPABJpOJhQsXkpmZSUJCAh07duTLL7/Ezs6Oc+fO4eXlhdFo1B5uERERG1PoFhEReUacOnWKjz76CLPZzJw5c/Dx8eHUqVPMmjWL999/H19f33wh22w26xxuERERG1PoFhEReYYkJyczePBgAOsRYXkUskVERJ4+ujOLiIg8Q3x8fJg3bx5Go5GwsDD27Nlj/ZsCt4iIyNNHd2cREZFnjI+PD3PnzsXOzo4hQ4Zw9OhRW5ckIiIif0ChW0RE5Bnk4+PD9OnTadasGbVq1bJ1OSIiIvIHtKdbRESkENB+bhERkaeTQreIiIiIiIhIAdFP4iIiIiIiIiIFRKFbREREREREpIAodIuIiIiIiIgUEIVuERERERERkQKi0C0iIiIiIiJSQBS6RURERERERAqIQreIiIiIiIhIAVHoFhERERERESkgCt0iIiIiIiIiBeT/AYtxL+B9m5ltAAAAAElFTkSuQmCC" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_boxplot_median(results, names)" ], "metadata": { "collapsed": false } }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## References\n", "\n", "[1] Dempster A, Petitjean F and Webb GI (2019) ROCKET: Exceptionally fast\n", "and accurate time series classification using random convolutional kernels.\n", "[arXiv:1910.13051] (https://arxiv.org/abs/1910.13051),\n", "[Journal Paper](https://link.springer.com/article/10.1007/s10618-020-00701-z)\n", "\n", "[2] Dempster A, Schmidt D and Webb G (2021) MINIROCKET: A Very Fast (Almost)\n", "Deterministic Transform for Time Series Classification\n", "[arXiv:2012.08791](https://arxiv.org/abs/2012.08791)\n", "[Conference Paper](https://dl.acm.org/doi/abs/10.1145/3447548.3467231)\n", "\n", "[3] Cahng Wei T, Dempster A, Bergmeir C and Webb G (2022) MultiRocket: multiple pooling\n", "operators and transformations for fast and effective time series classification\n", "[Journal Paper](https://link.springer.com/article/10.1007/s10618-022-00844-1)\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.8.10" } }, "nbformat": 4, "nbformat_minor": 0 }