{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Deep learning based time series classification in aeon\n", "\n", "There are a range of deep learning based classification algorithms in the toolkit.\n", "The networks that are common to classification, regression and clustering are in the\n", "`networks` module. Our deep learning classifiers are based those used in deep\n", "learning bake off [1] and recent experimentation [2]. [3] provides an extensive recent\n", "review of related deep learning work.\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "The use case for deep learning classifiers is identical to that of all classifiers.\n", "However, you need to have tensorflow installed in your\n", "environment. If you have a GPU correctly installed the classifiers should use them,\n", "although it is worth checking the output.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2024-11-12 08:25:34.582860: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n", "2024-11-12 08:25:34.583988: I external/local_tsl/tsl/cuda/cudart_stub.cc:32] Could not find cuda drivers on your machine, GPU will not be used.\n", "2024-11-12 08:25:34.626288: I external/local_tsl/tsl/cuda/cudart_stub.cc:32] Could not find cuda drivers on your machine, GPU will not be used.\n", "2024-11-12 08:25:34.772595: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", "To enable the following instructions: AVX2 AVX512F AVX512_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", "2024-11-12 08:25:35.886826: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\u001B[1m65/65\u001B[0m \u001B[32m━━━━━━━━━━━━━━━━━━━━\u001B[0m\u001B[37m\u001B[0m \u001B[1m0s\u001B[0m 2ms/step\n" ] }, { "data": { "text/plain": [ "0.49854227405247814" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.metrics import accuracy_score\n", "\n", "from aeon.classification.deep_learning import TimeCNNClassifier\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=\"train\")\n", "cnn = TimeCNNClassifier(n_epochs=10)\n", "cnn.fit(italy, italy_labels)\n", "y_pred = cnn.predict(italy_test)\n", "accuracy_score(italy_test_labels, y_pred)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### Classifier Details\n", "\n", "The deep learning bake off [1] found that the Residual Network (ResNet) was the best\n", "performing architecture for TSC. ResNet has the following network structure.\n", "\n", "\n", "\"ROCKET.\"\n", "\n", "The Inception Time deep learning algorithm was proposed subsequent to [1].\n", "``InceptionTimeClassifier`` is an ensemble of five ``IndividualInceptionClassifier``\n", "deep learning classifiers. Each base classifier shares the same architecture based on\n", "Inception modules. Diversity is achieved through randomly initialising weights.\n", "A ``IndividualInceptionClassifier`` has the following structure.\n", "\n", "\"ROCKET.\"\n", "\n", "An ``IndividualInceptionClassifier`` is structured as follows.\n", "\n", "\"ROCKET.\"" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## Performance on the UCR univariate datasets\n", "You can find the dictionary based classifiers as follows. Please note we have not\n", "fully evaluated all the deep learners yet, they take a long time to run." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/afawaz/phd/venvs/aeon-dev-py39/lib/python3.9/site-packages/numba/np/ufunc/parallel.py:371: NumbaWarning: The TBB threading layer requires TBB version 2021 update 6 or later i.e., TBB_INTERFACE_VERSION >= 12060. Found TBB_INTERFACE_VERSION = 12050. The TBB threading layer is disabled.\n", " warnings.warn(problem)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "('DisjointCNNClassifier', )\n", "('EncoderClassifier', )\n", "('FCNClassifier', )\n", "('InceptionTimeClassifier', )\n", "('IndividualInceptionClassifier', )\n", "('IndividualLITEClassifier', )\n", "('LITETimeClassifier', )\n", "('MLPClassifier', )\n", "('ResNetClassifier', )\n", "('TimeCNNClassifier', )\n" ] } ], "source": [ "from aeon.utils.discovery import all_estimators\n", "\n", "est = all_estimators(\"classifier\", tag_filter={\"algorithm_type\": \"deeplearning\"})\n", "for c in est:\n", " print(c)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(112, 4)" ] }, "execution_count": 8, "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].replace(\"Classifier\", \"\") for t in est]\n", "# Not done these yet\n", "names.remove(\"Encoder\")\n", "names.remove(\"FCN\")\n", "names.remove(\"IndividualInception\")\n", "names.remove(\"IndividualLITE\")\n", "names.remove(\"MLP\")\n", "names.remove(\"TimeCNN\")\n", "names.remove(\"DisjointCNN\") # Multivariate only\n", "names.append(\"CNN\") # using old name\n", "\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": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(
, )" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAr4AAAD6CAYAAABH0UQmAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAzBklEQVR4nO3deVhUZd8H8O/AMAy7BoIgsgiKaaDmFqLhkmsYins9INqTuWWub5Ymbj2W4tbikgvaq5Vlj2W5L2DuioILkpqKS4KaBiiIbL/3Dy/mdWRAUGCQ8/1c11zlOfc553dmhjPfOXOf+6hEREBEREREVMWZGLsAIiIiIqKKwOBLRERERIrA4EtEREREisDgS0RERESKwOBLRERERIrA4EtEREREisDgS0RERESKwOBLRERERIrA4EtEREREisDgS0RERESKwOBLRERERIrA4EtEREREisDgS0RERESKwOBLRERERIrA4EtEREREisDgS0RERESKwOBLRERERIrA4EtEREREisDgS0RERESKwOBLRERERIrA4EtEREREisDgS0RERESKwOBLRERERIrA4EtEREREisDgS0RERESKwOBLRERERIrA4EtEREREisDgS0RERESKwOBLRERERIrA4EtEREREisDgS0RERESKwOBLRERERIrA4EtEREREisDgS0RERESKwOCrEPfu3YOrqytUKhViY2ONXQ6Vk82bNyMwMBA1atSAubk56tSpg7FjxyItLc3YpVE5+fHHHxEcHAxXV1dYWVmhcePGWLlyJUTE2KVROfnzzz8xdOhQNG7cGGq1Gi+99JKxSyJ6bqiNXQBVjBkzZiA3N9fYZVA5u3PnDlq2bIlRo0bB3t4ep0+fxtSpU3H69Gls377d2OVROZg3bx48PDwwd+5c1KhRAzt27MA777yDq1evIiIiwtjlUTlISEjApk2b0LJlS+Tn5yM/P9/YJRE9N1TC0wJV3h9//IFmzZph7ty5GDp0KI4ePYpmzZoZuyyqIMuWLcOQIUPw119/wcXFxdjlUBn7+++/4eDgoDdtyJAhWLduHf755x+YmPCHvaomPz9f97qGh4cjNjYWp0+fNnJVRM8HHhEV4L333sPQoUPh4+Nj7FLICOzt7QEA2dnZRq6EysPjoRcAmjRpgvT0dGRkZBihIipv/DJD9PTY1aGKW79+PU6dOoWf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ERQUpPcCfvLJJ9i0aRMOHTqEQ4cOIS0tDY6OjmjZsiUGDRqEAQMGlLpP0meffVbshWk2NjbYvn071q1bhzVr1uDYsWOIj4+Hra0tnJ2d8dZbb+GNN94odL/upUuXwt7eHlu2bMH69et1V2Qz+BIRUVV38eJF3chIhhSMUlBeVq9eXez80aNHP1fBFwD69OmD5s2b4/PPP8eOHTuwf/9+5OXlwcnJCd7e3hg5ciR69+5t7DIrHZWIiLGLICIiIiIqb1V3zB8iIiIiokcw+BIRERGRIjD4EhEREZEiMPgSERERkSIw+BIRERGRIjD4EhEREZEiMPgSERERkSIw+BIRERGRIjD4EhEREZEiMPgSERERkSIw+BIRERGRIjD4EhEREZEiMPgSERERkSIw+BIRERGRIjD4EhEREZEiMPgSERERkSIw+BIRERGRIjD4EhEREZEiMPgSERERkSIw+BIRERGRIjD4EhEREZEiMPgSERERkSIw+BIRERGRIjD4EhEREZEiMPgSERERkSIw+BIRERGRIjD4EhEREZEiMPgSERERkSIw+BIRERGRIjD4EhEREZEiMPgSERERkSIw+BIRERGRIjD4EhEREZEiMPgSERERkSIw+BIRERGRIjD4EhEREZEiMPgSERERkSIw+BIRERGRIjD4EhEREZEiMPgSERERkSIw+BIRERGRIjD4EhEREZEiMPgSERERkSIw+BIRERGRIjD4EhEREZEiMPgSERERkSIw+BIRERGRIjD4EhEREZEiMPgSERERkSL8HxEkq6tqTcYTAAAAAElFTkSuQmCC", "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": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(
, )" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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MGGC/vCHP+iMM87ov58CAAAAAIA01Od1ur3Q1NSkgoICVVZWsk43AAAAAMBzzc3NqqioUGNjo/Lz83vdLy1nLz9aS0uLJLFeNwAAAAAgrbS0tBw3dPuipdtxHO3du1e5ubkyDMPrctAPDl4VovcCkN44VoH0x3EK+APH6uDjuq5aWlpUXl5+xBDro/mipds0TY0YMcLrMpACeXl5vOkAPsCxCqQ/jlPAHzhWB5fjtXAf1KclwwAAAAAAwMkjdAMAAAAAkCKEbngiHA7rjjvuUDgc9roUAMfBsQqkP45TwB84VjOXLyZSAwAAAADAj2jpBgAAAAAgRQjdAAAAAACkCKEbAAAAAIAUIXQDAAAAAJAihG4AAAAAAFKE0A0AAAAAQIoQugEAADLI0avFOo7jUSUANm3apGeffdbrMpBihG4AAIAM4TiODMOQJL377rtqa2uTaXI6CHjlV7/6lT70oQ/pqaee8roUpBDvssgIR1/F56o+MDCOblED4J3t27frgx/8oCTp97//vS677DJt3rzZ46qAzHbbbbfpq1/9qq6++mr9/ve/97ocpEjA6wKAVHMcp/sq/r333qt33nlHb7/9tj772c/q3HPP1bRp0zyuEBicXNeVYRj6+9//rueee051dXWaM2eOPvOZzygQ4OMHGGhNTU166623NH36dL3zzjv61a9+pZkzZ3pdFpCxHMdRKBTSd77zHdm2rWuuuUaPPvqoPvKRj3hdGvoZLd0Y9A4G7ltuuUV33nmnpk2bpksuuURLly7VHXfcocbGRm8LBAYpwzD0+9//XldeeaV2796t0tJS/cd//IduuOEG1dXVeV0ekHFmzpypr371q3rnnXc0ceJE/du//Zsken8BA2n79u360Y9+pC1btqi1tVWSFIlEdM899+izn/2sFi5cqCeeeMLjKtHfCN3ICK+88op+//vf69lnn9VXvvIVvf/979fOnTt15ZVXqqCggC6wQArs3LlTt9xyi7773e/qkUce0a233qq8vDwVFBSouLjY6/KAjHLwc27ixIn6zne+I9d1NX/+fMViMZmmKdu2j9ifIA70v7q6Ol1yySX6yle+ogsuuEBXX321vvzlL+uFF15QZ2en7r77bt1xxx265pprGOM9yBC6kRHi8bhycnJ0zjnn6He/+50++MEP6sc//rE++clPqq2tTX/961+7rzYC6B8dHR0qKCjQF77wBW3fvl2TJk3SwoULdc8990iS1qxZ422BQAY4GLbj8bg6Ojr0oQ99SN/4xjf06KOPqqqqShdffLGSyaQsy5Ikvfjii0yuBqRILBbTRz7yEZ199tkaOXKkPv7xj+ull17SZz/7WU2YMEFf+tKXNGLECF1++eX6zGc+oz/+8Y9el4x+wjsqBp3DW60P/rutrU3JZFJ/+MMfdMMNN2jp0qX63Oc+J0l66aWX9Nvf/la1tbWe1AsMVo7jaP/+/XrmmWe0YMECXX755br//vslSW+++aZuuukmvfvuux5XCQxeB+dVeO6557Ro0SLNnj1bX/va1/Tkk0/qrLPO0hNPPKHa2lpdcMEFWrdunb7+9a/r3//939Xc3Ox16cCgsm/fPjU1Nam8vFxf/OIXdfnll6uzs1MNDQ1avXq1XnvtNd1www1KJBL60pe+pB07dqihoUFf/OIX1dbW5nX56AeGS79aDCKHT5p2+L8lae7cuXr99df14IMP6vrrr5ckdXZ26qqrrlJ2drYeffTR7mVUAPTNwZP7w7W2tur666/XH//4R1166aVHjFH7+te/rpdeeklPPPGESktLB7pcIGM8/fTTuuaaa/T1r39dw4YN07PPPquXX35Zy5cv1/Tp07V27Vp94hOfUEtLiyTp8ccf1+zZsz2uGhg8mpqadM011ygQCOhXv/qVCgoKtGvXLj388MP6zW9+o09+8pO6/fbbu/fftm2btm3bpqefflrXX3+9zjzzTA+rR38hdGPQOPyk/7777tMrr7yiadOm6eKLL9b8+fO1cuVKLVq0SOFwWLfddpvq6ur0v//7v9q7d6/efPNNBQKBY4I6gBM7eOy9+OKLWrlypVzX1Y033qhIJKI//vGPuu222zRq1Ch94QtfUCgU0tNPP62HH35YL730kqZPn+51+cCgc/CYrK+v19VXX63LL79cX/7yl9Xc3KwJEyboE5/4hP7f//t/3fvbtq1XXnlFEyZMUFlZmYeVA4OPbdu699579dRTT6miokL33XefCgsLVVlZqZ///Od67LHHdPXVV+tb3/qW16UihQjdGHTuuusu/eAHP9Bll12mFStWaMyYMbrhhhv0sY99TG+//ba+9rWvadu2bRo6dKjGjx+vn/3sZwoGg7Jtu3tMG4C++dOf/qQrrrhC73nPe/TGG29o7Nix+vnPf65Zs2bpscce029/+1stW7ZMkydPVk5Oju6//37NmDHD67KBQaWpqUn5+fnd91taWnTeeefpl7/8pYqLizV//nxddtll+ulPfypJeuaZZzR27FhNnTrVq5KBQe3gBTDbtvXAAw/okUce0ZgxY3oM3p/4xCd02223eV0yUoSFUuF7R7dO79mzR48//rguvvhivfnmm/re976ne++9V67r6uqrr9bzzz+vPXv2qLi4WOFwWIZhKJlMsm4wcBr+9re/6d5779XnPvc5tbW16eKLL9bChQv129/+VgsXLtTHPvYxbdmyRcXFxQoEAkcEAwCnr6qqStddd53e+9736qtf/aqkrvlM8vLytHr1at155536wAc+oAceeECStGPHDj3++OP62Mc+pilTpjC8CuhHdXV1Mk1ThYWFkiTLsnTDDTdIkn71q19p8eLFuu+++1RRUaHrrrtOlmXp/vvvVygU0s033+xl6UgR+tHC1w4P3C+99JJWrVqlffv2qaSkRJJ01lln6ZZbbtHIkSP1k5/8RL/+9a8lScOHD1ckEpFhGHJdl8AN9NHBTlI7d+7U1q1bFQgENG3aNBmGoZycHL3++usqLCzUxz/+cb366qtyHEcTJ05UcXExgRtIAdd1FQwG9cwzz+i//uu/JEllZWU6//zzu8eFPvTQQ92fmT/96U/1xhtvaPr06QRuoB9t3rxZpaWlmjt3ri699FI99thjWrlypYLBoL7whS/oc5/7nHbs2KHPfe5zamhoUEVFhT71qU/pK1/5iq666iqvy0eK0L0cvnX4GO6vfvWrevjhhyV1Xdn//ve/ry9/+cvd+7711lv6wQ9+oDfeeEM/+clPdMkll3hRMjCoPP7447rxxhsVDoe1Y8cOLV26VDfddNMRwzTmzZunLVu26Nlnn9WcOXM8rBYYvA5egN6zZ49uvfVWbd++XQsXLtTixYslSZ/5zGf06KOP6lvf+paSyaR27dqlRx55RC+99JJmzpzpbfHAIPPnP/9Z73//+zVu3DgVFRXJsiy98847mj9/vs455xxdddVVevLJJ7V69WoNGTJE99xzjwoKCuh1Ocjxm4XvHLxOdDBwb9u2TcuXL9fzzz+vxsZG/e53v9N9992n7Ozs7lnKZ8yYoRtvvFHPPvus3vve93pWO+BHBy9wHX6ha/Pmzbrrrrv05S9/WbNnz9a3vvUt/epXv9KECRP0oQ99SMFgUJK0YsUKve9971NxcbGXPwIwKLW3tysajXa3Xg8fPlzf/e539Y1vfEO//e1vZZqmPv/5z+vnP/+5hg0bpieffFK2bWvixIl65ZVXdMYZZ3j8EwCDR01NjXbu3Klp06bphRde0Kc+9Sldcskl+sAHPqBIJKLHH39cTz31lJ566inV1NTINE3t27dPOTk5+tGPfsS8QoMcLd3wlUQi0X0yL0k//OEPtXLlSpWWlurHP/6xJGnTpk26//779fzzz+umm27Sv//7vx/zPEyaBpy8vXv3qry8vPv+mjVr9Oijj6q+vl4PPPCATNNUMpnU5ZdfrpqaGn3961/Xhz/84SOOVQD965133tH73vc+XXrppRo1apSuu+465ebmqri4WPv379fNN9+sjRs36hOf+ER3i3dtba0KCwuVTCYVDoc9/gmAwWPdunW64YYbFI1GlZOToyeffFK/+MUvdNttt+mKK67Q7bffrqFDh0qS/vGPf2j9+vV6/PHHtW/fPj366KNMZpgBCN3wjauvvlrBYFCPPPKIpK5ZWb/73e/qv//7vzVv3jw9//zz3ftu2rRJ//Vf/6W//OUvuv7664/oag7g5N1///16+eWX9fDDDyscDst1XX3qU5/SM888o4kTJ2rVqlXd+8ZiMV1xxRVqbGzUl770JX3sYx8jeAMp8u1vf1v/+Z//qYkTJ6qjo0M5OTnq7OzUtddeqwsvvFCjRo3SbbfdpubmZn3gAx/Q5z73Oa9LBgald999V+95z3v0+c9/Xp/97GdVXl7e3U3817/+tW6++WZdddVV+o//+A9NmTKl+3FtbW0yDEPRaNSr0jGACN3wjbVr1+rMM8+UdKileteuXfrlL3+pO+64Q/fee6++9KUvde+/adMm3XnnnYrH43rkkUeYKAbog4NjRH/zm9/ooosuUnl5uZqbm5WXl6empibdfPPN+tOf/qQvfelLWrx4cXerWSwW00UXXaRIJKKnn35aubm5Hv8kwOD11a9+VQ8++KB++tOfaujQoVqzZo2ee+45rV69WrNnz1Z9fb1qa2uVTCb1/e9/X5/85Ce9LhkYVOrr63XFFVfo7LPP1o9+9KPu7YePz/71r3+tW265RR/96Ef1xS9+UePHj/eqXHiI2cvhCw8++KC+/vWvS+pqeZsyZYpisZhGjhyp6667Tt/85jf1jW98Q/fdd1/3YyZOnKjvfOc7+vWvf909HhXAiR0M3OvXr9frr7+u4uJirVy5Uv/2b/+mlStXKj8/X9///vd14YUX6oknntBDDz2kRCIhSQqHw3rxxRf1y1/+ksANpNgPf/hD/eu//qsWL16s2tpa3XTTTfrzn/+sdevW6UMf+pDOOecctba2yrZtnXvuuV6XCww6VVVV2rdvnz760Y/KcZzu7YFAQK7rynVdffKTn9T3vvc9/eEPf9Cdd96pbdu2eVgxvELoRtp78MEHtXjxYv2f//N/JElz5syRbdt673vfq1gspvLycn32s5/VkiVL9I1vfKN7qRRJqqiokGmachyHlm7gJBwM3G+99ZamTZum/Px8hcNhbd++XTU1Nfre976nVatWKS8vTz/5yU80btw4PfLII/rZz352RPAeOXKkxz8JMPgcvHi8ceNGrVmzRpL0P//zP/rIRz6iz3zmM3rssce6PxdvvPFGPfjgg3rttdf07rvv0roGpMCaNWu0c+dOnX/++d3nmwcZhiHDMNTe3q6LLrpIP/rRj/Tqq68qOzvbw4rhFUI30tqvf/1rff7zn9cTTzyhj370o5Kkc845R0888YRqa2t1wQUXKBaLafjw4brhhhu0ZMkSLV68WE888cQRz3NwZlcAvTu8hXvevHndY0YlaeHChbrpppvU1NSkb3/721q1apXy8/N13333adKkSfrxj3+sX/ziF57WDwxmB1cP+P3vf68Pf/jDevHFF7Vr1y5J0s9//nNdc801uu666/TMM8+os7Oz+3ETJkxQSUmJV2UDg9ro0aMVCAT05JNPSur5fPNnP/uZFi1apCuvvFIrVqxQaWnpQJeJNEASQdp6+OGHde211+q8887TggULjvjezJkz9eijj6qxsfGI4L1o0SI99NBDuuKKKzyqGvCng4F77dq1Ov/885WTk6NvfvObktR9An/VVVfphhtuUFtb2xHB+95779UFF1ygSy65xMsfARjUDMPQc889p09+8pPdvb8O71Hy8MMPd0/WdLDFG0BqjRo1Snl5efqf//kf7dy5s3v74UMad+3apZkzZ8p1XeXl5XlRJtIAE6khLT344IP60pe+pJtvvll33323PvGJT+jb3/72EcsWSdKbb76pj3/84yoqKtILL7xwxBIoh09iAaB3h3cpnzdvnhYsWKCtW7dqzJgx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K5WVlRiNRstzv/zyC4mJiVy8ePGB90REREREROSPKTE1QfW7lOfk5HD27Flu3LgBwPz587GxscHf35/y8nLMZjO3bt0iODiY3NxcunfvbsXKRURERERE/lt0prsJW7RoESkpKRQXF/Paa68REBDAmDFjSE1NJSwsjKKiIrp160ZVVRUGg4GTJ09ia2vbILSLiIiIiIjIwyl0NyH1w3J6ejrvv/8+mzZt4ubNm8TExFBVVcWcOXOYMGECZWVlxMXFUV1djbOzMzNmzMBoNKppmoiIiIiIyCNQ6G4iysrKcHFxAe4F7v379+Pu7s6iRYsA+OGHHwgNDaW0tJR3332XyZMnP/Ab98eCiYiIiIiIyN+jPcJNQEZGBv7+/hw5coTy8nJCQkL49NNPKSwstDzTq1cvVqxYQZs2bfjss8+IiYl54HcUuEVERERERB6NQncT0LZtWwDCw8MpLi4mNTUVHx8fMjIySE9PtzzXq1cvwsLCMJlM5OXlWatcERERERGRZ4a2lzcRBQUFBAUFYTabiYqKwmg0MnXqVFq3bk1QUBCjRo2yPHvp0iU6d+6sZmkiIiIiIiL/kEJ3E3I/eAOsX7+euro6ZsyYgbOzM3PmzGHkyJENnleXchERERERkX9GobuJ+X3wNpvNzJw5k5qaGtatW4ePj4+VKxQREREREXl2aBmzifHw8CA6OhqAuXPnYjAY2LBhA6+88gp9+/a1cnUiIiIiIiLPFq10N1EFBQXMmzePK1eukJqaSqdOnQBtKRcREREREXmSlK6aKA8PD9auXcuQIUPo2LGj5boCt4iIiIiIyJOjlW4BtMItIiIiIiLSGBS6RURERERERBqJljZFREREREREGolCt4iIiIiIiEgjUegWERERERERaSQK3SIiIiIiIiKNRKFbREREREREpJEodIuIiIiIiIg0EoVuERERERERkUai0C0iIiIiIiLSSBS6RURERERERBrJ/wEGhCcxTma6oAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_boxplot(results, names, relative=True)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## References\n", "\n", "[1] Fawaz et al. (2019) \"Deep learning for time series classification: a review\" Data\n", " Mining and Knowledge Discovery. 33(4): 917-963\n", "\n", "[2] Fawaz et al. (2020) \"InceptionTime: finding AlexNet for time series classification.\n", "Data Mining and Knowledge Discovery. 34(6): 1936-1962\n", "\n", "[3] Foumani et al. (2023) \"Deep Learning for Time Series Classification and Extrinsic\n", "Regression: A Current Survey\" ArXiv https://arxiv.org/pdf/2302.02515.pdf\n", "\n", "[4] https://github.com/MSD-IRIMAS/CF-4-TSC" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [] } ], "metadata": { "file_extension": ".py", "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.12" }, "mimetype": "text/x-python", "name": "python", "npconvert_exporter": "python", "pygments_lexer": "ipython3", "version": 3 }, "nbformat": 4, "nbformat_minor": 2 }