{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Hybrid time series classification in aeon\n", "\n", "The nature of the data and the problem dictate which category of algorithm is most appropriate. The most accurate algorithms on average, with no apriori knowledge of the best approach, combine multiple transformation types in a hybrid algorithm. We define a hybrid algorithm as one which by design encompasses or ensembles multiple of the discriminatory representations we have previously described. Some algorithms will naturally include multiple transformation characteristics, but are not classified as hybrid approaches. For example, many interval approaches extract unsupervised summary statistics from the intervals they select, but as the focus of the algorithm is on generating features from intervals we would not consider it a hybrid.\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2020-12-19T14:32:05.919120Z", "iopub.status.busy": "2020-12-19T14:32:05.918629Z", "iopub.status.idle": "2020-12-19T14:32:06.041420Z", "shell.execute_reply": "2020-12-19T14:32:06.040742Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(67, 1, 24) (67,) (50, 1, 24) (50,)\n", "(40, 6, 100) (40,) (40, 6, 100) (40,)\n" ] } ], "source": [ "from aeon.datasets import load_basic_motions, load_italy_power_demand\n", "\n", "X_train, y_train = load_italy_power_demand(split=\"train\")\n", "X_test, y_test = load_italy_power_demand(split=\"test\")\n", "X_test = X_test[:50]\n", "y_test = y_test[:50]\n", "\n", "print(X_train.shape, y_train.shape, X_test.shape, y_test.shape)\n", "\n", "X_train_mv, y_train_mv = load_basic_motions(split=\"train\")\n", "X_test_mv, y_test_mv = load_basic_motions(split=\"test\")\n", "\n", "print(X_train_mv.shape, y_train_mv.shape, X_test_mv.shape, y_test_mv.shape)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## The Hierarchical Vote Collective of Transformation Ensembles (HIVE-COTE)\n", "\n", "HIVE-COTE are a family of algorithms that have been consistently the most\n", "accurate approaches for TSC with the UCR data [1,2,3,4]. This first version of\n", "HIVE-COTE, subsequently called HIVE-COTE$_\\alpha$ (HC$_\\alpha$) [2], is a heterogeneous\n", "ensemble containing five modules each from a different representation: the Elastic\n", "Ensemble from the distance based representation; Time Series Forest from interval based\n", "methods; BOSS from dictionary based approaches, a version of the shapelet\n", "transform classifier, ST-HESCA, from shapelet based techniques and the spectral based\n", "RISE. The five modules are ensembled using the Cross-validation Accuracy Weighted\n", "Probabilistic Ensemble (CAWPE, known at the time as HESCA) [5]. CAWPE employs a tilted\n", "probability distribution using exponential weighing of probabilities estimated for\n", "each module found through cross-validation on the train data. The weighted\n", "probabilities from each module are summed and standardised to produce the HIVE-COTE\n", "probability prediction. HC$_\\alpha$ is not currently available in aeon, since it has\n", "been superseeded by later versions.\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## HIVE-COTE 1 (HC1)\n", "\n", "Whilst state-of-the-art in terms of accuracy, HC$_\\alpha$ scales poorly. A range of\n", "improvements to make HIVE-COTE more usable were introduced in HIVE-COTE v1.0 (HC1) [3].\n", " HC1 has four modules: it drops the computationally intensive EE algorithm without\n", " loss of accuracy. BOSS is replaced by the more configurable cBOSS. The improved\n", " randomised version of STC is included with a default one hour shapelet search and\n", " the Rotation Forest classifier. TSF and RISE had usability improvements. HC1 is designed to be contractable, in that you can specify a maximum train time.\n", "\n", "HC1 is available in aeon, but is only usable for univariate equal length problems,\n", "and is not contractable, which makes it poor for small examples. We recommend using\n", "HIVE-COTE v2, the latest version.\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## HIVE-COTE V2\n", "In 2021, HIVE-COTE was again updated to further address scalability issues and\n", "reflect recent innovations to individual TSC representations and HIVE-COTE v2.0 (HC2)\n", "[4] was proposed. In HC2, RISE, TSF and cBOSS are replaced,\n", "with only STC retained. TDE replaces cBOSS as the\n", "dictionary classifier. DrCIF replaces both TSF and RISE for the interval and\n", "frequency representations. An ensemble of ROCKET classifiers called the Arsenal is\n", "introduced as a new convolutional based approach. Estimation of test accuracy via\n", "cross-validation is replaced by an adapted form of out-of-bag error, although the\n", "final model is still built using all training data. Unlike previous versions, HC2 is\n", "capable of classifying multivariate time series. HC2 is not designed to work really\n", "quickly with small problems\n", "\n", "\"HC2.\"\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.metrics import accuracy_score\n", "\n", "from aeon.classification.hybrid import HIVECOTEV1, HIVECOTEV2\n", "\n", "hc1 = HIVECOTEV1()\n", "hc2 = HIVECOTEV2(time_limit_in_minutes=0.2)\n", "hc2.fit(X_train, y_train)\n", "y_pred = hc2.predict(X_test)\n", "accuracy_score(y_test, y_pred)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "hc2.fit(X_train_mv, y_train_mv)\n", "y_pred = hc2.predict(X_test_mv)\n", "\n", "accuracy_score(y_test_mv, y_pred)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## Performance on the UCR univariate datasets\n", "\n", "You can find the hybrid based classifiers as follows. Note that we do not have a\n", "TS-CHIEF implementation in aeon, but we have results from our java toolkit." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "('HIVECOTEV1', )\n", "('HIVECOTEV2', )\n", "('RISTClassifier', )\n" ] } ], "source": [ "from aeon.utils.discovery import all_estimators\n", "\n", "est = all_estimators(\"classifier\", tag_filter={\"algorithm_type\": \"hybrid\"})\n", "for c in est:\n", " print(c)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(112, 4)" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from aeon.benchmarking.results_loaders import get_estimator_results_as_array\n", "from aeon.datasets.tsc_datasets import univariate\n", "\n", "names = [t[0] for t in est]\n", "names.append(\"TS-CHIEF\") # TS-Chief is not available in aeon, results from a\n", "# Java implementation\n", "\n", "results, present_names = get_estimator_results_as_array(\n", " names, univariate, include_missing=False\n", ")\n", "results.shape" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(
, )" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAu4AAAD6CAYAAAD+xcJuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA4DElEQVR4nO3dd1gU18IG8Hd3qSpFULwoClgxFgQLGPUCxhYb2CLGihrjjSYxamI0FmKMvccUExWNxmtLiEaNCkYQQUExVsTYNUTsoCCwlPP94bd7WdhdlrqMvr/n2Sdx5szMmbM6++7smXNkQggBIiIiIiKq1OTGrgARERERERWNwZ2IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjciYiIiIgkgMGdiIiIiEgCGNyJiIiIiCSAwZ2IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjciYiIiIgkgMGdiIiIiEgCGNyJiIiIiCSAwZ2IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjciYiIiIgkgMGdiIiIiEgCGNyJiIiIiCSAwZ2IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjciYiIiIgkgMGdiIiIiEgCGNyJiIiIiCSAwZ2IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjciYiIiIgkgMGdiIiIiEgCGNyJiIiIiCSAwZ2IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjcSfLS0tLg5OQEmUyGU6dOGbs6VE72798PHx8f1KxZE+bm5qhfvz4mT56M1NRUY1eNysnOnTvh7+8PJycnVK1aFa1atcKGDRsghDB21aicXL16FePHj0erVq1gYmKC5s2bG7tKRJWKibErQFRaX3zxBXJycoxdDSpnjx8/hpeXFz744APY29vjwoULCA4OxoULF3Do0CFjV4/KwfLly+Hi4oJly5ahZs2aCAsLwzvvvIM7d+5gzpw5xq4elYOLFy9i37598PLyQl5eHvLy8oxdJaJKRSZ464IkLDExEW3atMGyZcswfvx4nDx5Em3atDF2taiC/PDDDxg3bhySkpJQu3ZtY1eHytjDhw9Ro0YNjWXjxo3D9u3b8eTJE8jl/NH4ZZOXl6d+X0eNGoVTp07hwoULRq4VUeXBqx5J2vvvv4/x48ejSZMmxq4KGYG9vT0AQKlUGrkmVB4KhnYA8PDwwNOnT5Genm6EGlF545cxIv3YVYYka9euXTh//jx+/vlnnD592tjVoQqSm5uL7OxsJCQkYO7cuejbty9cXFyMXS2qIMeOHUOdOnVgZWVl7KoQEVU4frUlSXr+/DkmT56M+fPnw9ra2tjVoQrk7OwMS0tLtG7dGo6Ojti6dauxq0QV5NixY9i2bRumTp1q7KoQERkFgztJ0rx581CrVi0EBQUZuypUwfbv34+YmBj88MMPuHTpEvr06YPc3FxjV4vK2d9//43BgwfDz88PH3zwgbGrQ0RkFOwqQ5Jz69YtLFu2DKGhoeqhANPS0tT/TUtLQ7Vq1YxZRSpHLVu2BAC0b98ebdu2RatWrRAaGoqBAwcauWZUXlJSUvDmm2/C3t4eP//8M/tBE9Eri8GdJOfGjRtQKpXo1atXoXV+fn7w8vLCiRMnjFAzqmgtW7aEqakprl69auyqUDnJyMhA7969kZqaiuPHj8PGxsbYVSIiMhoGd5KcVq1a4ciRIxrLzpw5g48++gjfffcd2rZta6SaUUWLjY1FdnY26tevb+yqUDnIycnBW2+9hUuXLiEqKgp16tQxdpWIiIyKwZ0kx9bWFr6+vlrXtW7dGp6enhVbIaoQ/fv3R5s2bdCyZUtYWlri7NmzWLJkCVq2bImAgABjV4/KwXvvvYe9e/di2bJlePr0qcYvaR4eHjA3Nzdi7ag8PH/+HPv37wfwolvk06dPsWvXLgBQz5xM9CrjBEz0UoiIiICfnx8nYHqJLVy4ENu3b8e1a9eQl5cHFxcX9O/fH1OnTuXIQi8pFxcX3Lp1S+u6GzducBjQl9DNmzfh6uqqdd2RI0d03rQhelUwuBMRERERSQAfzSciIiIikgAGdyIiIiIiCWBwJyIiIiKSAAZ3IiIiIiIJYHAnIiIiIpIABnciIiIiIglgcCfJa9OmDZycnDh++yuE7/mrhe/3q4nvO1FhnDmVJC85ORlJSUnGrgZVIL7nrxa+368mvu9EhfGOOxERERGRBDC4ExERERFJAIM7EREREZEEMLgTEREREUkAgzsRERERkQQwuBNJFIdKe/XwPX/18D0novw4HCSRRHGotFcP3/NXD99zIsqPd9yJiIiIiCSAwZ2IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjciYiIiIgkgMGdiIiIiEgCZEIIYexKEJWGmZkZsrOzIZfL4ejoaOzqVJi7d+8iLy/vlTtvwDjnnv9SKZPJdC4rz2O+qu95wfMu73avTF7V9xz437mbmppCqVQauzpElQKDO0meQqFAXl6esatBRETlQC6XIzc319jVIKoUOAETSZ6FhQUyMzOhUCjg4OBg7OpUmPv37yM3N/eVO2/AOOcuhMA///yD2rVra9xxL7isPI/5qr7nBc+7vNu9MnlV33Pgf+duYWFh7KoQVRq8405EZIDs7GyYmZlBqVTC1NRU57LyPiaxXYjo1cWHU4mIiIiIJIDBnYiIiIhIAhjciYiIiIgkgMGdiIiIiEgCGNyJiIiIiCSAwZ2IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjciYiIiIgkgMGdiIiIiEgCGNyJiIiIiCSAwZ2IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjciYiIiIgkwMTYFSAiqqxSU1Nx/vx5AEBOTg4AIDo6GiYmJjqXlSVt+2/RogVsbGzK/FhERFT5yYQQwtiVICKqjI4dO4ZOnToZuxoaoqKi0LFjR2NXw6iys7NhZmYGpVIJU1NTY1eHiKjCsKsMEREREZEEMLgTEREREUkAu8oQEelQsI+7n58fjhw5otHHveCysqRt/+zjzq4yRPTqYnAnIjKAtrBY3gGSAVU7tgsRvarYVYaIiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjciYiIiIgkgMGdiIiIiEgCGNyJiIiIiCSAwZ2IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjciYiIiIgkgMGdiIiIiEgCGNyJiIiIiCSAwZ2IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjciYiIiIgkgMGdiIiIiEgCGNyJiIiIiCSAwZ2IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjciYiIiIgkgMGdiIiIiEgCGNyJiIiIiCSAwZ2IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjciYiIiIgkgMGdiIiIiEgCGNyJiIiIiCSAwZ2IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjciYiIiIgkgMGdiIiIiEgCGNyJiIiIiCSAwZ2IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjciYiIiIgkgMGdiIiIiEgCGNyJiIiIiCSAwZ2IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjciYiIiIgkgMGdiIiIiEgCGNyJiIiIiCSAwZ2IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjciYiIiIgkgMGdiIiIiEgCGNyJiIiIiCSAwZ2IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjciYiIiIgkgMGdiIiIiEgCGNyJiIiIiCSAwZ2IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjc6aWyYMECtG3bFlZWVnBwcEBAQAAuX76sdxtfX1/IZLJCr169emmUu3TpEvr27QsbGxtUrVoVbdu2xe3bt9Xr3333XTRo0ACWlpaoWbMm/P39kZiYqPWYjx49gpOTE2QyGVJSUkp93kREZeHo0aPo06cPateuDZlMhl9//bXIbb7++ms0bdoUlpaWaNKkCX788UeN9YZcY4ODg+Hm5oaqVauievXq6NKlC2JjY9Xrb968iTFjxsDV1RWWlpZo0KAB5syZA6VSWWbnTiQFDO70UomMjMSECRNw4sQJhIWFITs7G926dUN6errObX755RfcvXtX/bpw4QIUCgUGDRqkLnPt2jV07NgRbm5uiIiIwLlz5zBr1ixYWFioy7Ru3RohISG4dOkSDh48CCEEunXrhtzc3ELHHDNmDFq2bFm2J09EVErp6elwd3fH119/bVD5b7/9FtOnT0dwcDAuXryIzz//HBMmTMBvv/2mLmPINbZx48ZYs2YNzp8/j2PHjsHFxQXdunXDgwcPAACJiYnIy8vD2rVrcfHiRaxYsQLfffcdZsyYUbYNQFTZCaKX2P379wUAERkZafA2K1asEFZWViItLU29bPDgwWLYsGHFOvbZs2cFAHH16lWN5d98843w8fERhw8fFgDEkydPirVfMg6lUikACKVSqXdZeR+T2C4VBYAIDQ3VW6Z9+/Zi6tSpGssmT54sOnTooHMbbdfYglJTUwUAER4errPM4sWLhaurq976Eb1sXqo77tp+iivq5evrq7GPI0eOIDAwEM7OzrCwsICVlRVcXV3h5+eHzz77DCdOnChVHcPCwhAUFITGjRvD2toa5ubmcHR0RNeuXbFixQr13QWVjRs3QiaTwcXFRe9+IyIi1OdUkOpnyuDgYJ3bFPUqyXaVoQtIamoqAMDOzs7gbdavX4/AwEBUrVoVAJCXl4d9+/ahcePG6N69OxwcHODl5aX3J+T09HSEhITA1dUVdevWVS9PSEjA3Llz8eOPP0Iuf6n++RHRKygrK0vjl0cAsLS0RFxcHLKzs7VuU/AaW5BSqcT3338PGxsbuLu76zx2ampqsa7tZc3FxQUymQwbN27UW07bZ7C2z+zZs2dDJpPB29vboOOHhoZCJpPBzs4OmZmZAF50OSpJ9snvzp07mDlzJry9vVGzZk2YmprC1tYWnp6e+PDDD3Hy5Emd22ZnZ+OHH37Am2++CUdHR5iZmcHe3h5eXl74/PPP8fDhw0LbjBo1qkT57ebNmxrtW9RL1f5l0c6XL1/GypUr0bNnT9SpUwdmZmawtrZG27ZtsWDBAqSlpRm075IwKbc9G8HIkSMLLUtOTsbBgwd1rndzc1P//yeffIIlS5YAAOrXr4+uXbvCysoKd+/exenTpxEREYHLly9j165dxa7bw4cPMWTIEISHhwN48Q/ez88PVatWRXJyMmJiYhAeHo7Zs2cjPDwcXl5exT5GaWhrm9JuZ2ZmVtLqlIm8vDxMmjQJHTp0QPPmzQ3aJi4uDhcuXMD69evVy+7fv4+0tDQsXLgQ8+bNw6JFi3DgwAH0798fR44cgY+Pj7rsN998g08++QTp6elo0qQJwsLC1O2QlZWFIUOGYMmSJahXrx6uX79etidMRFTBunfvjnXr1iEgIACenp6Ij4/HunXrkJ2djYcPH8LR0VGjvLZrrMrevXsRGBiI58+fw9HREWFhYahRo4bW4169ehVfffUVli5dWi7nZQxBQUGYN28eYmNjkZCQgNdee01v+Q0bNgAAhg4dWujLU61atdCjRw+d2+bPPvktXrwYs2bNglKpRLVq1eDl5QUHBwc8e/YM58+fx+rVq7F69Wp8/PHHWLx4sca2ly5dgr+/P65cuQKFQgFvb2/4+fnhyZMniI6ORlxcHJYvX46QkBD0799fvV3Hjh211mXXrl1IT09Hhw4d0LBhw0Lrq1WrpvFnd3d3tGrVSuc5q9aVRTu/8cYbSEpKgoWFBdq0aYN///vfuHfvHo4fP45Tp05h/fr1+OOPP1CvXj29+y4RY9/yL29HjhwRAERRp7p3714BQJiYmIj//ve/hdYrlUqxb98+sWbNmmLXISUlRTRp0kQAEG5ubuLo0aOFymRmZoq1a9eKf/3rXxo/TYaEhAgAwtnZWe8x9J2nj4+PACDmzJlj8DYlPVZlMn78eOHs7Czu3Llj8Dbjxo0TLVq00FiWlJQkAIghQ4ZoLO/Tp48IDAzUWJaSkiL++usvERkZKfr06SM8PT1FRkaGEEKIjz76SAwePFhdVtWO7CojDewqU3mwXSoGDOgq8/z5cxEUFCRMTEyEQqEQtWvXFp988okAIJKTkwuV13aNVUlLSxNXrlwRx48fF6NHjxYuLi7i3r17hcr9/fffokGDBmLMmDElOq+y4uzsLACIkJAQveW0fQbr+hx94403BAAxZcoUvfu8e/euMDExEQDEn3/+qV4+Z84cAUD4+PgU82yEmDZtmgAgTE1NxdKlS0VmZmahMsePHxedO3cW/v7+GsuvX78u7OzsBADRpUsXcevWLY31z58/F1OnThUAhFwuL/LvlRCla9+ilLadO3fuLNavXy+ePXumUf7GjRuiWbNmAoDw8/MzuD7FUbmTVxkwNGQOGzZMazgrC8OHDxcAhIuLi3j06JHessnJySIxMVH9Zwb3kpkwYYJwcnIS169fN3ibtLQ0YW1tLVauXKmxPCsrS5iYmIgvvvhCY/knn3wiXn/9dZ37y8rKElWqVBFbt24VQgjh7u4u5HK5UCgUQqFQCLlcLgAIhUIhZs+eXYyzI2NgcK882C4Vw5DgrqJUKsWdO3dETk6O+Oabb4SVlZXIzc3VKKPrGqtLw4YNxfz58zWWJSUliUaNGonhw4cX2n9FK4/gvnXrVgFA1KpVS2RnZ+vc56JFiwQA4eHhobG8pME9PDxcXZ9ffvlFb9m8vLxCNyA7dOggAAhvb2+tgV9FFd5tbGzEw4cP9R6nPIN7adtZn6ioKHVbFufGoaHYyfb/3bt3DwDg4OBQpvu9fv06tm7dCgBYvnx5kf3xatWqhSZNmpRpHV4lQghMnDgRoaGh+OOPP+Dq6mrwtjt37kRWVhaGDRumsdzMzAxt27YtNKzkX3/9BWdnZ711EUIgKysLAPDzzz/j7NmzOHPmDM6cOYN169YBAKKiojBhwgSD60lEVNmYmprCyckJCoUC27ZtQ+/evQs9x6PrGqtLXl6e+voJAElJSfD19VWP4PUyPifUv39/2NnZ4d69e9i3b5/OciEhIQBejFBWFubNmwcA6Nu3L/r166e3rEwmQ6dOndR/joyMRHR0NABgzZo1MDc317ntF198AQcHB6SmpmLNmjVlUPOSKc929vDwUP//nTt3Sl5JHV6+v/UlpOqHtGvXLiQlJZXZfvfu3Yvc3FzY2tqib9++ZbZf0m7ChAnYsmULtm7dCisrKyQnJyM5ORkZGRnqMiNGjMD06dMLbbt+/XoEBATA3t6+0LqPP/4Y27dvxw8//ICrV69izZo1+O233/Dee+8BePEFbcGCBYiPj8ft27cRExODQYMGwdLSEj179gQANGjQAM2bN1e/VF8qmjZtWuZfGImISiItLU19cwEAbty4gTNnzqjnrJg+fTpGjBihLv/XX39hy5YtuHLlCuLi4hAYGIgLFy5g/vz5hfat6xqbnp6OGTNm4MSJE7h16xbi4+MxevRoJCUlqYeMVIX2evXqYenSpXjw4IH6+v4yMTc3x9ChQwH8r291QTExMUhMTISFhYW6bGmkpKTg6NGjAEr2vJtqoIZmzZqhdevWestaWFjgrbfeAgDs2bOn2McqK+XZzleuXFH/f8FnPMoCg/v/e/fdd2FiYoKkpCQ0atQIgwYNwqpVqxAVFYXnz5+XeL+nTp0CAHh6ekKhUJRVdUmHb7/9FqmpqfD19YWjo6P6tX37dnWZ27dv4+7duxrbXb58GceOHdP5rbpfv3747rvvsHjxYrRo0QLr1q3Dzz//rH6oxsLCAlFRUejZsycaNmyIwYMHw8rKCjExMQzlRCQZp06dgoeHh/qu4eTJk+Hh4YHZs2cDAO7evasx8Vxubi6WLVsGd3d3dO3aFZmZmYiJiSk0Epq+a6xCoUBiYiIGDBiAxo0bo0+fPnj06BGioqLQrFkzAC9GZLt69SoOHz4MJycnjev7y0bVRvv371f3BshPdRe4f//+sLW1LfXxTp8+jby8PABA27Zti719fHw8AKBdu3YGlVcd48yZM8jJySn28cpKebXzwoULAbzIfUWNCFgiZd75ppIpTn/s3377TTg5OanLq16mpqaia9eu4tChQ8U+fo8ePQSAQg8xGkrVx704r4IM6eOu71XwIRRDtiuqTxqR1LCPe+XBdqHKQNUH29CXIX3cVVq3bi0AiCVLlmgsT09PF1ZWVgLQPsa9qo97Ua8VK1aot9m2bZt6ub7+6bq4ubkJAOLTTz81qPyBAwfUx9P28LFKcfu4F/XK/3CpSknbWRdVZlMoFCIqKsrg7YrjpRoOsrR69+6N7t274+DBgwgPD8fJkydx5swZPH/+HGFhYQgLC8Ps2bPx+eefV3jdqlatioEDB+pcn3/Yy5LQ9/OYp6dnsbfTNnQTERHRy0bXcIUqBw4c0HpHV5+xY8ciPj4eISEhmDp1qnr5zp078ezZM7i6uqJz5846ty9qOMiihkAsT0KIctlvUcNBanvGsLTtnN/hw4fx7rvvAngxrKauYS5Li8G9AFNTU/Tu3Ru9e/cG8GLs7YiICMycOROnTp3C3Llz0atXL/VPQqNGjSq0jxo1aqjHlq1ZsyaAF2OBl0aNGjX0TvIQERFRquBe1AQSZb2dLkIIo/50RqSLrslkyHj4nlBZMTEx0TqBoSHGjh2rNQuo+Pr6Fju4DxkyBJMnT0ZCQgJOnDihnixI1R87KChIb33d3NwM/nxW5RTgRVbJP2mgIVRj7Rt6jqo8JJfLy3QCrYCAgEITTRaltO2scuzYMfj7+0OpVGLOnDmYPHlysetvKAb3Ipibm6N79+7o0KED3NzckJSUhN27d6uD+6ZNmwpt4+zsrA7urVu3xubNm3H69Gnk5uayn3sRcnJyjD5xE5Eu1tbWL+VIFlIjl8thbW2tc+ZNouJSKpUwNTU1djXUbGxsMHDgQGzevBkhISHw9vbGtWvXEBUVBblcrveLQnF5eHhALpcjLy8PJ0+eLHZwb926NY4dO4bY2FiDysfFxQF4cYfcxMS4MbQs2jkmJgY9e/ZEeno6Pvvss2J/eSguBncDVatWDe3bt8euXbs0puwt6ief3r17Y/LkyUhJScGePXuKHGbpVWdiYgKlUmnsahBpJZfL+eW7ElAoFHj8+LH6gTqi0jJ2gNRmzJgx2Lx5M7Zt24aVK1ciJCQEQgh069at2OFan+rVq6NTp06IjIzEpk2bNGY1NYS/vz9WrVqFhIQExMfH6x1ZJjMzEzt27ACASjPSXmna+cSJE+jRoweePXuGGTNmqIfVLE+V72+qkQghivw5RPUkvZOTk8H7bdCgAYYMGYKffvoJU6ZMgY+Pj96fhu7fv48nT568smO5y2SySnXXg4gqJ4VCwS9R9FLz8fFBo0aNcOXKFezYsUP9C39Zjd2e32effYbIyEjs2bMHoaGhem8yCiEQHR2t7sPt5+cHb29vnDhxAhMmTEBkZKTOsdxnzZqFBw8ewNrautLMX1LSdo6Li0P37t3Vof3LL7+siOpyOEiVMWPGYObMmbh69WqhdRkZGQgODkZcXBxMTEz0PiSqzVdffYWGDRvixo0b6NixI44dO1aojFKpxIYNG+Dh4YFLly6V+DyIiIjo5TB69GgAL+YS+fvvv2Fvbw9/f/8yP07Xrl0xZcoUAEBgYCCWL1+uMfmVSnx8PLp3767uDqyyZcsW2NraIjY2Fr179y408VBGRgY++eQTLF26FDKZDBs2bNDoW29sxW3nU6dOoVu3bnj69GmFhnaAd9zVHj9+jJCQEHz55ZeoX78+mjVrBisrK9y/fx/x8fF48uQJFAoFVq9ejaZNmxZr39WrV0d0dDQGDx6MiIgIdOrUCa6urmjZsiWqVKmCe/fuIS4uDmlpabC2tkbt2rXL6Sx1K6of19y5c9WTVBEREVH5GzlyJGbOnIkHDx4AAIYPH27Qc2CJiYl6P9erVKmCb775RmPZ0qVLYWdnh+DgYEyZMgXBwcHw8vKCg4MD0tLScO7cOdy8eRMAMG3aNI1tGzRooH5AMzw8HPXr14e3tzfq1q2LlJQUREdH4+nTp6hWrRo2bNiAAQMGFK8hDPDrr7+q66eNp6cnPvjgA63ritvO3bp1Q2pqKmxtbZGUlKSzrT/99FO4ubkZfA6GYHD/f19//TUCAgJw+PBhnD9/HrGxsXj8+DEsLS3h6uqKoUOHYvz48erJIIrLwcEBR44cwYEDB/Df//4XMTExOHz4MLKysmBvb4/27dujV69eGD58eJk+ZW0obQ/Z5jdp0iQGdyIiogrk6OiInj174rfffgPwvzvDRbl3757ez3UbG5tCwR0AZsyYgaFDh2Lt2rUIDw/Hn3/+idTUVFStWhX169eHv78/Ro4cqZ6gK79mzZohISEBGzduxM8//4yzZ88iNjYW1apVQ+PGjdGzZ09MnDix3O60nz17FmfPntW5PiUlRWdwL247P3nyRL1Pfe08atSoMg/uMlFeA2oSEb3ksrOzYWZmVm4jUpT3/omISFrYx52IiIiISAIY3ImIiIiIJIDBnYiIiIhIAhjciYiIiIgkgMGdXioLFixA27ZtYWVlBQcHBwQEBODy5ct6t/H19YVMJiv06tWrF4AXDwhOmzYNLVq0QNWqVVG7dm2MGDEC//zzj3ofERERWvchk8lw8uRJAEBwcLDW9Zy2nYgqg5JcPzdu3FjommZhYaFRJjg4GG5ubqhatSqqV6+OLl26IDY2VqOMi4tLof0sXLhQYx+8fhJxVBl6yfTo0QOBgYFo27YtcnJyMGPGDFy4cAEJCQk6L/CPHz+GUqlU//nRo0dwd3fHunXrMGrUKKSmpmLgwIF455134O7ujidPnuDDDz9Ebm4uTp06BeDFBFqPHz/W2O+sWbNw+PBhXLt2DTKZDGlpaUhLS9Mo88Ybb6Bt27bYuHFj2TYEVQiOKkMvk5JcPzdu3IgPP/xQI+DLZDLUqlVL/eetW7fCwcEB9evXR0ZGBlasWIGdO3fi6tWr6qEBXVxcMGbMGLzzzjvq7aysrNTH5fWT6P8JopfY/fv3BQARGRlp8DYrVqwQVlZWIi0tTWeZuLg4AUDcunVL63qlUilq1qwp5s6dq3MfZ86cEQDE0aNHDa4bVS5KpVIAEEqlUpL7J9LHkOtnSEiIsLGxKdZ+U1NTBQARHh6uXubs7CxWrFhh8D54/aRXVbG7yqh+zirqG66q+0FwcLB6Wf7uBCqzZ8+GTCaDt7e3QccPDQ2FTCaDnZ0dMjMzAej+Ca3gy9fXV+d+79y5g5kzZ8Lb2xs1a9aEqakpbG1t4enpiQ8//FDd3UGb7Oxs/PDDD3jzzTfh6OgIMzMz2Nvbw8vLC59//jkePnxYaJtRo0YZVOeCL9WsYLq6dxR8qdq/LNo5PT0dW7duxZQpU+Dr6wtra2vIZDI0bNjQoH0aQ2pqKgAUa1Kr9evXIzAwUO9PsKmpqZDJZLC1tdW6fs+ePXj06BGCgoJ07mPdunVo3LgxOnXqZHDdiIgqiqHXz7S0NDg7O6Nu3brw9/fHxYsXdZZVKpX4/vvvYWNjA3d3d411CxcuhL29PTw8PLBkyRLk5OTo3E9luH5q695jbm4OJycn+Pv7Y+/evVq3U2UWXZnk9OnTGD16NBo2bAhLS0tUqVIFzs7O6NChA6ZOnYqwsDB12ZLkiILHffToERYsWABfX1/861//gpmZGaytrdG8eXO88847+OOPP3Seu76ZSisLVV6KiIgotC4pKQnDhw9H7dq1YWJiAplMpp4FVZXTKtsvOkafOTUoKAjz5s1DbGwsEhIS8Nprr+ktv2HDBgDA0KFDC/Wjq1WrFnr06KFzW12zVy1evBizZs2CUqlEtWrV1FP8Pnv2DOfPn8fq1auxevVqfPzxx1i8eLHGtpcuXYK/vz+uXLkChUIBb29v+Pn54cmTJ4iOjkZcXByWL1+OkJAQ9O/fX71dx44dtdZl165dSE9PR4cOHbQG4mrVqmn82d3dHa1atdJ5zqp1ZdHOV65cwdChQ/VuV5nk5eVh0qRJ6NChA5o3b27QNnFxcbhw4QLWr1+vs0xmZiamTZuGIUOGwNraWmuZ9evXo3v37nByctK5j59++gmffvqpQfUiIqpIhl4/mzRpgg0bNqBly5ZITU3F0qVL8frrr+PixYsa17+9e/ciMDAQz58/h6OjI8LCwlCjRg31+g8++ACenp6ws7NDTEwMpk+fjrt372L58uWFjlnZrp/5P69TU1Px559/Ys+ePdizZw8++ugjreegy1dffYVJkyYhLy8PderUgZ+fH6pXr44HDx7g9OnTiImJQUREBLp27QoAGDlyZKF9JCcn4+DBgzrX589CmzdvxnvvvYe0tDSYm5ujXbt2qFOnDjIyMpCYmIh169Zh3bp1GDRoEHbs2FGsdqnshBDo378/4uLi8Nprr8HPzw+mpqY681mlUdxb9M7OzgKACAkJ0VvOx8dHABBz5sxRLzty5IgAIAoe9o033hAAxJQpU/Tu8+7du8LExEQAEH/++ad6+Zw5cwQA4ePjU8yzEWLatGkCgDA1NRVLly4VmZmZhcocP35cdO7cWfj7+2ssv379urCzsxMARJcuXQp1m3j+/LmYOnWqACDkcrkIDQ0tsj6lad+ilLadr169KoKCgsRXX30ljh07Jvbu3SsAiAYNGhhch4o0fvx44ezsLO7cuWPwNuPGjRMtWrTQuV6pVIo+ffoIDw8PkZqaqrXMnTt3hFwuF7t27dK5n61btwoTExORnJxscN2o8mFXGXpZleT6KcSLv7MNGjQQM2fO1FielpYmrly5Io4fPy5Gjx4tXFxcxL1793TuZ/369cLExETrZ3JluX7q+rzOzs4WEydOVOeduLg4jfW6MsvZs2eFXC4XAMSKFStETk6Oxvrc3FwRGRkpvvzyS7310pW1Cvr2228FACGTycS0adO0fqZdvHhRDBo0SLRq1Urrud+4cUPvMSqDW7duiUuXLon09HSN5Tdu3BAARL169UR2dnah7f755x9x6dIlkZKSUlFVNUilCO5bt24VAEStWrW0Np7KokWLBADh4eGhsbykwT08PFxdn19++UVv2by8vEJ96Tp06CAACG9vb60XFxVVeLexsREPHz7Ue5zyDO6lbeeCVO9nZQzuEyZMEE5OTuL69esGb5OWliasra3FypUrta5XKpUiICBAtGzZUu/7OHfuXFGzZk29Yatz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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from aeon.visualisation import plot_boxplot, plot_critical_difference\n", "\n", "plot_critical_difference(results, names)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(
, )" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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JUtk27Yuv/xygjfgkp07dyoWi2np0qWSpFgsJq/Xq4kTJ6q9vd3l6gBI0vr16/XQQw8pNzdXBw4c0KhRo9wuCRgxNmzYoK9//ev6wx/+oIqKCt122236zne+o6985Svas2ePXn75ZZ177rmybVumSadiHMJvAlxjWZZmzJihSy+9VE8++aQWL16spUuX6r//+7/V3d3tdnnAiLJ79259//vf17nnnqvFixcf0121uLhYnZ2dPZbFYrGhLBHAB2677TatXLlSkvTEE09o7969LlcEjAybN2/Wxz/+cc2cOVNe76G2yzlz5ugb3/iG5syZo+nTp6umpkaSZJqmbNt2s1wkEUI3htzu3bv10EMPqaCgQF/60pd08cUXS5Iee+wxffGLX9TSpUv1X//1XwqHw5IOhfNQKORmyUBKcxxH3/3ud+Mn8TfeeKMkybbt+EmFbdtqaGiI7/OjH/1Izz33HAOrAQl2+DO2fft2vfXWW3rppZckSddff72WL1+u//7v/9bjjz+u6upqN8sEUt6mTZu0YMEC3XLLLXrkkUfiy23b1pw5c3THHXdo2rRpeuSRR7R69WpJh4I3fychEboxxA6f3K9atUqO42j8+PEyTVPRaFTSoRP56667Ttdff73+67/+S62trVq+fLmWL19OqxqQIIZh6Mtf/rL27NmjJ554Ir7cNM34lGFer1cZGRmSpOXLl+umm27S9OnTGVgNSCDHcWQYhp599ll97nOf0zXXXKObbrpJ8+fPV01Njb761a/qtttu009/+lP9x3/8h/bs2eN2yUBK2rp1q84991z9y7/8i/71X/81vvz73/++vvnNb8pxnHiLd1lZmX7yk5/oqaeeksSUmziE0I0hdfjkfteuXVq1alV8uc/ni5/c//jHP9YXv/hFffnLX9Yll1yi73znO/qnf/qneIsbgMFl27ZOP/10XXXVVXr22WfV0tISX3f4Cr3H41FBQYEefPBBPfTQQ3rzzTcZMRlIMMMw9Kc//UnXXXedli1bprfffls/+tGP9NZbb+m3v/2tJOnWW2/V1772NX3nO9/R008/zQVqYJB1dHTotttukyT9y7/8S3z5Aw88oPvuu0+LFi2KB+vDLd5paWl65pln6KmJOMOhzwOG0OF7W5YsWaKDBw/q6aefVm5ubny9ZVnyeDySpEmTJqm1tVVr165lBEggQQ63pEnSM888o3/6p3/SK6+8orPPPrvHui996UtatWqV0tPT9corr2jevHlulg2kpJqaGo0ePbrHsoceekhVVVX64Q9/qKqqKl1wwQX69Kc/rR/96Ec9tvvhD3+oRYsWacqUKUNZMpDyurq69L//+7+69957VVRUpD/+8Y969NFHde+99+o///M/9alPfeqYfTZt2qRRo0aprKzMhYqRjGjpxpBxHEemaco0TV100UV65ZVXtH379vg66VBrWjgc1pe//GVVVVXplVdeIXADg6ympkbNzc2yLEuGYcRbxq644gp99KMf1b333qvu7m4ZhhH/bB4egfXNN98kcAMJ8Mtf/lLz589XOBzucQ/o22+/re7ubjU1Nen888/Xpz71KT322GOSpCeffDI+td9NN91E4AYG0c6dO/XWW28pLS1NF198sVasWKHq6mqNHTtW9957r55//vljAvdjjz2mPXv2aPbs2QRu9EDoRkIN5OT+sHA4rIyMDK1fv15nnHGGW6UDKamjo0Mf/ehHtWDBAv3zP/+zamtre6z/u7/7O23fvj0+GvLh2z7+/d//XTt37tT06dOHvGYg1f3sZz/ThAkT9NprrykQCKijoyO+7rLLLlN1dbWmTZumT3/60/rJT34ix3Fk27befPNN7dy5U11dXS5WD6SeSCSiBx54QBUVFVq/fr3S0tL0iU98Qg899JBKS0tVVlamBQsWSPpwJo977rlHN998c4/PL3AYoRsJM9CT+8Ndz7Ozs7VixQpa04BBtmfPHm3evFnPP/+8/u7v/k5/+ctfdNppp+mWW27RCy+8IOnQiMimaeqhhx6SdGgAtcMnFBMmTHCtdiBVfeMb39Bdd92l0tJSjRs3Tps2bVJZWZk2b94sSZo2bZra2tqUk5Ojz3/+85Kk9vZ2LV++XM8++6xuvvlmpaWlufkWgJTj9/v15S9/WVdddZU++9nPat26dfHg/a1vfUvRaFQXXnihpEN/J7/1rW/pu9/9rt566y3GO0GvuKcbCbFnzx7t379fBQUFevzxx7V27Vrt3LlT11xzjT7zmc/oM5/5jKLRqGbOnKnzzz9f//7v/y6p5/2lAAbP22+/rQULFuiJJ57Q1VdfLcuyFIvF9H//7//Vyy+/rJdeekmf+9zndOmll6qjo0OrVq3SE088wckDkED79u3Tpz71KX3zm9/UF77wBe3Zs0fd3d265ZZbtHnzZv3hD3/QzJkztW7dOt14441yHEfRaFRjxozR1q1b9fzzz2vOnDluvw0gZezYsUPPPvusbr/9dknSli1b9K//+q966aWX9Nxzz2nBggXq6urSSy+9pNtuu02TJk3S3Llz9eCDD+rVV1/V3LlzXX4HSFaEbgw6Tu6B5LJ582add955+vKXv6zvfOc7x6xvaGjQW2+9pe9+97s6cOCAduzYIdu29bOf/UzXXHONCxUDI8PevXt1ySWXaPHixUpLS9Njjz2m3/zmNwoEArrxxhv16quv6pVXXtHMmTO1bds2VVZW6vXXX9fs2bO1YMECep8Ag8i2ba1cuVI33XST7r33Xt11112S+g7eL7/8sr7yla9o7969euONNwjcOD4HGESbNm1yMjMzndtvv73X9fX19c7vfvc754ILLnCmTp3qeDwexzAM5+c///kQVwqMDO+8846Tlpbm/Mu//EuP5a+99ppTX1/vOI7j2LbtOI7jNDU1OVu3bnW+9KUvOZMmTXK2bds25PUCI8Hhz5zjOM6jjz7q5OXlOR6Px/ne974XX15dXe1ccsklTl5enrN582Y3ygRGnPr6eud73/uek5ub69x1113x5e+8845zxRVXOKNGjXJef/11x3Ecp6Ojw/nd737n7N6926VqMZzQ0o1Bs2XLFlVUVGjZsmX69re/HV/+l7/8RVOnTlVhYWG8+3hzc7Nqamr0/e9/Xy+//LKef/55TZs2zcXqgdSza9cunXHGGbriiiv005/+NL78/vvv1/e+9z1t3LhREydOlHTsrR2hUEjZ2dlDXjOQ6m699VYVFxfr9ttvl2ma+stf/qLzzz9fmZmZeuihh3TZZZepsLBQkrR//359+ctf1vr16/X73/+e2TyABLFtOz5LR1NTk37961/rxhtv1IoVK/S1r31N0oct3q+++qpWr16t888/382SMcwwkBoGxa5du1RRUaErrriiR+C+//779ZnPfEahUEiS4lMQ5eXlacaMGXr88ce1ceNGAjcwyLq7uxWLxWSapnw+n9555x1J0ne/+1394Ac/0OrVq+OBW1I8cEejUUkicAMJMnfuXC1atCh+gp+ZmakXX3xRX//613XHHXfo6aefVmNjoySprKxMP/7xjzV9+nRddtllikQibpYOpJzm5mZ1dHTINM345ys/P1979+6VaZpa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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_boxplot(results, names, relative=True)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## References\n", "[1] Bagnall, Anthony, Jason Lines, Jon Hills and Aaron Bostrom. \"Time-Series\n", "Classification with COTE: The Collective of Transformation-Based Ensembles\", in IEEE Transactions on Knowledge and Data Engineering, vol. 27, no. 9, 2015\n", "\n", "[2] Lines, Jason, Sarqah Taylor and A. Bagnall. \"Time Series Classification with\n", "HIVE-COTE: The Hierarchical Vote Collective of Transformation-Based Ensembles\". ACM\n", "Transactions on Knowledge Discovery from Data. Volume 12 Issue 5, 2018\n", "[ACM Trans] (https://dl.acm.org/doi/10.1145/3182382)\n", "\n", "[3] Bagnall, Anthony, Michael Flynn, James Large, Jason Lines and Matthew Middlehurst\n", ". \"On the usage and performance of the Hierarchical Vote Collective of\n", "Transformation-based Ensembles version 1.0 (hive-cote v1.0)\" International Workshop\n", "on Advanced Analytics and Learning on Temporal Data, 2020\n", "[LNCS](https://link.springer.com/chapter/10.1007/978-3-030-65742-0_1)\n", "\n", "[4] Middlehurst, Matthew, James Large, Michael Flynn, Jason Lines, Aaron Bostrom, and\n", " Anthony Bagnall. \"HIVE-COTE 2.0: a new meta ensemble for time series classification\n", " .\" Machine Learning, 2021\n", "[ML 2021](https://link.springer.com/article/10.1007/s10994-021-06057-9)\n", "\n", "[5] Large, James, Lines, Jason and Bagnall, Anthony. A probabilistic classifier\n", "ensemble weighting scheme based on cross-validated accuracy estimates. Data Mining\n", "and Knowledge Discovery volume 33, pages1674–1709, 2019\n", "[DAMI](https://link.springer.com/article/10.1007/s10618-019-00638-y)\n", "\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.9.9" } }, "nbformat": 4, "nbformat_minor": 2 }