{ "metadata": { "name": "", "signature": "sha256:67bb5cb62db488fa6c0c5a4f4565f6cf6aebbd3909fcdc4d34023c8401e16617" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Change Detection Tutorial\n", "\n", " author: @amanqa\n", " source: github.com/amanahuja/change-detection-tutorial\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Modified Stylesheet for notebook.\n", "from IPython.core.display import HTML\n", "def css_styling():\n", " styles = open(\"custom.css\", \"r\").read()\n", " return HTML(styles)\n", "\n", "css_styling()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n" ], "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "" ] } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "##Section 01: Introduction\n", "\n", "\n", "Lesson Plan\n", "\n", "* Part 01: Introduction\n", "\n", " * Introduction (what is change detection)\n", " * Justification (why does change detection matter)\n", " * Offline vs. Online change detection\n", " * References and Further Reading\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import matplotlib.pyplot as plt\n", "import numpy as np" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ "from collections import defaultdict\n", "np.random.seed(seed=111111)\n", "np.set_printoptions(precision=3, suppress=True)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## An example signal" ] }, { "cell_type": "code", "collapsed": false, "input": [ "signal = np.random.normal(scale=1, size=200)\n", "signal[:50] += 50; signal[50:] += 55; signal[150:] -= 20\n", "signal[110] = 0\n", "\n", "plot(signal)\n", "ylim(0,100)\n", "title(\"An example signal\")" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nXjUAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## What is change detection?\n", "\n", "There are several points of change in this signal. We want to be able to detect these types of change, and distinguish between important changes and unimportant changes. \n", "\n", " * We might decide that the slight jiggle or noise of the signal is not important, and should be ignored by our change detection algorithm. \n", " * What about the slight change at 50? Is that important? \n", "\n", "In an online algorithm, we are given a 'streaming' signal. We don't have information about the future behavior of the signal. So when we encounter the change at point 50, we have to decide whether it is important or not WITHOUT KNOWING about the larger change at 150, or the sharp drop at 110.\n", "\n", " * The sharp drop at 110 is the change with the largest magnitude in our signal. Yet why is it there? Is something significant going on? or is there a datapoint missing and being interpreted as '0'? Are missing data points okay to ignore, or should we sound the alarm? \n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Many types of signals to consider\n", "\n", "There are many types of signals, and \"change\" can mean very different things. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Broken trend or seasonality\n", "These are monthly-average daily calls to directory assistance Jan. 62 \u2013 Dec 76. We see a sudden drop in activity in this signal. \n", "\n", "Data from [datamarket](http://datamarket.com/data/set/22yq/monthly-average-daily-calls-to-directory-assistance-jan62-dec76#!display=line&ds=22yq)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "signal = [350,339,351,364,369,331,331,340,346,341,357,398,381,367,383,375,353,361,375,371,373,366,382,429,406,403,429,425,427,409,402,409,419,404,429,463,428,449,444,467,474,463,432,453,462,456,474,514,489,475,492,525,527,533,527,522,526,513,564,599,572,587,599,601,611,620,579,582,592,581,630,663,638,631,645,682,601,595,521,521,516,496,538,575,537,534,542,538,547,540,526,548,555,545,594,643,625,616,640,625,637,634,621,641,654,649,662,699,672,704,700,711,715,718,652,664,695,704,733,772,716,712,732,755,761,748,748,750,744,731,782,810,777,816,840,868,872,811,810,762,634,626,649,697,657,549,162,177,175,162,161,165,170,172,178,186,178,178,189,205,202,185,193,200,196,204,206,227,225,217,219,236,253,213,205,210,216,218,235,241]\n", "plt.plot(signal, alpha = 0.5)\n", "plt.title('Example: Directory Assistance Calls')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 15, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAEKCAYAAADzQPVvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlY01f2P/B3WBRRQEAISrBRATGKiAtaWjUVgx3rvlCx\nVbpMOx2n021+jst8v1PtMyNx2k7VTp3OOFhp1SLt9AtoLcWlWKutqLinFlBA1ggGkE0icH9/XBMS\nlhBJSAKc1/PwSLZPTgBPTs69n3sFjDEGQgghvZqdtQMghBDS/SjZE0JIH0DJnhBC+gBK9oQQ0gdQ\nsieEkD6Akj0hhPQBlOwJAGDPnj2YPn26xZ4vNjYWL730ksWeryfpyz+b9PR0+Pn5aS+LxWIcO3bM\nihH1HpTsLUAsFsPZ2RkuLi7ar9dee83aYXUbqVSKAQMGwNXVFW5ubpg8eTK2bt0KtVqtvc+GDRuw\na9cusz/3pk2bsGrVKrMftzN79uyBnZ0dEhMTTT6WsT8bqVSKuLg4k5/P3NRqNTZt2oTAwEAMGjQI\nI0aMwIsvvoj8/PyHPpZAIIBAIOiGKPseSvYWIBAIcOjQIVRXV2u/duzYYe2wuo1AIMBHH32Eu3fv\norS0FO+//z4SEhIwd+5cox7f2NjYzRF2rKmpqUuPi4+PR3BwMD799FMzR9QxW02Cy5Ytw6FDh/D5\n55/j7t27uHTpEiZPnkwVurUx0u3EYjE7duxYu7e98sorbOnSpdrLf/zjH1lERARjjDGVSsWeeuop\n5uXlxdzd3dm8efNYYWGh9r4zZ85k//M//8PCw8PZoEGD2Pz581lZWRlbuXIlc3V1ZVOmTGF5eXna\n+wsEArZjxw42cuRINmTIELZ27VrW3NzMGGPsk08+YY8//rj2vj///DObPXs28/DwYKNHj2aJiYlG\nv16pVMr+85//6F1369Yt5uzszA4dOsQYY+ztt99mzz77LGOMsdzcXCYQCFhcXBwbPnw4mzlzJmOM\nsbi4ODZmzBjm7u7O5syZw/Lz87XHu3r1qjY+oVDItmzZwlJTU1m/fv2Yo6MjGzRoEJswYQJjjLGi\noiI2f/585uHhwfz9/dmuXbu0x3n77bfZ0qVL2bPPPstcXV3ZX/7yF+bs7Mzu3Lmjvc/58+eZl5cX\na2xsbPf15uXlMUdHR3b+/HnWr18/Vlpaqr2trKyMPfXUU2zw4MHMw8ODTZ8+XXubXC5nvr6+zMXF\nhY0ePVr7N6L7s6mvr2fPPPMM8/T0ZIMHD2ZTpkxhSqWSbdy4kdnb2zMnJyc2aNAg9vvf/54xxthr\nr73G/Pz8mKurK5s0aRI7efKk3mtdvnw5W716NXNxcWFjx45l586d0/sdLV68mHl5eTFPT0/26quv\nam8z9LvQdeTIETZgwAC9v9PWdu/ezcaMGcNcXFzYyJEj2b/+9S/tbd999x0TiUTay7r/d86cOcMm\nTZrEXF1dmVAoZG+99VaHz0HaomRvAWKxmB09erTd2+rq6lhgYCDbs2cP+/7779mQIUNYUVERY4yx\nO3fusK+++orV19ez6upqtnz5crZo0SLtY2fOnMkCAgLYzZs3WVVVFZNIJMzf358dO3aMNTY2stWr\nV7Pnn39ee3+BQMBmzZrFKioq2K1bt1hgYKA2Kesm+5qaGiYSidiePXtYU1MTu3DhAhsyZAhTKBSM\nMcb27dvHxo8f3+HrlUqlLC4urs31M2bMYOvWrWOMtZ/sY2JiWF1dHauvr2dJSUnM39+fXb9+nTU1\nNbG//OUvLDw8nDHG2N27d5mPjw/7+9//zhoaGlh1dTU7c+YMY4yxTZs2sVWrVuk97/Tp09nvfvc7\n1tDQwC5evMi8vLzY8ePHtXE4Ojqy5ORkxhhPrnPnzmX//Oc/tY9/44032Guvvdbh633nnXfY7Nmz\nGWOMhYeHs/fff1972/r169krr7zCGhsbWWNjI/vhhx8YY4xdv36d+fn5sZKSEsYYY/n5+ezGjRtt\nXsPHH3/M5s+fz+rr61lzczPLzMxkd+/e7fDnvHfvXqZSqVhTUxN7//33mY+PD2toaNC+VicnJ/bN\nN9+w5uZmtmHDBjZt2jTGGGONjY1s/Pjx7K233mJ1dXXs3r172lgN/S5aW7duHZNKpR3+rBhj7Ouv\nv2Y3b95kjDF24sQJ5uzszDIzMxljhpP9tGnT2N69exljjNXW1rKffvrJ4PMQfZTsLeCRRx5hgwYN\nYoMHD9Z+6Va+Z86cYe7u7uyRRx5hCQkJHR7nwoULzN3dXXtZKpWyLVu2aC//4Q9/YHPnztVePnjw\noLa6ZYwn+2+//VZ7eefOndpPEbrJPiEhQa8CZYyxl19+mW3evNmo19tRsl+xYgV7+eWXGWPtJ/vc\n3FztfZ988km9YzQ1NTFnZ2eWn5/P9u/fzyZOnNjuc+selzFerdrb27OamhrtdRs2bGDPPfec9v6a\n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\n", "text": [ "" ] } ], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Abberation in periodicity\n", "\n", "This is a fairly regular sinusoidal signal, shown with an anomaly where one of the waves is squashed. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "signal = np.sin(np.linspace(0, 15*np.pi, num=300))\n", "signal[105:155] *= 0.1\n", "signal = 10 * signal + 50\n", "\n", "noise = np.random.normal(scale = 1.5, size=300)\n", "signal = signal + noise\n", "\n", "plt.ylim(0,100)\n", "plt.plot(signal)\n", "plt.title('Example: periodic signal anomaly')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 16, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAEKCAYAAADzQPVvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVOX+B/DPmOSKLKIsIpAgyqbgnkvigpa53VSulkq2\n3pZb/TItu5W2IVneUrP6lV4lNberiZoabqhlaoorqLiAAgIuoAmobN/fH9/fDAybw8yZGeB836+X\nL5ntzHNmznzOc57zPM/REBFBCCFEvdbA2gUQQghhfhL2QgihAhL2QgihAhL2QgihAhL2QgihAhL2\nQgihAhL2olpLly5Fv379rF2MSg0bNgzLli0z6rVeXl7YtWsXACAyMhLPP/+8YuVasWIFhg4dqtjy\nqhIXF4e2bdua/X3MqTZvX/VNQ2sXQM28vLxw9epVPPDAA7r7pkyZgvnz51uxVHXHli1bjH6tRqPR\n/f3uu+8qURydp556Ck899ZSiyxTCVBL2VqTRaLB582YMHDjQ2kWpU7TjAMsGthCietKMU0u99NJL\nGDt2rO7222+/jcGDBwMAcnJyMHz4cLRu3RqOjo4YMWIE0tPTdc8NDQ3F+++/jz59+sDW1hYjR47E\n9evX8dRTT8HOzg49evTApUuXdM9v0KABFixYAG9vb7Rq1QrTp09HVQOrz5w5g7CwMLRs2RIdO3bE\n2rVrDV6n0NBQzJgxAz179oSdnR1Gjx6NnJwc3eMHDhxA79694eDggODgYOzZs0fvte+99x769OmD\n5s2b4+LFiwgNDcXixYsB8A7gk08+gZeXF5ydnREREYG//vpL9/ply5bB09MTTk5OiIyM1CvXrFmz\nMGnSJN3t3377TVcODw8PREdHV7o+S5cuhbe3N1q0aIF27drhp59+0t1ftmkiNjYWHTp0gL29PV55\n5RX0799fV+6lS5eib9++mDZtGhwdHdGuXTts27ZN99olS5bA398fLVq0gLe3N77//nuDP+/XX38d\nHh4esLOzQ7du3fDbb7/prXN4eDgiIiLQokULBAYG4siRI7rHT58+jdDQUDg4OCAwMBCbNm3SPfb0\n00/j5ZdfxrBhw2Bra4t+/fohMzMTr7/+OhwcHODn54djx47pnh8VFQUfHx+0aNECAQEB2LBhQ6Xl\nfeWVV/DWW2/p3Tdy5Eh89dVXBq+zqAYJq/Hy8qIdO3ZU+lh+fj75+vrS0qVLae/eveTk5ETp6elE\nRHTjxg1av3493blzh27fvk3jxo2j0aNH617bv39/at++PV28eJFu3bpF/v7+5OPjQzt37qSioiKa\nPHkyTZkyRfd8jUZDAwcOpJycHLp8+TL5+vrSokWLiIhoyZIl1LdvXyIiys3NJXd3d1q6dCkVFxfT\n0aNHycnJiRITE4mIaMWKFdSpU6cq17d///7Upk0bSkhIoLy8PBozZgxNnDiRiIjS0tKoZcuWtHXr\nViIi2r59O7Vs2ZKuX7+ue62npyclJiZScXExFRYWUmhoKC1evJiIiBYvXkw+Pj6UnJxMubm59MQT\nT9CkSZOIiCghIYGaN29O+/bto3v37tGbb75JDRs2pJ07dxIR0axZs3TlSElJIVtbW1q1ahUVFRXR\njRs36NixYxXWJTc3l1q0aEFJSUlERJSZmUkJCQkVPrNr165RixYt6Oeff6bi4mKaN28e2djY6Mq9\nZMkSsrGxoUWLFlFJSQl9++235ObmpnufX375hS5evEhERHv27KGmTZtSfHw8ERHt3r2b3N3dq/y8\nly9fTtnZ2VRcXExz584lFxcXunfvHhERzZw5kxo3bkxbt26lkpISmjFjBvXq1YuIiAoKCsjb25tm\nz55NhYWFtGvXLrK1taWzZ88SEVFERAQ5OTlRfHw83b17lwYOHEienp60bNkyKikpoffee48GDBig\nK8fatWspIyODiIhWr15NzZo1o8zMzAqf1aFDh8jNzY1KSkp0n13Tpk3p6tWrVa6jMJyEvRV5enpS\n8+bNyd7eXvdPG7JERAcPHiQHBwfy9PSkVatWVbmco0ePkoODg+52aGgoRUZG6m5PnTqVhg0bpru9\nadMmCg4O1t3WaDT066+/6m5/8803NGjQICLS/zGuWrWK+vXrp/feL7zwAn344YcGrW9oaCjNmDFD\ndzsxMZEefPBBKi4upqioKF04aw0dOpSio6N1r505c2aF5WlDc+DAgfTtt9/qHjt79izZ2NhQUVER\nffjhhzRhwgTdY3l5efTggw/qwn7mzJm6sI+MjKQnnnjivuuSm5tL9vb2tG7dOsrPz9d7rOxnFh0d\nTb1799Z7vG3btnph7+Pjo1c2jUZDWVlZlb7v6NGjad68eUR0/7Avz8HBgU6cOEFEvM5hYWG6xxIS\nEqhJkyZERLR3715ycXHRe+2ECRNo1qxZRMRh/8ILL+geW7BgAfn7++tunzhxguzt7assR3BwMMXE\nxBCR/mdFROTn50fbt2/XLffxxx83eP1E9aQZx4o0Gg1iYmKQk5Oj+/fss8/qHu/RowfatWsHABg3\nbpzu/vz8fLz44ovw8vKCnZ0d+vfvj1u3buk1vTg7O+v+bty4MVq3bq13Ozc3V68sZXt1eHh44MqV\nKxXKe+nSJRw8eBAODg66fz/99BOysrIMXufy71NYWIjr16/j0qVLWLt2rd6yf//9d2RmZlb62vIy\nMjLg6empt+yioiJkZWUhIyMD7u7uuseaNm2Kli1bVrqc1NRU3WdenWbNmmH16tX47rvv4ObmhuHD\nh+Ps2bMVnnflyhW99wZQ4baLi4te2QDovp+tW7eiV69eaNmyJRwcHLBlyxbcuHHjvuUDgC+++AL+\n/v6wt7eHg4MDbt26hevXr+seL7uNNG3aFHfv3kVJSQmuXLlS4bP29PTUbRMajabC9lT2dpMmTfS2\nrx9//BEhISG67/XUqVNVrsPkyZOxfPlyAMDy5cv1mteEaSTsa7GFCxeioKAAbm5umDNnju7+uXPn\nIikpCYcOHcKtW7ewZ88eEB+lVbocQ05kXr58We/vNm3aVHiOh4cH+vfvr7dzun37NhYuXGjwOpV/\nHxsbG7Rq1QoeHh6YNGlShWVPnz7doPVwc3NDSkqK3rIbNmwIFxcXuLq6IjU1VfdYfn5+lWHj4eGB\nCxcuGLQuQ4YMQWxsLDIzM9GxY8dKu2+6ubkhLS1Nd5uI9G5X5969exgzZgymT5+Oq1evIicnB8OG\nDavyey5r3759+Pzzz7F27VrcvHkTOTk5sLOzM+i1bm5uSE1N1XvupUuXKt0m7ufSpUt44YUXsHDh\nQmRnZyMnJweBgYFVlmPixImIiYnB8ePHcebMGYwePbrG7ykqJ2FvZVVt9ElJSXj//fexYsUK/Pjj\nj5gzZw6OHz8OgGt9TZo0gZ2dHbKzs/Hhhx9Wu1xDfuBffPEFbt68idTUVMyfPx9///vfKzzn8ccf\nR1JSEpYvX47CwkIUFhbizz//xJkzZwxe1+XLl+P06dPIz8/HBx98gHHjxkGj0WDixInYtGkTYmNj\nUVxcjLt37yIuLk7vxHN16zFhwgR8+eWXSElJQW5uLt59912MHz8eDRo0wJgxY7B582b8/vvvKCgo\nwAcffICSkpJKl/Pkk09ix44dWLt2LYqKinDjxg3d517W1atXERMTg7y8PNjY2KBZs2Z6XWi1hg0b\nhpMnTyImJgZFRUVYuHCh3tFKdQoKClBQUAAnJyc0aNAAW7duRWxsrEGvvX37Nho2bAgnJycUFBTg\no48+0jthXZ2ePXuiadOmmDNnDgoLCxEXF4fNmzdj/PjxAAzbnrTy8vKg0Wjg5OSEkpISLFmyBKdO\nnary+e7u7ujWrRsmT56MsWPHolGjRga/l6iehL2VjRgxAra2trp/Y8aMQXFxMSZNmoR33nkHQUFB\n8PHxQWRkJCZNmoTCwkK88cYbuHPnDpycnNC7d2889thjFWq9ZW9rNJpqHweAUaNGoWvXrggJCcHw\n4cN1zUllX2tra4vY2FisWrUKbdq0gaurK2bMmIGCggIAPJgoMDCwynXVaDSYNGkSnn76abi6uqKg\noEA3psDd3R0xMTGIjIxE69at4eHhgblz5+oFS3U1+2eeeQaTJk3CI488gnbt2qFp06ZYsGABACAg\nIAALFy7Ek08+CTc3Nzg6Ouo1U5RdRw8PD2zZsgVz585Fy5YtERISghMnTlR4v5KSEnz55Zdo06YN\nWrZsiX379uHbb7+tsDwnJyesXbsW06dPh5OTE06fPo1u3brpQqy678bW1hbz589HeHg4HB0dsXLl\nSowaNarS55b36KOP4tFHH4Wvry+8vLzQpEkTeHh4VLrO5Zf14IMPYtOmTdi6dStatWqFV199FcuW\nLYOvr2+lr61uWf7+/pg6dSoefvhhuLi44NSpU+jbt2+1r42IiMDJkyelCUdp1TXoT5kyhVq3bk2B\ngYG6+27cuEGDBw+m9u3bU1hYGOXk5Ogei4yMJB8fH+rQoYPeCT9Ru2k0Grpw4YLZ36fsCVW1Ki4u\nJjc3N4qLi7N2UWqtvXv3koeHh7WLUe9UW7OfMmWKXp9fgPvMhoWFISkpCYMGDUJUVBQAIDExEatX\nr0ZiYiK2bduGl19+ucpDZaFepMILo8XGxuLmzZu4d++ero9/r169rFyq2qmwsBBfffWVotNXCFZt\n2Pfr1w8ODg56923cuBEREREA+HBLO0AiJiYGEyZMgI2NDby8vODj44NDhw6ZqdhCSZYciarGUa9/\n/PEHfHx80KpVK/zyyy/YsGGDtEVX4vTp03BwcEBWVhbeeOMNaxen3qnxdAlZWVm6LlvOzs66bndX\nrlzRq624u7vrnVwTtVdxcbFF3mf37t0WeZ/aZubMmZg5c6a1i1Hr+fn5VegSLJRj0gnayk6ulH9c\nCCGE9dW4Zu/s7IzMzEy4uLggIyNDN5iiTZs2en2Z09LSKu2X6+PjY3A/ZiGEEMzb2xvnz583+vU1\nrtmPHDlSNzFUdHS0btDDyJEjsWrVKhQUFCA5ORnnzp1Djx49Krz+woULugFA9fHfzJkzrV4GWT9Z\nPzWuX31eNyIyuZJcbc1+woQJ2LNnD65fv462bdvio48+wjvvvIPw8HAsXrwYXl5eWLNmDQDuTxse\nHg5/f380bNgQ33zzjTTjCCFELVFt2K9cubLS+3fs2FHp/e+++67iF4IQQghhOhlBq7DQ0FBrF8Gs\nZP3qtvq8fvV53ZSgISKLjnLRaDSw8FsKIUSdZ2p2Ss1eCCFUQMJeCCFUQMJeCCFUQMJeCCFUQMJe\nCCFUQMJeCCFUQMJeCCFUQMJeCCFUQMJeCCFUQMJeCCFUQMJeCCFUQMJeCCFUQMJeCCFUQMJeCCFU\nQMJeCCFUQMJeCCFUQMJeCCFUQMJeCCFUQMJeCCFUQMJeCCFUQMJeCCFUQMJeCCFUQMJeCCFUQMJe\nCCFUQMJeCCFUQMJeCCFUQMJeCCFUQMJeCCFUQMJeCCFUQMJeCCFUQMJeCCFUQMJeCCFUQMJeCCFU\nQMJeCCFUwOiwnz17NgICAhAUFIQnn3wS9+7dQ3Z2NsLCwuDr64shQ4bg5s2bSpZVCCGEkYwK+5SU\nFPzwww+Ij4/HyZMnUVxcjFWrViEqKgphYWFISkrCoEGDEBUVpXR5hRBCGMGosG/RogVsbGyQn5+P\noqIi5Ofnw83NDRs3bkRERAQAICIiAhs2bFC0sEIIIYxjVNg7Ojpi6tSp8PDwgJubG+zt7REWFoas\nrCw4OzsDAJydnZGVlaVoYYUQQhinoTEvunDhAr766iukpKTAzs4O48aNw/Lly/Weo9FooNFoKn39\nrFmzdH+HhoYiNDTUmGIIIUS9FRcXh7i4OMWWpyEiqumLVq9eje3bt2PRokUAgGXLluHAgQPYtWsX\ndu/eDRcXF2RkZGDAgAE4c+aM/htqNDDiLYUQQtVMzU6jmnE6duyIAwcO4M6dOyAi7NixA/7+/hgx\nYgSio6MBANHR0Rg9erTRBRNCCKEco2r2ADBnzhxER0ejQYMG6NKlCxYtWoTbt28jPDwcly9fhpeX\nF9asWQN7e3v9N5SavRBC1Jip2Wl02Bv9hhL2QghRY1ZpxhFCCFG3SNgLIYQKSNgLIYQKSNgLIYQK\nSNgLIYQKSNgLIYQKSNgLIYQKSNgLIYQKSNgLIYQKSNgLIYQKSNgLIYQKSNgLIYQKSNgLIYQKSNgL\nIYQKSNgLIYQKSNgLIYQKSNgLIYQKSNgLIYQKSNgLIYQKSNgLIYQKSNgLIYQKSNgLIYQKSNgLIYQK\nSNgLIYQKSNgLIYQKSNgLIYQKSNgLIYQKSNgLIYQKSNgLIYQKSNgLIYQKSNgLIYQVrF8PfPyx5d5P\nwl4IIawgPh6IjbXc+0nYCyGqtH07sG6dtUtRP6WlASdPAkSWeT8JeyFElXbsADZtsnYp6qe0NODW\nLf7fEiTshRBVyswE0tOtXYrKFRZyWNZVaWlAmzZcu7cEo8P+5s2bGDt2LPz8/ODv74+DBw8iOzsb\nYWFh8PX1xZAhQ3Dz5k0lyyoUNHcukJ1t7VKI2i4z03I1z5p6/31gzBhrl6LmPvyQj5jS0oBHH60D\nYf/6669j2LBhOH36NE6cOIGOHTsiKioKYWFhSEpKwqBBgxAVFWXUsi3VhqVmUVHA8uXWLoWo7TIz\ngdTU2vebvHsXWLyYT3KePm3t0tTMunXAihVAgwZAnz6WC3sNUc2/xlu3biEkJAQXL17Uu79jx47Y\ns2cPnJ2dkZmZidDQUJw5c0b/DTUaVPeWly8D/v5Ax47A1q1Aq1Y1LZ24n7t3gSZNgG7dgD//tHZp\n6q8ff+TD9EGDrF0S4zk7A9euATk5gJ2dtUtTatkyDswePfgI9euvrV0iw9y9C9ja8j8XF2DRIuDN\nN4EDB+7/2vtl5/0YVbNPTk5Gq1atMGXKFHTp0gXPP/888vLykJWVBWdnZwCAs7MzsrKyarzsgweB\n/v2Bvn2Bf/yjbuy1r1zh2k9dkZ4OtG3L5Z47lw8pc3KsXar6hQiIjOQKS100aRJ3C8zOBnx8al+7\nfVwc8Le/AVOmAGvWAMXF1i6RYRISAA8PPtfg7g54eQEpKZZ5b6PCvqioCPHx8Xj55ZcRHx+PZs2a\nVWiy0Wg00Gg0NV52fDzQsyc3MxQWcujHxBhTSsvIzweGDgVCQzkwr13jndX69dYuWdXS0wFPT2D1\nat74XnkF+Pxza5eqfjlxAjh7Fjh3rvS+7GyuwNR2N2/ytrFuHeDkxOFU29rtExOBgADgoYc4NH/7\nTf/xt9/mLLG2GzeA7t2B8+f59tGj3HQTGMjldnHh4M/PN39ZGhrzInd3d7i7u6N79+4AgLFjx2L2\n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\nA3//O3cJTUriuXxqatky4JNPOOzNfe5Jy9aWj9D++su413/9NU8+p+SgpKpodyZduhgX9lev8nmp\nurSt18uwB/hQffVq416bmWm5sM/I4IFFR45wzbF874/qpKfzYWhcnOXDPiOD2+7T0y0XJtagrdkn\nJ5unj3plmjfntu/GjXlHasw1G3bs4I4KCQmWq9kDpnXDjI/nphVLCgnhczA1PRq5eJE7I9Ql9Tbs\nIyK4dmNMn+WMDPO31wNcE5owgac3OHyYA6Um87Cnp/Nr163j2QwtdSipbcaJjeWToNpBTvWRvz8f\npluyOaSswEDe2ezdW/W8Q+Xdvs3B6ePDoW/JcptyOT1rfMYuLrz9Gjp9wvbtPJDPXOMszKnehv1D\nD/HJuddfr/lrLdWMo9EAP/3EXQR//pkPCWsa9qNG8cClJk0sF7raZpzNm7nven3m6cmTqcXFWa5m\nX5a/P9fOP/3U8Kl59+7ltui+fbnrqSWPvIyt2d++zd03LVHJKq8mTTm7dnHl6tw5Cfta5Z//5D2x\nofNBFxfzNAMHD1om7LUCArgJZ+BArmFoJ+Sqzl9/cXnt7PiyeFOnmr+cWq6uvLFv2VL/w16j4fb5\nVausE/YBAXwy8eBB7t5oSHPD4cM8qK1LFz7HYO6TnWW5uXENPSrK8KaR8+f5NQ89ZJ45qO4nKIh3\nqIY4fZqb1RITJexrFVtb3vgMvcLSf//LP+q1ay0b9h078omtzp25vIY0PWkn+NJouKwffGD+cmr5\n+HA759/+Zp0AtLQBA7jmaY1mHH9/Pqpo2ZIrAZVtyydO6Aertomhb1+eq8WSAerqylNPz5hh2ICw\n1FTe/tessc7nC9RsFszTp/mz3rnTPFOSmFO9DnuAT8AcO3b/5xEBH3/MQ76dnJS7KLMhmjThAPXz\n4/8NacrRhr01BAXxLIeGXCqwPtBeSMUaO7aHHuIxCg8/rD9zp1ZxMdfijx3jo9jU1NImhk6dlJsL\n3VDamr2bG1ee7mfBAm5+/OEH64V927aGzW9fUMAVsSFDeOcvYV/LBAdXf6WXgwd5ZstDh7i5Z9w4\nrimZs2tdZT7+mDciHx9ux7/fxcitGfZq0749Xx3L09Py792gAVcCHn6Yt+XyJ2kvXOC27v37+RzV\nsmXKX3+4Jlxduczfflv5FeQSEni+IoDHEixezM2Q165Zr1eXh4dhYX/uHG8D3btzTzpzzMhpTqoI\n+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\nQgwfPhyPPfYY3njjDQBAx44dERcXBxcXF2RkZGDAgAE4c+aM/htKzV4IIWrMKm32RIRnn30W/v7+\nuqAHgJEjRyI6OhoAEB0djdGjRxtdMCGEEMoxqmb/22+/4ZFHHkGnTp10TTWzZ89Gjx49EB4ejsuX\nL8PLywtr1qyBvb29/htKzV4IIWrM1Ow0+QRtjd9Qwl4IIWrMKs04Qggh6hYJeyGEUAEJeyGEUAEJ\neyGEUAEJeyGEUAEJeyGEUAEJeyGEUAEJeyGEUAEJeyGEUAEJeyGEUAEJeyGEUAEJeyGEUAEJeyGE\nUAEJeyGEUAEJeyGEUAEJeyGEUAEJeyGEUAEJeyGEUAEJeyGEUAEJeyGEUAEJeyGEUAEJeyGEUAEJ\neyGEUAEJeyGEUAEJeyGEUAEJeyGEUAEJeyGEUAEJeyGEUAEJeyGEUAEJeyGEUAEJeyGEUAEJeyGE\nUAEJeyGEUAEJeyGEUAEJeyGEUAHFw37btm3o2LEj2rdvj88++0zpxQshhDCComFfXFyMV199Fdu2\nbUNiYiJWrlyJ06dPK/kWtV5cXJy1i2BWsn51W31ev/q8bkpQNOwPHToEHx8feHl5wcbGBuPHj0dM\nTIySb1Hr1fcNTtavbqvP61ef100JioZ9eno62rZtq7vt7u6O9PR0Jd9CCCGEERQNe41Go+TihBBC\nKIUU9Mcff9DQoUN1tyMjIykqKkrvOd7e3gRA/sk/+Sf/5F8N/nl7e5uUzxoiIiikqKgIHTp0wM6d\nO+Hm5oYePXpg5cqV8PPzU+othBBCGKGhogtr2BBff/01hg4diuLiYjz77LMS9EIIUQsoWrMXQghR\nO1l0BG19HHDl5eWFTp06ISQkBD169AAAZGdnIywsDL6+vhgyZAhu3rxp5VIa5plnnoGzszOCgoJ0\n91W3LrNnz0b79u3RsWNHxMbGWqPINVLZ+s2aNQvu7u4ICQlBSEgItm7dqnusrq1famoqBgwYgICA\nAAQGBmL+/PkA6s93WNX61Yfv8O7du+jZsyeCg4Ph7++PGTNmAFD4uzOpxb8GioqKyNvbm5KTk6mg\noIA6d+5MiYmJlnp7s/Hy8qIbN27o3Tdt2jT67LPPiIgoKiqK3n77bWsUrcb27t1L8fHxFBgYqLuv\nqnVJSEigzp07U0FBASUnJ5O3tzcVFxdbpdyGqmz9Zs2aRXPnzq3w3Lq4fhkZGXT06FEiIrp9+zb5\n+vpSYmJivfkOq1q/+vId5uXlERFRYWEh9ezZk/bt26fod2exmn19HnBF5VrCNm7ciIiICABAREQE\nNmzYYI1i1Vi/fv3g4OCgd19V6xITE4MJEybAxsYGXl5e8PHxwaFDhyxe5pqobP2Ait8fUDfXz8XF\nBcHBwQCA5s2bw8/PD+np6fXmO6xq/YD68R02bdoUAFBQUIDi4mI4ODgo+t1ZLOzr64ArjUaDwYMH\no1u3bvjhhx8AAFlZWXB2dgYAODs7Iysry5pFNElV63LlyhW4u7vrnleXv88FCxagc+fOePbZZ3WH\nyXV9/VJSUnD06FH07NmzXn6H2vXr1asXgPrxHZaUlCA4OBjOzs665iolvzuLhX19HXD1+++/4+jR\no9i6dSsWLlyIffv26T2u0Wjqzbrfb13q4nq+9NJLSE5OxrFjx+Dq6oqpU6dW+dy6sn65ubkYM2YM\n5s2bB1tbW73H6sN3mJubi7Fjx2LevHlo3rx5vfkOGzRogGPHjiEtLQ179+7F7t279R439buzWNi3\nadMGqamputupqal6e6a6ytXVFQDQqlUr/O1vf8OhQ4fg7OyMzMxMAEBGRgZat25tzSKapKp1Kf99\npqWloU2bNlYpoylat26t+xE999xzukPhurp+hYWFGDNmDCZNmoTRo0cDqF/foXb9Jk6cqFu/+vYd\n2tnZ4fHHH8eRI0cU/e4sFvbdunXDuXPnkJKSgoKCAqxevRojR4601NubRX5+Pm7fvg0AyMvLQ2xs\nLIKCgjBy5EhER0cDAKKjo3UbZV1U1bqMHDkSq1atQkFBAZKTk3Hu3Dldb6S6JCMjQ/f3zz//rOup\nUxfXj4jw7LPPwt/fH2+88Ybu/vryHVa1fvXhO7x+/bqu+enOnTvYvn07QkJClP3uzHZquRJbtmwh\nX19f8vb2psjISEu+tVlcvHiROnfuTJ07d6aAgADdOt24cYMGDRpE7du3p7CwMMrJybFySQ0zfvx4\ncnV1JRsbG3J3d6f//Oc/1a7Lp59+St7e3tShQwfatm2bFUtumPLrt3jxYpo0aRIFBQVRp06daNSo\nUZSZmal7fl1bv3379pFGo6HOnTtTcHAwBQcH09atW+vNd1jZ+m3ZsqVefIcnTpygkJAQ6ty5MwUF\nBdGcOXOIqPosqem6yaAqIYRQAbksoRBCqICEvRBCqICEvRBCqICEvRBCqICEvRBCqICEvRBCqICE\nvRBCqICEvRBCqMD/AYG3HEF1wB6UAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Understanding Context\n", "\n", "Clearly, it is very important to understand the context of the problem when building a change detection system. The type of signal, the specific domain, and the way in which the system will be used are all important considerations. \n", "\n", "\n", "With this in mind, in this tutorial we will start with some simple signals in order to introduce fundamentals. Then we'll look separately at some broadly different contexts." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Return to the Change Detection Tutorial [Table of Contents](https://github.com/amanahuja/change-detection-tutorial)" ] } ], "metadata": {} } ] }