{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Number of samples\n", "N = 10\n", "\n", "# Degree of polynomial\n", "M = 4\n", "\n", "# Set random seed to make deterministic\n", "random.seed(555)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# The ground truth sinusoid\n", "xground = arange(0, 1, 0.01)\n", "yground = sin(2*pi*xground)\n", "\n", "# Get some points at regular interval\n", "x = arange(0, 1, 1./N)\n", "tground = sin(2*pi*x)\n", " \n", "plot(xground,yground)\n", "plot(x, tground, 'ro')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Create our gaussian noise\n", "std_deviation = 0.3\n", "noise = std_deviation * randn(N)\n", "t = tground + noise\n", "\n", "plot(xground,yground)\n", "plot(x, t, 'ro')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# Function to evaluate a polynomial with coefficients w\n", "# (ordered by decreasing degree)\n", "# could also use builtin polyval(w, x)\n", "def polynomial(w, x):\n", " powers = arange(0,len(w))[::-1]\n", " \n", " powered = array(x)[:, newaxis] ** powers\n", " return dot(powered, w)\n", "\n", "# Define our error function\n", "def err(w, x, t):\n", " return 0.5 * sum((polynomial(w, x)-t)**2)\n", "\n", "# Root Mean Square error - in same units as data\n", "def rms(w, x, t):\n", " return sqrt(2 * err(w, x, t)/len(x))\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-1.78887271e+00 1.98293149e+01 -2.71899014e+01 8.93654375e+00\n", " 2.30848663e-02]\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAD4CAYAAADhNOGaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOzdd1yV1R/A8c9hDwXBvRgqqQiCiLg1Z640t2SlZpq50vppmpZZWY5clVqoOYrEvfc2t5i4WSIoblBUZMP5/cGVEEFFLlzGeb9e93XvPc95nucL6P3e8zxnCCkliqIoStGlp+sAFEVRFN1SiUBRFKWIU4lAURSliFOJQFEUpYhTiUBRFKWIM9B1AK+jVKlS0s7OTtdhKIqiFCinT5+OkFKWzlheIBOBnZ0dvr6+ug5DURSlQBFChGVWri4NKYqiFHEqESiKohRxKhEoiqIUcQXyHoGiKK8vMTGR8PBw4uLidB2KkktMTEyoVKkShoaGr1RfJQJFKWLCw8MpXrw4dnZ2CCF0HY6iZVJKIiMjCQ8Px97e/pX2UZeGlNzh7Q12dqCnl/rs7a3riBSNuLg4SpYsqZJAISWEoGTJktlq8akWgaJ93t4weDDExKS+DwtLfQ/Qt6/u4lLSqCRQuGX376taBIr2TZjwXxJ4KiYmtVxRlHxHK4lACPGHEOKuEOJCFtuFEOJnIUSwEOKcEMIt3bZ+QoggzaOfNuJRdOzateyVK0XOnTt3ePfdd6lSpQp169alYcOGrF+/Ps/jsLOzIyIi4rnyH3744bWOt2HDBi5dupT2/s033ywQg1+11SJYCrR7wfb2gIPmMRhYACCEsAYmAfUBD2CSEMJKSzEpWhCflExickr2drKxyV65UqRIKXnnnXdo1qwZISEhnD59Gh8fH8LDw5+rm5SUpIMIs04EUkpSUrL+/5AxERQUWrlHIKU8JISwe0GVLsBymboc2nEhRAkhRHngTWC3lPI+gBBiN6kJZYU24lJeTXKKxO/6A85ef8ilW4+4fOsRdx/H8yg2kfik1H/0Zkb6WJgYUqGECY4VLHAsb4mbbQmqly3+/PXIKVOevUcAYGaWWq4Uefv27cPIyIghQ4akldna2jJixAgAli5dytatW4mLi+PJkyfs3buXsWPHsn37doQQTJw4kd69e3PgwAF++ukntmzZAsDw4cNxd3enf//+2NnZ0a9fPzZv3kxiYiKrV6+mRo0aREZG4unpyb179/Dw8CCzFRrHjRtHbGwsrq6u1KpViylTptC+fXtatGjBsWPH2LBhA7Vq1SI6OhqANWvWsGXLFgYPHsymTZs4ePAg33//PWvXrgVg9erVDB06lKioKBYvXkzTpk1z+1ecbXl1s7gicD3d+3BNWVblzxFCDCa1NYGN+maZY8kpkoOBd9lx4TZ7Lt/l/pMEAEoVM6Zm+eLUrmSJhYkhxU0MSJHwKDaRh7GJhN2PYeOZm/x1PPUyj421GW0dy9KhdnnqVC6RmhSe3hCeMCH1cpCNTWoSUDeK853Jmy9y6eYjrR7TsYIFk96uleX2ixcv4ubmluV2gGPHjnHu3Dmsra1Zu3Ytfn5+nD17loiICOrVq0ezZs1eGkepUqX4999/mT9/Pj/99BOLFi1i8uTJNGnShK+//pqtW7fi5eX13H5Tp07l119/xc/PD4DQ0FACAgJYsmQJ8+fPz/J8jRo1onPnznTq1IkePXqklSclJXHy5Em2bdvG5MmT2bNnz0tjz2t5lQgyu4UtX1D+fKGUXoAXgLu7u1po+TU9iktk1anrLDsWyvX7sRQ3MaBljTK0cSyLh701ZYqbvPQYUkqu34/lyJUIdl28zfJjYSw6fJXalSz5sLE9HZzLY9S3r/rgV17JsGHDOHz4MEZGRpw6dQqANm3aYG1tDcDhw4fx9PREX1+fsmXL0rx5c06dOoWFhcULj9utWzcA6taty7p16wA4dOhQ2uuOHTtiZfVqV6JtbW1p0KDBa/186eMIDQ19rWPktrxKBOFA5XTvKwE3NeVvZig/kEcxFSmxCcn8ceQqCw5cITo+CQ87a75sX5NWNctiZJC9W0VCCGxKmmFT0gZPDxui45NYf+YGS45cZdRKP6bt8OfzttXpVqcienqqm2J+9qJv7rmlVq1aaZdNAObNm0dERATu7u5pZebm5mmvM7t8A2BgYPDM9fqM/eaNjY0B0NfXf+Zew+t0nU0fT8ZjvKy/flZx5Cd51X10E/CBpvdQA+ChlPIWsBNoK4Sw0twkbqspU7RESsm6f8NpOfMAM3YG0LBqSTYPb8KqIQ1p71w+20kgM8WMDXi/gS17RjdnyYB6lCluzP9Wn+XtXw9z7EqkFn4KpTBp2bIlcXFxLFiwIK0sJmN343SaNWvGypUrSU5O5t69exw6dAgPDw9sbW25dOkS8fHxPHz4kL1797703M2aNcNbM7hx+/btPHjwINN6hoaGJCYmZnmcsmXLcvnyZVJSUp7p7VS8eHEeP3780jjyG620CIQQK0j9Zl9KCBFOak8gQwAp5W/ANqADEAzEAAM02+4LIb4DTmkO9e3TG8dKzt2IiuWLNec4HByBSyVL5vR2pX6Vkrl2Pj09QYvqZWjuUJrN524yfUcAnguP4+lRmQkdHSlmrMYvKqnfpjds2MDo0aOZPn06pUuXxtzcnGnTpmVav2vXrhw7dgwXFxeEEEyfPp1y5coB0KtXL2rXro2DgwN16tR56bknTZqEp6cnbm5uNG/ePMv7jYMHD6Z27dq4ubkxJZNODlOnTqVTp05UrlwZJyentBvHffr0YdCgQfz888+sWbPmVX8lOieyanblZ+7u7rIg9M3VFSklq33D+W7LJZKlZELHmnjWs8nzyzRxicnM3hPIwkMhlLc0ZUaP2jSqVipPY1Ced/nyZWrWrKnrMJRcltnfWQhxWkrpnrGuGllcyMQkJPGpjx9j156jVkULdo5qRt/6tjq5Vm9iqM/49jVZPaQRRgZ69F18grl7gkhJKXhfPhSlMFOJoBAJi3xCt/lH2XzuJmPeqs7fHzWgsrWZrsOirq0V20Y2patrRWbvCWTwn6d5FJf19VdFUfKWSgSFxNErEXT+9Qi3HsaxdIAHw1pUy1c9dkyN9JnZy4Vv3nbkQMBduvx6hNCIJ7oOS1EUVCIoFLaeu0X/P05Rprgxm4c3ofkbpXUdUqaEEPRvbM/fgxoQFZNAj9+OcuHGQ12HpShFnurGUcD9eSyUrzddpK6NFYv71cPS7NkViZ4kPCHofhD3ntzjfux9HsQ9QE/oYaRvhLG+MWWLlcXG0oZKFpUwMXj5YDJt8LC3Zs0njfhg8Ul6/34Mrw/caaxuIiuKzqhEUIDN2x/MjJ0BtK5Zll/frYOxgR6X711m15VdHAg7wPk75wl5EILMfLD2cxysHahXsR71KtTjTbs3cSnrkmvz1lctXYy1nzSi3x8n6b/kJAv61qW1Y9lcOZeiKC+mEkEBteDAFWbsDOAd1woMbGHE1wfGs/LiSq49TJ0DqKpVVdzKu/GBywc4lnakXLFyWJtaY2VihUQSnxRPXFIct6Jvce3hNUKjQvG77cfB0IP8ff5vACoUr0CHah3o7tidNlXaoK+nr9WfoZylCas+bsgHf5zgE+/T/P5+XVrWUMmgsIuMjKRVq1YA3L59G319fUqXTr2cefLkSYyMjF56jAEDBjBu3DiqV6+eZZ158+ZRokQJ+hawqU4mTpxIqVKlGDVqVJ6dU40jKIAWHgrh+20XcKxymSj9jRwPP4a+0Ke9Q3vefuNt2lZti10Ju9c+/o1HN9h1ZRdbg7ay68ouHic8pkLxCrxf+30G1hmIQ0kH7f0wwMPYRN5bdIKA24/x+qAub1Yvo9XjK8/K9jgCb+9cm0Dwm2++oVixYvzvf/97plxKiZQSPb2idxtTW4lAjSMoxJYdvcKXOxfw2GIUO26N435sJD+1+Ykbn91gs+dmBtcdnKMkAFDRoiID6gxgTa813BtzjzU911C3fF1+OvoT1X+tTteVXTly7UiWc8Bkl6WpIX8O9KBamWIM/vM0R688v1CIoiNPlx0NCwMp/1t2NBfWoA4ODsbJyYkhQ4bg5ubGrVu3GDx4MO7u7tSqVYtvv/02rW6TJk3w8/MjKSmJEiVKMG7cOFxcXGjYsCF3794FUj9Q58yZk1Z/3LhxeHh4UL16dY4ePQrAkydP6N69Oy4uLnh6euLu7p4262h6Y8aMwdHRkdq1a/PFF18AsHHjRurXr0+dOnVo27btM+ft378/bdu2xc7Ojg0bNvD555/j5OREx44d0+YbqlSpUlpM9evXJyQk5LnzBgUF8dZbb1G3bl2aNWtGYGAgAD4+Pjg5OeHi4kKLFi1y/st/mnkL0qNu3bqyKJp1YLM0+rqK5BtkrXlOcuWFlTIpOSnPzn/r8S05ce9EaT3NWvINsskfTeSh0ENaO/796HjZeuYB6fT1Dnnp5kOtHVd51qVLl169sq2tlKkp4NmHra1WYpk0aZKcMWOGlFLKoKAgKYSQJ0+eTNseGRkppZQyMTFRNmnSRF68eFFKKWXjxo3lmTNnZGJiogTktm3bpJRSjh49Wv74449SSiknTJggZ8+enVZ/7NixUkopN27cKN966y0ppZQ//vijHDp0qJRSSj8/P6mnpyfPnDnzTIy3b9+Wjo6OMiUlRUop5YMHD6SUUt6/fz+tbMGCBWnHnzBhgmzWrJlMTEyUvr6+0tTUVO7atUtKKWWnTp3k5s2bpZRSVqxYUU6dOlVKKeXixYtlly5dnov7zTfflMHBwVJKKQ8fPizbtGkjpZSyRo0a8vbt28/Ek1Fmf2fAV2bymapaBAVAZEwk73h/wGcH3kbP4BHLunhz7pOz9KrVS+vX7V+kXLFyfNfyO66NusYv7X8h5EEIzZY2o4N3B87ePpvj41uZG7H0Qw/MjPXpv+QkN6JitRC1kiN5vOxo1apVqVevXtr7FStW4ObmhpubG5cvX8509S9TU1Pat28PvHiq58ymgz58+DB9+vQBwMXFhVq1np+N1draGj09PQYNGsT69evTZiK9du0abdu2xdnZmVmzZnHx4sW0fTp06ICBgQHOzs5A6rTaAM7Ozs/E5+npCUDfvn3TWilPRUVFcfz4cbp3746rqyvDhg3j5s2bADRu3JgPPviARYsWvXDFtFelEkE+t//qfhznObMxyJvKhr0IGO7PB67void096czNzJnuMdwgkYEMa31NI6HH8fNy43h24YTFReVo2NXLGHKsg89iIlPpt8fJ4mKSdBS1MpryeNlR9NP9xwUFMTcuXPZt28f586do127dplO+Zz+5vKLpnrObDpo+QqXNw0NDfH19eWdd95h7dq1dOzYEUhdR2H06NGcP3+e+fPnPxPb03Pp6ek9E5+ent4rT4ktpaRUqVL4+fmlPS5cSF0WfuHChUyePJnQ0FBcXFyynEX1ValEkE8lJicyYe8EWi1vxeNYA2oa/MqRIUuwscq92UOzy8zQjLGNx3Jl5BWGug9lge8C3vjlDZafXZ6j+wc1ylng9YE7YZFPGP73GZKyu2ayoj1TpqQuM5peHi07+ujRI4oXL46FhQW3bt1i507tz1DfpEkTVq1aBcD58+czbXE8fvyYR48e0alTJ2bPns2ZM2cAePjwIRUrVkRKybJly17r/CtXrgRSWz6NGzd+ZpuVlRXly5dPm+Y6JSWFs2dTW94hISE0aNCA7777DisrK27cuPFa539KJYJ8KCImgtZ/tuaHwz9gb9qJCglz8f6gT76YNygzVqZW/NLhF3wH+VLNuhr9NvSj04pO3Hj0+v84G1YtyZR3nDkcHMGUbZe1GK2SLX37gpcX2NqCEKnPXl55svqcm5sbjo6OODk5MWjQoOc+KLVhxIgR3Lhxg9q1azNz5kycnJywtLR8ps7Dhw/p2LEjLi4utGzZklmzZgGpPZ66du1K8+bNKVv29bo9x8TE4OHhwYIFC5g5c+Zz2318fPjtt9/SLls9XZ959OjRODs74+zsTOvWrXFycnqt8z+luo/mM/4R/nT6uxPhj8JpX/EbzgQ4M7OnC93rVtJ1aK8kRabw68lfGbdnHEb6Rvzc/mfer/3+aw9Mm7z5IkuOhDK9R216uVd++Q7KS6lpqP+TlJREUlISJiYmBAUF0bZtW4KCgjAwyP0hVpUqVeLChQuUKFEiV46f591HhRDthBABQohgIcS4TLbPFkL4aR6BQoiodNuS023bpI14Cqp9V/fRcHFDHic8ZkI9H84EODO4WZUCkwQA9IQeI+uP5Nwn53Au60y/Df3ou64vj+Jfb4H0CR1q0qRaKSauv8DpsJxdB1WUjKKjo2ncuDEuLi50796d33//PU+SQH6T4xaBEEIfCATakLoG8SnAU0r5/MW21PojgDpSyg8176OllMWyc87C2CLYEriF7qu642DtwMyWfzPizxvUr2LN0gEe6OejWUSzIzklmamHp/L1ga+xL2GPTw8f3Cs892XkpaJiEuj86xESk1PYOrIp1uYvH3mqZE21CIqGvG4ReADBUsoQKWUC4AN0eUF9T2CFFs5baKy7vI5uK7tRu2xttnjuZcqmSEoWM2JunzoFNgkA6OvpM6HZBA72P0h8cjyNFjfC67RXto9TwsyI+X3diHySwOiVfmphG0XRMm0kgorA9XTvwzVlzxFC2AL2wL50xSZCCF8hxHEhxDtZnUQIMVhTz/fevXtaCDt/WHlhJb1W98K9gju739vN1C3h3IyK5dd36xSab75NbJpwdshZWtq35OMtH/Px5o+JT4rP1jGcKloy6W1HDgbeY8HBK7kUqaIUTdpIBJl9Zc3qK1sfYI2UMjldmY2mqfIuMEcIUTWzHaWUXlJKdyml+9MJqgq6bUHb6LuuL41tGrPzvZ2sO/2AHRdvM659DeraWus6PK2yNrVm67tbGd9kPF7/etFiWQtuR9/O1jHe9bChi2sFZu4K4NiVyFyKVFGKHm0kgnAgfXeOSsDNLOr2IcNlISnlTc1zCHAAqKOFmPK9Y9eP0WNVD1zLubLFcwvXIyVTt/vTumZZBjax13V4uUJfT58fWv3A6p6rOXvnLA0WNeDi3Ysv31FDCMEPXZ2xK2XO6JV+arCZomiJNhLBKcBBCGEvhDAi9cP+ud4/QojqgBVwLF2ZlRDCWPO6FNAYyPQmc4Hm7Q12dqCnB3Z2XPxjGh3/7kgli0ps67sNQz0zPvU5QwkzQ6b3qJ1rawDkFz0ce3Co/6HU+wZ/NGL3ld2vvK+5sQFze9chIjqeL9ef19rEd0re0tfXx9XVFScnJ3r27ElMTMxrH+vAgQN06tQJgE2bNjF16tQs60ZFRTF//vy09zdv3qRHjx6vfe7CIseJQEqZBAwHdgKXgVVSyotCiG+FEJ3TVfUEfOSz/3NrAr5CiLPAfmBqVr2NCqwMszfeiQij/cXxGCemsPO9nZQxL8OP2y4TdDean3q6FJr7Ai9Tt0JdTnx0AltLW9p7t2ep39JX3te5kiWft63OtvO3WXM6PPeCVHKNqalp2pQJRkZG/Pbbb89sl1K+1hw6nTt3Zty453qwp8mYCCpUqMCaNWuyfZ7CRivjCKSU26SUb0gpq0opp2jKvpZSbkpX5xsp5bgM+x2VUjpLKV00z4u1EU++MmECaL7tJOhD994QYSrZut4Ueyt79vvfZdmxMD5sbE+zfLrWcG6xsbTh8IeHaWHfggEbBzDjyIxX3ndwsyrUt7fmm00XCYt8kotRKrmtadOmBAcHExoaSs2aNRk6dChubm5cv36dXbt20bBhQ9zc3OjZsyfR0dEA7Nixgxo1atCkSRPWrVuXdqylS5cyfPhwAO7cuUPXrl1xcXHBxcWFo0ePMm7cOK5cuYKrqytjxowhNDQ0bVRuXFwcAwYMwNnZmTp16rB///60Y3br1o127drh4ODA2LFj8/g3lPuK3siJvKaZpVECwzvAERvwWQ1ul+7w4EkCY9aco0a54oxtl/VKS4WZhbEFWzy30G9DP8buGcudJ3eY3mb6SyfV09cTzO7tSrs5h/hs1VlWfdywQHe11ZVRO0bhd/v5+fdzwrWcK3PazXmluklJSWzfvp127doBEBAQwJIlS5g/fz4RERF8//337NmzB3Nzc6ZNm8asWbMYO3YsgwYNYt++fVSrVo3evXtneuyRI0fSvHlz1q9fT3JyMtHR0UydOpULFy6krTmQfibQefPmAalzDvn7+9O2bdu0+f/9/Pw4c+YMxsbGVK9enREjRlC5cuEZ6a7mGsptmlkaf3OHhXVh3D/Q+2Jq+TebLxIVk8DMXi6YGObddNL5jbGBMd7dvBlWbxgzj83k480fk5yS/NL9KpQw5ZvOtTgd9oAlR67mQaSKtsTGxuLq6oq7uzs2NjYMHDgQAFtbWxo0aADA8ePHuXTpEo0bN8bV1ZVly5YRFhaGv78/9vb2ODg4IITgvffey/Qc+/bt45NPPgFS70lknEMoo8OHD/P+++8DUKNGDWxtbdMSQatWrbC0tMTExARHR0fCwsK08nvIL1SLILdNmcKprwcysn08HQLh+32AmRlnPxnLRr+bjGrtQK0KL/4HWhTo6+nzS/tfKGFSgin/TCEuOY4lXZZgoPfif6Jd61Rk2/lbzNgZQIsaZahaOluD1Iu8V/3mrm1P7xFklH4aaiklbdq0YcWKZ8ef+vn55UqHihd1PHg6rTS8eKrrgkq1CHLZox5v0+dDS8rH6vPnetC3sSX6l/kMTHwDx/IWDGtRLXcDyNBjKTeWGNQWIQTft/ye71t8z1/n/sJzrScJyS/uIvq0S6mJoT5jVp8lWY06LjQaNGjAkSNHCA4OBlJn6gwMDKRGjRpcvXqVK1dSBxZmTBRPtWrVigULFgCQnJycNq3148ePM63frFkzvDX/PwIDA7l27RrVqxeNS7YqEeQiKSVDtgwhLDmSFSMOYh0jITSUCWa1eRibeknIUD8X/wR5uN6sNk1oNoFZbWex5tIa+qzpQ2Jy4gvrl7EwYXLnWvx7LYrFh59f91UpmEqXLs3SpUvx9PSkdu3aNGjQAH9/f0xMTPDy8qJjx440adIEW1vbTPefO3cu+/fvx9nZmbp163Lx4kVKlixJ48aNcXJyYsyYMc/UHzp0KMnJyTg7O9O7d2+WLl36TEugUMts/cr8/igoaxb/8e8fkm+Q3x38Lq1s3+U70vaLLXLO7sDcDyCX15vNbXOPz5V8g+yxqodMSEp4Yd2UlBQ5cOkpWX3iNhkW8SSPIiyYsrVmsVJgqTWL84Er968wfPtwWti1YHyT8QA8iU9i4oYLOJQpxidvZjqThnbl8Xqz2jay/si0lsF7698jKSXr67JCCL57pxYGenpM2KAGmilKdqhEkAtSZAoDNw3EQM+A5V2Xpy0wP3NXIDeiYpna3Rkjgzz41efxerO5YXTD0cxoM4NVF1cxYOMAUmTWg4zKW5oytl11/gmKYINfzpbuU5SiRCWCXDD/1HwOhh1k9luzqWSRuqjM2etRLD16lfca2OTdhHI6XG9Wm/7X6H981+I7/jr3F8O3DX/ht/336tviZlOC77Zc5v4TNRdRVlSLqXDL7t9XJQItC3kQwhd7vqBdtXYMcB0AQFJyCuPXnad0cWPGtquRd8HocL1ZbZvQdAJjG41lge8Cvtz7ZZb19PQEP3arzeO4RKZsVWsdZ8bExITIyEiVDAopKSWRkZGYmJi88j5qHIEWpb8k5NXJK62v8/JjYVy69Yj5fd2wMDHM26D69i2QH/wZCSGY2noqj+IfMfXIVCxNLBnXJPM5ZaqXK87gZlWYt/8KvdwrUb9KyTyONn+rVKkS4eHhFKZ1PZRnmZiYUKnSqy9xqxKBFi3zW8aB0AN4dfKismXq8PM7j+KYtTuQ5m+Upr1TOR1HWLAJIZjXcR6PEh4xfu94ypqXZUCdAZnWHd7CgQ1nbvLVxgtsHdk0d7vpFjCGhobY2xfOqc6V16MSgZbcj73P2D1jaVy5MQPdBqaVT9l6mYTkFCZ3rlXop5fOC3pCjyVdlhARE8GgzYMoZVaKt6u//Wwlb29MJ0zg8LVr3Chein/uj6fld6N1E7CiFADqa5KWfLn3Sx7EPmB+x/lpE6YdDY5g09mbDGleFbtS5i85gvKqjPSNWNtrLW7l3ei1pheHrx3+b2O6QXRCSio9ukfDaeOJWrRUZ/EqSn6nEoEWnLxxEq/TXozwGEHtsrUBSEhK4auNF7CxNmNoXowZKGKKGRVj67tbsbG0ofOKzvhH+KduSDft91OmifEkjx+vgygVpWDQSiIQQrQTQgQIIYKFEM/dwRNC9BdC3BNC+GkeH6Xb1k8IEaR59NNGPHkpOSWZoVuHUq5YOSa3mJxWvvxYKFfuPeGbzo5FembR3FTavDTb+27HUN+Q9t7tuRN9J8vBclYRd9Q6x4qShRwnAiGEPjAPaA84Ap5CCMdMqq6UUrpqHos0+1oDk4D6gAcwSQhhldOY8tJSv6WcvnWamW1nYmFsAcC9x/HM3RPEm9VL07JGWR1HWLhVsarCFs8t3H1yl04rOvGkSuY9Je6WKM3kzRdJSs7+qleKUthpo0XgAQRLKUOklAmAD9DlFfd9C9gtpbwvpXwA7AbaaSGmPBGdEM3E/RNpWKkhfZz6pJX/tDOA2MRkvuqUWT5UtK1exXr4dPfh31v/0ufjUiSbmz5bwcyMW198jf/tx6w4dV03QSpKPqaNRFARSP+/K1xTllF3IcQ5IcQaIcTTpX1edd986aejP3E7+jYz285M6xF0Pvwhq05fZ0BjOzU3fh56u/rb/NL+F7bEnGHM982fG0Tn+sVQGlSxZuauAKJi1IhjRUlPG4kgsz6RGYcsbgbspJS1gT3Asmzsm1pRiMFCCF8hhG9+GAhz8/FNZhydQa9avWhYuSGQOqLvm80XKWluxIhWDjqOsOgZWm8on9b/lNkPd7Bg9ReQkgKhodC3L0IIJr1di0exiczeHajrUBUlX9FGIggH0i/eWQm4mb6ClDJSShmvebsQqPuq+6Y7hpeU0l1K6V66tO4XeZ+4byJJKUn82OrHtLLN525xOuwBY96qnvcjiBUAZradSUeHjozYPoKdwe57eQ4AACAASURBVDuf2VazvAV969vy14lrBN3JfHESRSmKtJEITgEOQgh7IYQR0AfYlL6CEKJ8uredgaeTwOwE2gohrDQ3idtqyvK1c3fOsdRvKSM8RlDFqgoAcYnJTNvuj2N5C3rULTyLWhc0+nr6rOi+AqcyTvRa0+u/bqUao9u8gZmRPj9sU/MQKcpTOU4EUsokYDipH+CXgVVSyotCiG+FEJ011UYKIS4KIc4CI4H+mn3vA9+RmkxOAd9qyvK1r/d/jYWxBV82/W/ysz+OXOVGVCwTO9VEX0+NINal4sbF2eS5CRMDE95e8Tb3Y//7J2VtbsTIlg7sD7jHoUDdX2JUlPxAFMQZCN3d3aWvr69Ozu1705d6C+vx7Zvf8lXzr4DU7qItfjpAw6olWfiBu07iUp539PpRWixrQVObpmnjDQDik5JpM+sQpob6bB3ZBAM1D5FSRAghTkspn/uQUv8Dsumr/V9R0rQknzb4NK1s1u5A4hKTGd8+D6eYVl6qUeVGeHXyYu/VvYze+d9cQ8YG+oxvX4OAO49Z5RuuwwgVJX9QiSAbjlw7wo7gHXzR+Iu0wWMBtx+z8tQ13m9oSxXVXTTf6efaj88bfs68U/NY9O+itPJ2TuWoZ2fFrN0BRMdnvQSmohQFKhFkw1f7v6KseVmGeQxLK5u2wx9zYwNGtlTdRfOraa2n0bZqW4ZuHcqx68eA1CmtJ3R0JCI6Aa9DITqOUFF0SyWCV7T/6n72h+7ny6ZfYmaYuvzj0SsR7PO/y7AW1bAyN9JxhEpW9PX08enug42lDd1WdePGo9T1jF0rl6Bj7fIsPBTC3UdxOo5SUXRHJYJXNOWfKZQvVp7BdQcDkJIimbrdnwqWJvRvZKfb4JSXsjK1YmOfjUQnRNNtVTfiklI/+Me+VZ2klBRm7wnScYSKojsqEbyCE+En2Ht1L583/BwTg9R1QLecv8W58Id83ra6ml20gKhVphbL31nOyRsnGbFtBAC2Jc3pW9+WlaeuEXxXDTJTiiaVCF7Bj4d/xMrEio/dPwZSux/O2OlPzfIWvFOnwEyNpABda3blyyZfsujMIhaeXgjAiJbVMDcyYOr2AB1Hpyi6oRLBS1y4e4GNARsZWX8kxYxSewX9feIa1+/HMq59DTV4rAD6tsW3vFX1LYZvH86J8BOULGbMkDersufyHU6F5vvxjIqidSoRvMTUw1MxNzRnhEfqpYTo+CR+3RdMo6olaeZQSsfRKa9DX0+fv7v/TcXiFem+qjt3n9zlw8b2lCluzLTt/hTEQZaKkhMqEbxAyIMQVlxYwRD3IZQ0KwnAon9CiHySwNh2NdRi9AWYtak163uvJzI2kj5r+mBoIBnZygHfsAfs87+r6/AUJU+pRPACs47NQl/o81nDzwCIjI5n4aEQ2juVw7VyCR1Hp+SUSzkXfuv4G/tD9zNh7wR616uMXUkzpu8IIDlFtQqUokMlgiw8iH3AEr8lvOv8LhWKVwDg1/3BxCYm83nb6jqOTtGWfq79+Ljux0w/Op0tgRv5vG11Au48ZqPfDV2Hpih5RiWCLCz8dyExiTGMbpA6R034gxi8j1+jZ93KVCujppIoTOa2m0u9CvXot6Efb1SIplYFC2buCiQ+KVnXoSlKnlCJIBOJyYn8fOJnWtq3xKWcCwBz9gSBgFFt1FQShY2xgTFreq3BUN+QXmt78mlrG25ExeJzUq1vrBQNKhFkYs2lNdx4fIPPGqTeGwi+G826f8N5v4Et5S1NX7K3UhDZWNrg3c2b83fOsyLoGzzsrfllXzAxCWpCOqXwU4kgAykls47PonrJ6rR3aA/A7N2BmBrqM/TNqjqOTslN7aq1Y2KziSz1W0r1Kr5ERMez7GiYrsNSlFynlUQghGgnhAgQQgQLIcZlsv0zIcQlIcQ5IcReIYRtum3JQgg/zWNTxn3z2pHrR/C96cuoBqPQE3pcuPGQredvMbCJPSWLGes6PCWXTWo+iVb2rfjp5Fhc7B/w28ErPIpL1HVYipKrcpwIhBD6wDygPeAIeAohHDNUOwO4SylrA2uA6em2xUopXTWPzujYLyd/wcrEig9cPgBg5q4ALE0N+ahZFR1HpuSFp4PNrEysOBvzDQ9iH7JITVOtFHLaaBF4AMFSyhApZQLgA3RJX0FKuV9KGaN5exyopIXzat2tx7dYd3kdA1wHYGZoxumw++wPuMeQ5lWxMDHUdXhKHiljXgafHj6EPw7FuPQiFh0OITI6XtdhKUqu0UYiqAik714RrinLykBge7r3JkIIXyHEcSHEO1ntJIQYrKnne+9e7iw6vujfRSSlJDHEfQgAP+0MpFQxY/o1sn3Jnkph08y2GVNaTiE4ehd3Uzbzu2oVKIWYNhJBZvMsZDosUwjxHuAOzEhXbKNZTPldYI4QItM7slJKLymlu5TSvXTp0jmN+TlJKUn8fvp32lZti0NJB44GR3AsJJJhLapiZmSg9fMp+d+YxmPo6NCRKKNF/H50t1q8Rim0tJEIwoHK6d5XAm5mrCSEaA1MADpLKdPa2VLKm5rnEOAAUEcLMWXb5oDN3Hh8g6HuQ5FSMnN3IOUtTfD0sNFFOEo+oCf0WPbOMsqal+WmwVRm7fXTdUiKkiu0kQhOAQ5CCHshhBHQB3im948Qog7wO6lJ4G66cishhLHmdSmgMXBJCzFl23zf+VS2qEzHNzpyIPAep8MeMLxlNbXoTBFX0qwkq3utJFncZd6ZMYQ/iHn5TopSwOQ4EUgpk4DhwE7gMrBKSnlRCPGtEOJpL6AZQDFgdYZuojUBXyHEWWA/MFVKmeeJIDAykD0hexjiPgR9oc+sXYFUtjalZ93KL99ZKfQaVW7E+MaTidY/zMA1U3QdjqJonVYufksptwHbMpR9ne516yz2Owo4ayOGnPjd93cM9QwZWGcguy7d4fyNh8zoURsjAzXeTkn1XavxrDq/k103prP1cgc61mys65AURWuK/CddQnICy88tp0uNLpQ2K8Ps3YHYlzKnq1qCUklHT+ix6d2/MaAE723w5FH8I12HpChaU+QTwaaATUTERDCwzkB2XLyN/+3HjGrtgIF+kf/VKBnULFuJ/jVmERV/g75rB6qVzJRCo8h/2i36dxGVLSrT0q41s3cHUq1MMTrVrqDrsJR86oeOvSiV8j5bgtaw+MxiXYejKFpRpBPBtYfX2HVlF/1d+7Pj4l2C7kYzqrWDWpBeyVLp4saMajAGk+Q6DN82gvN3zj9bwdsb7OxATy/12dtbF2EqSrYU6USw1G8pEskHtfszZ08g1csWp4NTeV2HpeRznzR3wIax6FOM3mt68yThSeoGb28YPBjCwkDK1OfBg1UyUPK9IpsIUmQKS/yW0Mq+FeevGRFy7wmj2zigp1oDyktYmxvxUWNXiseOwj/CnxHbR6RumDABYjKMM4iJSS1XlHysyCaCfVf3ERoVSn+XAfy8N5ia5S1o61hO12EpBcSgplUoZeCOm9WHLPFbgvc5b7h2LfPKWZUrSj5RZBPBH2f+wMrECv34+lyNeMKo1qo1oLy6EmZGDGhsx72bnalbrhFDtg4hMKvLijZqmhIlfyuSieBR/CPW+6+nV63e/H7wOrUqWNDWsayuw1IKmI+aVMHC2JiaxhMw0jeit6chccUzLGVqZgZT1GhkJX8rkolg7aW1xCXFUdn4LUIjYxjV+g2EUK0BJXsszQwZ0MSef/wl3zadj19CGGO/bQq2tiBE6rOXF/Ttq+tQFeWFimQi+PPcn1SzqsaOfy1wqmhB65pldB2SUkANbGJPcRMDzgZVZVT9UfzycBcbdsyBlBQIDVVJQCkQik4i0PTvvl5CcODqfppHVeP6g1hGtVKtAeX1WZoaMrCJPbsu3eF9x/HULV+XDzd+yLWH6gaxUnAUjUSQrn+3tzNIAaN/3cfwmydopVoDSg592MQeCxMDFhy4xsoeK0lKScJzrSdJKUm6Dk1RXknRSASa/t0S+LM2NLoGte4lMGzvEtUaUHLMwsSQj5pWYfelO8TGlsLrbS+OXj/KpP2TdB2aorySopEINP24z5SHS2Xg/XOpxSa3bugwKKUw6d/YDgsTA+bsCaKPUx8G1hnIj4d/ZE/IHl2HpigvpZVEIIRoJ4QIEEIECyHGZbLdWAixUrP9hBDCLt228ZryACHEW9qI5zmaftx/1gajJOh1UXNu1b9b0RILE0MGNa3Cnst3uHDjIT+3/5kapWrw3rr3uBN9R9fhKcoL5TgRCCH0gXlAe8AR8BRCOGaoNhB4IKWsBswGpmn2dSR1actaQDtgvuZ42jVlCpiZkawHPS6BdSxI1b9b0bJ+je2wNDVkzp5AzAzNWNVzFQ/jH/L++vdJkSm6Dk9RsqSNFoEHECylDJFSJgA+QJcMdboAyzSv1wCtROrF+S6Aj5QyXkp5FQjWHE+7+vYFLy9+PFOR5esgtkIlhOrfrWiZhYkhHzWxZ8/lu5wLj8KpjBNz281ld8huph+ZruvwFCVL2kgEFYHr6d6Ha8oyraNZ4/ghUPIV9wVACDFYCOErhPC9d+9e9qPs25dB366h26+HMQm/ppKAkiv6a1oFP+8NAmCQ2yB6OvZk4r6JHL1+VMfRKUrmtJEIMut2k3HppqzqvMq+qYVSekkp3aWU7qVLl85miKmWfejBb++5qZ5CSq4pbmLIoKb/tQqEECx8eyE2ljZ4rvXkfux9XYeoKM/RRiIIByqne18JuJlVHSGEAWAJ3H/FfbXGUF+P8pamL6+oKDnQr5EdJcwMmbsntVVgaWKJTw8fbj6+ycBNaolLJf/RRiI4BTgIIeyFEEak3vzdlKHOJqCf5nUPYJ9M/d+wCeij6VVkDzgAJ7UQk6LoTHFND6K9/nc5ez0KAI+KHkxrPY0N/huYd2qejiNUlGflOBForvkPB3YCl4FVUsqLQohvhRCdNdUWAyWFEMHAZ8A4zb4XgVXAJWAHMExKmZzTmBRF1z5oaJvaKtDcKwAY3WA0HR068vmuz/n31r86jE5RniUKYjPV3d1d+vr66joMRXmhefuDmbEzgI3DGuNSuQQAETERuP7miqmhKf8O/pfixsV1HKVSUDyJT2LP5Tt0ql3htddVF0KcllK6ZywvGiOLFUUH+jWyw8osdVzBU6XMSrGi+wpCHoTw8ZaP1f0C5ZUtOxbKpz5+XLz5UOvHVolAUXJJMWMDBjWrwv6Ae5y59iCtvKltUya/OZkVF1aw+MxiHUaoFBTR8Ul4HQrhzeqlqV2phNaPrxKBouSifg2ftgqCnikf32Q8rau0ZsT2EZy/c15H0SkFxbKjoUTFJDKq9Ru5cnyVCBQlF5kbGzC4WVUOBt7jdNh/rQJ9PX3+6voXJUxK0GtNL6ITonUYpZKfPY5LxOtQCC1rlMG1svZbA6ASgaLkug8a2mJtbvTMvQKAssXK4t3Nm4CIAIZtG6aj6JT8btnRUB7GJjKqtUOunUMlAkXJZebGBnzcrAr/BEVwOuzZkcUt7Vsyqfkklp9dzpIzS3QUoZJfPYpLZOE/V2lds0yu3Bt4SiUCRckD7ze0pVQxI2btDnxu28RmE2lp35Jh24Zx4e4FHUSn5FdLjzxtDeTOvYGnVCJQlDxgZmTAkOZVORIcyYmQyGe26evp493NGwtjC3qu7qnuFygAPIxNZOE/IbR1LItTRctcPZdKBIqSR/rWt6V0cWNm73m+VVCuWDn+7v43gZGBfLL1EzW+QGHx4as8jkvK9dYAqESgKHnG1EifT5pX5XjIfY5eiXhu+9P7BX+d+0uNLyjiomIS+OPwVdo7lcOxgkWun08lAkXJQ+/Wt6GshTFzdgdl+q1/QtMJtKnShuHbhuN3208HESr5wcJ/QniSkDetAVCJQFHylImhPsNaVONk6H2OBEc+t/3p/YJSZqXosaoHD+O0P52Akr/df5LAkiOhdHQuT/VyeTMXlUoEipLHeterTAVLE2buDsi0VVDavDQ+PXwIjQrlw00fqvsFRczvB68Qm5icq+MGMlKJQFHymLGBPsNbOnDmWhQHAjJfdrWJTROmtp7KusvrmHN8Th5HqOjK3cdxLDsWyjuuFalWJu9mplWJQFF0oKd7JSpbm2bZKgD4vOHndK3RlTG7x3D42uE8jlDRhQUHrpCYLPm0Vd61BkAlAkXRCUN9PT5t9QYXbjxi58U7mdYRQrCkyxLsrezptboXd6Izr6cUDrcexuJ9/Brd3SpiV8o8T8+do0QghLAWQuwWQgRpnq0yqeMqhDgmhLgohDgnhOidbttSIcRVIYSf5uGak3gUpSB5x7UCVUqbM2t3AMkpmbcKLE0sWdNzDQ/iHuC51pOklKQ8jlLJK7/uC0YiGdEyb1sDkPMWwThgr5TSAdireZ9RDPCBlLIW0A6YI4RIP2nGGCmlq+ah+sspRYaBvh6jWr9B4J1otpy7mWU9l3Iu/NbxN/aH7mfC3gl5GKGSV67fj2Hlqev0rleZytZmeX7+nCaCLsAyzetlwDsZK0gpA6WUQZrXN4G7QOkcnldRCoVOzuWpUa44c/YEkZSckmW9fq79GFJ3CNOPTmftpbV5GKGSF+buDUJPTzC8RdatgQexD5hzfA4xiTFaP39OE0FZKeUtAM1zmRdVFkJ4AEbAlXTFUzSXjGYLIYxfsO9gIYSvEML33r3Me1ooSkGjpyf4rM0bXI14wrp/b7yw7px2c6hfsT79N/bHP8I/jyJUclvw3WjW/RvOBw1sKWdpkmW9WcdmMXrnaILvB2s9hpcmAiHEHiHEhUweXbJzIiFEeeBPYICU8ulXn/FADaAeYA18kdX+UkovKaW7lNK9dGnVoFAKjzaOZXGpXIK5e4OIT0rOsp6xgTFreq3B1MCUbiu78Tj+cR5GqeSW2bsDMTXU55M3q2ZZ537sfeaemEsPxx7ULltb6zG8NBFIKVtLKZ0yeWwE7mg+4J9+0N/N7BhCCAtgKzBRSnk83bFvyVTxwBLAQxs/lKIUJEIIxrStzo2oWFacuPbCupUsKrGyx0oCIwPpt6EfKTLry0l5xtsb7OxATy/12dtb1xEVGBduPGTr+VsMbGJPyWJZXhBh5tGZRCdEM6n5pFyJI6eXhjYB/TSv+wEbM1YQQhgB64HlUsrVGbY9TSKC1PsLajJ2pUhqXK0kDauU5Nf9wcQkvLhnUAv7FsxoM4P1/uuZenhqHkWYBW9vGDwYwsJAytTnwYNVMnhFP+0KwNLUkI+aVcmyTmRMJD+f/JmetXriVMYpV+LIaSKYCrQRQgQBbTTvEUK4CyEWaer0ApoB/TPpJuothDgPnAdKAd/nMB5FKZCEEPzvrepERKfOM/MyoxqM4l3nd5m4byLbg7bnfoBZmTABYjLcvIyJSS1XXuhU6H0OBNzjkzerYmFimGW9mcdm8iThSa61BgBEQZzHxN3dXfr6+uo6DEXRuo+WneLk1fv8M7YllmZZfzgAxCTG0GhxI8IehnHyo5M4lMz7/ufo6aW2BDISAlLywWWrfEpKSe/fj3M18gmHxrTA1Eg/03oRMRHYz7Wn0xudWNF9RY7PK4Q4LaV0z1iuRhYrSj7yedvqPI5PYsHBKy+ta2Zoxvre69EX+nTx6cKj+Ed5EGEGNjbZK1cA2B9wl5Oh9xnZyiHLJAAw9fBUniQ84etmX+dqPCoRKEo+UrO8Be+4VmTJkavcfhj30vr2Vvas7rmawMhA3lv3Xt7fPJ4yBcwyDIAyM0stVzKVkiKZviMA25Jm9KlXOct6YVFh/HLyF/q79qdm6Zq5GpNKBIqSz3zW5g1SpGTu3qBXqt/CvgVz2s1hc+Bmvtr3VS5Hl0HfvuDlBba2qZeDbG1T3/ftm7dxFCAbz97A//ZjPm9bHUP9rD+CJx2YhEAw+c3JuR6TSgSKks9Utjajb31bVvleJ+Teqy1kP6zeMD6q8xE/HP4Bnws+uRxhBn37Qmho6j2B0FCVBF4gISmFmbsCqVXBgk7O5bOsd/7OeZafXc7I+iOpbJl1q0FbVCJQlHxoWItqGBvoMXPX8wvdZ0YIwbyO82hq05QBGwdw8sbJXI5QeR1/nwgj/EEsY9vVQE9PZFlv/N7xWJpYMq5JZtO3aZ9KBIqSD5UubsxHTezZev4WftejXmkfI30j1vZaS7li5eji04XwR+G5HKWSHY/jEvllXzANqljTzKFUlvUOhh5ka9BWxjcZj7WpdZ7EphKBouRTg5tXpaS5ET9uu/zKy1WWNi/NZs/NPEl4QucVnXmS8CSXo1ReldehECKfJDC+fU1Sx9A+LzklmdE7R1PZojIjPEbkWWwqEShKPlXM2IBRrR04cfU++/wznb0lU05lnPDp4cPZO2d5b/17JKdkPX+RkjfuPIpj4T8hvO1SAZfKJbKs98eZPzhz+wwz2szA1NA0z+JTiUBR8rE+HjbYlzJn6nb/F05TnVEHhw7Mfms2G/w38MWeLOdyVPLInD2BJKdIxrStnmWdqLgoJuybQFObpvSq1SsPo1OJQFHyNUN9Pca+VZ2gu9Gs/Td71/xH1h/JCI8RzDw2kwWnFuRShMrLBN15zMpT13mvgS02JbNedObbg98SERPB3HZzs7x0lFtUIlCUfK6dUznq2JRg5q7Al05Il9Hst2bT0aEjw7cP1+2cREXY1O3+mBsZvHAJysv3LvPLyV8Y5DaIOuXr5GF0qVQiUJR8TgjBxI41ufs4Hq9DIdnaV19PH58ePriUdaHn6p743lRzdOWlI8ER7PW/y9AW1bA2N8q0jpSSEdtHYG5ozvctdTPvpkoEilIA1LW1pqNzeX4/GPJKU0+kV8yoGFvf3Uops1J0/LsjIQ+yl0yU15OcIvl+62UqWZkyoLFdlvX+OvcXe6/uZWrrqZQ2182iWyoRKEoBMa59DZJTJD/tCsj2vuWLl2fHeztITE6kvXd7ImIiciFCJb21p8O5fOsR49rXwMQw69lFP9v1GQ0rNWRw3cF5HOF/VCJQlAKisrUZA5rYsfbfcC7ceJjt/WuUqsFmz82ERYXR6e9ORCe82vQVSvY9iU9ixq4A3GxK0PEFU0mM3T2WqLgofu/0O3pCdx/HOTqzEMJaCLFbCBGkebbKol5yukVpNqUrtxdCnNDsv1KzmpmiKFkY1qIaVmZGfLfl0isPMkuvsU1jVvZYyambp+i+qjsJyQm5EKXy+8Er3Hscz8ROjln2ADoQeoAlfkv4X8P/4VzWOY8jfFZOU9A4YK+U0gHYq3mfmVgppavm0Tld+TRgtmb/B8DAHMajKIWahYkho9u8wYmr99l58fZrHaNLjS4sfHshu67syj/rHhci4Q9i+P1QCJ1dKuBmk+l3Y6ITohm4aSBVrKrwVfM8njE2EzlNBF2AZZrXy0hdd/iVaNYpbgmseZ39FaWo8qxXmRrlivPdlsvEJb7eqOEP63zI1FZT8bngw4htI16rdaFk7sdt/giRek8nK1/s/oKrD67yR+c/MDPMemxBXslpIigrpbwFoHkuk0U9EyGErxDiuBDi6Yd9SSBKSvm0Y3Q4UDGrEwkhBmuO4Xvv3r0chq0oBZeBvh6T3q7FjajYbHcnTW9s47GMaTSG+b7zGbdnnEoGWnDsSiRbz99i6JvVqFAi8ykidl/ZzXzf+YxqMIrmds3zOMLMGbysghBiD1Auk03ZWZ3aRkp5UwhRBdinWbA+s3X1svyXKKX0Arwgdc3ibJxbUQqdhlVL0sG5HPMPBNOjbqUsP3ReRAjBtNbTiE6IZvrR6RQ3Ls7EZhNzIdqiISk5hcmbL1LJypTBzapkWudh3EM+3PQh1UtWZ0rL/LOK20sTgZSydVbbhBB3hBDlpZS3hBDlgUxnxpJS3tQ8hwghDgB1gLVACSGEgaZVUAm4+Ro/g6IUSV92qMney3f5cbs/v3i+3mhUIQS/dviV6IRovtr/FWaGZnzW8DMtR1o0rDh5Df/bj1nQ1y3L7qIjd4zk5uObHBt4LE8nlXuZnF4a2gT007zuB2zMWEEIYSWEMNa8LgU0Bi7J1HbofqDHi/ZXFCVzlazM+Lh5VTafvcmxK5GvfRw9occfXf6gh2MPPt/1OXOPz9VilEXD/ScJzNwdSMMqJWnnlNkFFFh+djnLzy5nYtOJeFT0yOMIXyyniWAq0EYIEQS00bxHCOEuhFikqVMT8BVCnCX1g3+qlPKSZtsXwGdCiGBS7xkszmE8ilKkfNK8KhVLmPL1xgskZmN20owM9Az4u9vfdKvZjVE7R/HLiV+0GGXhN227P9FxSUzuUivT7qL+Ef4M3TqUZrbN8kUvoYxeemnoRaSUkUCrTMp9gY80r48CmXaSlVKGAPkrNSpKAWJqpM83nWsxaLkvfxy+ysfNq772sQz1DfHp7kPvNb0ZuWMkACPq593iKAXV6bAHrPS9zuBmVXijbPHntscmxtJ7TW9MDEz4u9vfGOjl6GM3V6iRxYpSwLVxLEurGmWYuzeIWw9jc3QsQ31DfHr48E6Ndxi5YyQzjszQUpSFU1JyCl9tuEA5CxM+bZX57KKjdozi3J1zLO+6nIoWWXaM1CmVCBSlEPimcy2SUyTfbbn08sovYaRvxKoeq+jj1Iexe8Yy+cBk1bU0C38dD+PSrUd81ckRc+Pnv+n/7vs7Xv96MbbRWDo4dNBBhK9GJQJFKQQqW5sxrEU1tp2/zYGAV1/WMiuG+ob81fUvBrgO4JuD3zB291iVDDK48yiOmbsCaepQig7Oz98g/ifsH4ZvH067au34odUPOojw1alEoCiFxMfNq1C1tDkTN1zI9gI2mdHX02dR50UMrzecn479xICNA0hMTtRCpIXDN5suEp+cwrddnJ67QXzt4TW6r+qOfQl7/u72N/p6mXcnzS9UIlCUQsLYQJ8fu9Um/EEss3cHauWYekKPn9v/zOQ3J7Ps7DK6ruxKTGKMVo5dkO26eJvtF27zaSsH7EuZP7PtUfwjuvh0IT45nk2em7Ayo1YUBwAAEstJREFUzXy+ofxEJQJFKUQ87K3x9LBh8eGrrzVVdWaEEHzd/GsWdFzAtqBttFreintPiu40L4/jEvl640VqlCv+3AjihOQEuq3sxvk751nZYyU1SmU931B+ohKBohQy49rXoGQxY8atO0dSDsYWZDTEfQhreq3B77YfDRY3wD/CX2vHLkh+2hnAncdx/NjNGUP9/z5CU2QK/Tf0Z+/VvSzuvJh21drpMMrsUYlAUQoZS1NDJneuxYUbj1j4z1WtHrtbzW4c6HeA6IRoGi5uyP6r+7V6/PzuVOh9lh8Po19DO+qkm2JaSsn/dv2PFRdW8GOrH+nn2u8FR8l/VCJQlEKovVM52tUqx+zdgQTdeazVY9evVJ8TH52gQvEKtP2rLb+e/LVI9CiKTUhmzOqzVCxhypi3qqeVSykZv3c8s4/PZqTHSL5o/IUOo3w9KhEoSiEkhOC7d5wwN9bnf6vPavUSEYBdCTuOfniUdtXaMWL7CAZuGkhcUpxWz5HfTN/pT2hkDNN71E4bMyCl/H97dx4fVXkucPz3ZCMESBQIO2EzKJiiLEKAKwhiRfSyVLRwgVIVKSitW1uo4NWLVy9i3a51ISqCFkRQWuJKCUtlkSVFIYAEQgIxCIQQWROyPvePGb0RSDJZZiYz83w/Hz6Zc+aceZ+HSeaZc8573pcZSTN4ZuMzTO01lReHvljujGR1mRUCY/xUdKN6zB4Rx46sUySsr/68BeWJCo9ixZgVPDbgMd7++m0GvD2AjO9r91RUXbE1I5cFmw7yq77t6NepKeAoAtOTpjN301zu63Ufrwx7xSeLAFghMMav3datJbfEteDFVftJPVq7p4jA0b109qDZ/O2Xf2PfiX10n9ed5d8sr/V2vCmvsJg/fLCDNpfXZ/pQRy+gopIi7n5hIM9uepb7t8Jf7v8YWbzYy5FWnxUCY/zYD6eIGoWH8MCSrygort7UlpUZedVItv9mO52bdOb2pbcz7dNp5BfVbNyjuuLJj78hMzePZ0dfQ4N6IZwpOMNtz/VkwZn1PLEWXv4U5FAmTJ4MixZ5O9xqsUJgjJ9r2rAec0d3Y+/RMzz7earb2ul4eUc23L2Bh+Mf5pVtr9B9Xne2Ht7qtvY8YeXuo7y3NZPfDOhEfMcmHDp5iIELBrL6XApvrYDH/wk/ngzKy4OZVZm4se6wQmBMALixS3PGx8fw5oYMNuzPcVs7YcFhPHfzc6yasIq8ojz6vtWXmatn+uSF5OzT55nx4U7iWkfy8E2dWZm2kh4JPTjw/QE+eg/u/uoSO2VmejzO2lCjQiAijUVklYjsd/686F5qERkkIl+X+Xf+hwnsRWSBiGSUee7amsRjjCnfzGFd6RTdgEeWfc335wrd2taQjkNImZrChG4TeHrD03R7rRur01e7tc3aVFqqPLJsB/lFJTx3RzfmbPxvbll0C60btSb53mRuKWx36R1jYjwbaC2p6RHBDGC1qsYCq53LP6Gqa1X1WlW9FhgM5AH/KLPJH354XlW/rmE8xphy1A8L5qUx3ck9V8jvl+2gtNS9ff+jwqNYMHIBn4/7nFItZci7Qxi/fDyHTx92a7u14Y316azfn8M9N9Tjrk9u4fF1jzOu2zg2T9pMbJNYeOopiIj46U4REY71PqimhWAEsND5eCEwspLtRwOfqaqNWmWMF8S1jmLmsC6s3pvNG27oUnopN19xMylTU3hswGMs27OM2JdjmbVmFqcLTnuk/aradjCXZ1buoXWbJP5z863szdnLX0f9lXdGvkNEqPPDf9w4SEiAdu1AxPEzIcGx3gdJTe4IFJGTqnpZmeXvVbXcofZEZA3wvKp+7FxeAPQFCnAeUahqQWXt9urVS5OTk6sdtzGBTFW5f/F2Vu4+xpLJ8VzXvrHH2s74PoNH1zzKkl1LiI6I5o/9/8iUXlNoGNbQYzFU5MTZAvq9+DxZpfPI00MMv3I4r9/6Oi0btfR2aLVCRP6lqr0uWl9ZIRCRJODiWRdgJrDQ1UIgIi2BnUArVS0qs+4oEAYkAAdUdXY5+08GJgPExMT0PHToUIVxG2PKd/p8EcNf3kB+UQmf/O56mjas59H2tx3exp9W/4nVGatpXL8xD/Z5kKnXTaVpRFOPxlHWl99uYfSiB/muYDNtIzvw4tA/M+qqUT57k9ilVLsQVPKiqcANqnrE+aG+TlWvLGfbB4CrVXVyOc/fAPxeVW+rrF07IjCm5nZ/d4pRr26iR8xlvHtPn5+MpOkpm7M28/T6p/lo30eEBYdxR9c7mNJrCv3b9vfIB3CplrIybSVzN81l3cF1BGkDxnZ5iPmjHyMsOMzt7XtaeYWgpu98IvDDMHsTgRUVbDsWeO+CoFo6fwqO6wu7ahiPMcZFV7eKYs4vfsbm9Nxameu4OuLbxJM4NpFdU3cxucdkPtr3Ede/fT1XvHwFM5JmsP3IdrcMaJeak8qsNbPo+FJHhi0exq5jqVxeOIkHrl7Fu3fO9ssiUJGaHhE0AZYCMUAmcIeq5opIL2CKqk5ybtce2Ai0VdXSMvuvAaJx3JPxtXOfs5W1a0cExtSepz/9hoQv0vmfX/yMsb292/3xXOE5lu5eyvu73ycpPYkSLaFFwxYM7jCYwe0HE98mns5NOhMaHOrya6oqx84dY0vWFlalryIpPYnUE6kESRA3dbyJQW1HMz+pGd1aN2XRpHjCQvz39iq3nBryFisExtSeklLl7gXb2HQgh0WT4undwXMXjyuSk5dDYmoiSelJrMlYw7FzxwAIDQqlS3QXOl3eieYNmtOiYQsa1WtEkAQRJEHkF+VzPO84x/OOc+jkIXZl7+JE/gkAIkIjGNhuIDd3upk7r76TEBoz4i8bAEj87b95/FqJp1khMMbfLVrkGOIgM9NxY9NTT7ncnfFUfhGjXt3IibOFfDi1L1c0a+TmYKtGVdmbs5ftR7aTkp1CSnYKh04e4ti5Y+TkXXyndHhIONER0bSJbENcszjimsXRvUV3+rTp8+Npn3MFxYxJ2Mz+7DN8MKUfca2jPJ2Wx1khMMafLVrkGPQsr8wtOhERVerbnnkij1+8tol6IUEsv68fzSPD3RRsLVq0iKJZj5J3NJPStm3QWbOoN2Y8DcIaVLhbUUkp9yxMZmNaDm/8qieDr2ruoYC9y10Xi40xdcHMmT8tAlDlQdBimkSw4K7rOJlXyMT5Wzl9vqiWg6xlzuIXejCTqPNw+f4sGk99mAbL/l7hbqrK9A938sW+4zw1Mi5gikBFrBAY4w/KG+ysioOgxbWO4rXxPUnLPsukhcnkFRbXQnBuUo3ip6o89ck3LN9+mIeGdGaMly+O1xVWCIzxB+UNdlaNQdAGdI7m+V9eS/LBXCYtTCa/0D1zGNRYFYufqjLn8728uSGDiX3b8bsbr3BjcL7FCoEx/qCWB0Ebfk0rnrvzGr5MP8G97yRzvqgOFoMqFD9V5c//SGXeP9MZHx/DE8Ov9qs7hmvKCoEx/sANg6CN6t6GZ0dfw8YDOdz7TjLnCurYaSIXi5+qMndlKq+sPcDY3m2ZPTzOisAFrNeQMaZCH/wri+kf7iSuVSTzf30dTepSX/tKuswWl5Ty6N9SWJqcxbg+MTw5Io6goMAtAtZ91BhTbUl7jnH/4u20uqw+79zdm7aNIyrfycvyC0uYtng7q/dm88CNsTw4JDbgjwSs+6gxptqGdG3O4nv7kHuukFGvbmRL+glvh1ShwyfzuXPel6xJzebJkXE8dFPngC8CFbFCYIxxSc92jflwaj8i64cy7s0tvL0xwy0DwtXUprQc/v3lDWTknCNhQi8mxJczraT5kRUCY4zLrmjWkL/f358brmzGf320hwff/5pT+XXjxrOSUuXVdWmMf2sLjRuEsWJaf27qajeLuSLE2wEYY3xLZHgoCRN68uq6NF5I2s/WjFzm3N6NgZ2jvRZT+vGzPLJsB19lnuTWn7XkmdHdaFjPPt5cZUcExpgqCwoSpg2OZfnUfjSoF8LE+VuZ/sFOcs5WOtNsrSooLmHePw9wy0vrST9+jpfGXMtf/qO7FYEqsl5DxpgaOV9Uwgur9vHmhgzqhwZz36BO3N2/A+GhwW5rU1X5JOUIz3y+l29z8xnSpTlPj4qjmS8MlOdF1n3UGONWadlnmfPZXpK+OUbLqHAm9mvP2OtiiIpwfRKZyhQWl/JpyhHe2pBByuFTXNWiETNv7cL1sd47LeVL3DVn8R3AE0AXoLeqXvLTWUSGAi8BwcCbqjrHub4DsARoDGwHJqhqYWXtWiEwpu768sAJXlq9j83pudQPDWZUj9bc1q0lvds3JqQa8yKrKnuPnuGzXUdZsjWT7DMFdGzagCkDO3F7zzYEB/ANYlXlrkLQBSgF5uGYeP6iT2cRCQb2ATcBWcA2YKyq7hGRpcByVV0iIq8DO1T1tcratUJgTN2357vTvL0xg8Qd31FQXEpU/VAGXRnNtW0vo2urKK5s0YjI8JCL+vefLyohLfsse46cZtfhU6xNzebb3HxE4PrYaO7q356BsdEBfYdwdbn11JCIrKP8QtAXeEJVb3Yu/8n51BzgONBCVYsv3K4iVgiM8R15hcV8sS+Hf+w5yhf7jpNz9v8P+sOCg4isH0LDeiHkF5VwOr+Y/DID3EWEBRPfsQk/79qcG7s0J7pRHRrewgeVVwg8cWm9NfBtmeUsoA/QBDipqsVl1rcu70VEZDIwGSCmGkPrGmO8IyIshKFxLRga1wJVJftMAXu+O03qsTOczCvi9PkizpwvJiI0mMj6IUSGh9IhugFXt4qiXeMI++bvAZUWAhFJAlpc4qmZqrrChTYu9S5qBesvSVUTgARwHBG40K4xpo4REZpHhtM8MpxBVzXzdjjGqdJCoKpDathGFtC2zHIb4DsgB7hMREKcRwU/rDfGGONBnrihbBsQKyIdRCQMGAMkquPixFpgtHO7iYArRxjGGGNqUY0KgYiMEpEsoC/wiYisdK5vJSKfAji/7U8DVgLfAEtVdbfzJaYDD4tIGo5rBm/VJB5jjDFVZzeUGWNMgLD5CIwxxlySFQJjjAlwVgiMMSbAWSEwxpgA55MXi0XkOHComrs3xXEPQ6AJxLwDMWcIzLwtZ9e0U9WLhmr1yUJQEyKSfKmr5v4uEPMOxJwhMPO2nGvGTg0ZY0yAs0JgjDEBLhALQYK3A/CSQMw7EHOGwMzbcq6BgLtGYIwx5qcC8YjAGGNMGVYIjDEmwPltIRCRoSKSKiJpIjLjEs/XE5H3nc9vEZH2no+ydrmQ88MiskdEdorIahFp5404a1tleZfZbrSIqIj4fDdDV3IWkTud7/duEVns6RjdwYXf8RgRWSsiXzl/z4d5I87aJCLzRSRbRHaV87yIyP86/092ikiPKjeiqn73DwgGDgAdgTBgB9D1gm3uA153Ph4DvO/tuD2Q8yAgwvl4qq/n7Grezu0aAV8Am4Fe3o7bA+91LPAVcLlzuZm34/ZQ3gnAVOfjrsBBb8ddC3kPAHoAu8p5fhjwGY5ZH+OBLVVtw1+PCHoDaaqarqqFwBJgxAXbjAAWOh9/ANwoIr48OWqlOavqWlXNcy5uxjErnK9z5b0GeBKYC5z3ZHBu4krO9wKvqOr3AKqa7eEY3cGVvBWIdD6Owg9mPVTVL4DcCjYZAbyjDptxzPzYsipt+GshaA18W2Y5y7nuktuoY/KcUzgmx/FVruRc1j04vkX4ukrzFpHuQFtV/diTgbmRK+91Z6CziGwUkc0iMtRj0bmPK3k/AYx3Tpj1KfBbz4TmVVX9279IpXMW+6hLfbO/sJ+sK9v4EpfzEZHxQC9goFsj8owK8xaRIOAF4NeeCsgDXHmvQ3CcHroBx5HfehGJU9WTbo7NnVzJeyywQFWfE5G+wLvOvEvdH57X1PizzF+PCLKAtmWW23DxIeKP24hICI7DyIoOv+o6V3JGRIYAM4HhqlrgodjcqbK8GwFxwDoROYjjHGqij18wdvX3e4WqFqlqBpCKozD4MlfyvgdYCqCqXwLhOAZn82cu/e1XxF8LwTYgVkQ6iEgYjovBiRdskwhMdD4eDaxR55UXH1Vpzs5TJPNwFAF/OGcMleStqqdUtamqtlfV9jiujQxXVV+e69SV3++/4+gcgIg0xXGqKN2jUdY+V/LOBG4EEJEuOArBcY9G6XmJwK+cvYfigVOqeqQqL+CXp4ZUtVhEpgErcfQ0mK+qu0VkNpCsqonAWzgOG9NwHAmM8V7ENedizs8CDYFlzuvimao63GtB1wIX8/YrLua8Evi5iOwBSoA/qOoJ70Vdcy7m/Qjwhog8hOP0yK99/AseIvIejlN8TZ3XPh4HQgFU9XUc10KGAWlAHnBXldvw8f8jY4wxNeSvp4aMMca4yAqBMcYEOCsExhgT4KwQGGNMgLNCYIwxAc4KgTHGBDgrBMYYE+D+Dxs4o76HuSAOAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# As we shall see, the error can be minimised in closed form\n", "# for the moment, we'll use the built-in function polyfit to do this\n", "\n", "w = polyfit(x, t, M)\n", "print(w)\n", "\n", "# Let's see what our polynomial looks like (green)\n", "plot(xground, yground)\n", "plot(x, t, 'ro')\n", "plot(xground, polynomial(w, xground), 'g')\n", "legend(['Ground truth', 'Training samples', 'Prediction'])" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train Error 0.2583352303890549\n", "Test Error 0.5892968106305138\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Now we will define a testing set to see\n", "# how well this model works, generated similarly\n", "# to our training data\n", "Ntest = 8\n", "xtest = random_sample(Ntest)\n", "ytest = sin(2*pi*xtest) + randn(Ntest) * std_deviation\n", "\n", "plot(xground, polynomial(w, xground), 'g')\n", "plot(x, t, 'ro')\n", "plot(xtest, ytest, 'co')\n", "\n", "print(\"Train Error\", err(w, x, t))\n", "print(\"Test Error\", err(w, xtest, ytest))\n", "legend(['Prediction', 'Training Samples', 'Test Samples'])" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train Error 1.1599993059438013e-19\n", "Test Error 5.848149550032996\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# What if we use a higher order polynomial?\n", "w_higher = polyfit(x, t, 9)\n", "\n", "\n", "plot(x, t, 'ro')\n", "plot(xtest, ytest, 'co')\n", "plot(xground, polyval(w_higher, xground), 'g', scaley=False)\n", "\n", "print(\"Train Error\", err(w_higher, x, t))\n", "print(\"Test Error\", err(w_higher, xtest, ytest))\n", "\n", "# It passes directly through all our training points, but generalises\n", "# poorly for predicting the test points - overfitting!\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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jWb43GjUNdBrO1xutNuJSAMKhWDYMJ9T9SzupqCLWgNM51Ten//8Z2bPns2hQ4c477zzeOSRRygpKWHSpEnk5+djZmRnZ3PyySeTn5/PuHHjOOGEE3j77bcrfBhs3ryZKVOmsHPnTlq2bMm8efPo2bMnEydO5OSTT2b16tUMGTKEpk2bUlhYyEcffUSnTp2YM2cON9xwA6tXryYtLY0HH3yQCy+8kHnz5rFs2TL27dvHwYMHWbp0acx/dxGppcJC+Mc/4JprGmR38RvoN98M+fmR17/55vFDKxYVweTJMHdu+OcMGFD9qF9hrFu3jmeffZaVK1eSmppKdnY2Tz31FD169GDnzp28//77AOzevZu2bdvy8MMP88gjjzBgwIDjXis7O5t58+bRo0cPVqxYwZQpU3jllVcA+PDDD3n11VdJSUnhF7/4BWvWrGH58uU0b96c++67j6ZNm/L++++zfv16xowZw+bNmwFYtWoV+fn5FUZmFJE4sGKFv2+AE6IQz4FenQYcP3fZsmW88847ZGX5q233799Pt27dGDlyJJs2bWLq1KmMGTOGESNGVPk6u3fv5s033+SKK644uqx8M8mVV15JSrmvZWPHjqV58+YA5ObmMm3aNAB69+5N586dj47bUnmYXRGJE6EQNGsGWWGv1I+5+A30OBo/18y49tprueeee45b99577/HSSy8xa9YsnnnmGebMiTylqpnRoUMH8iN889BwuSJJJjcXzj7bh3oDSNyTog04fu7w4cN5+umn2blzJ+B7w2zfvp3CwkLMjCuvvJK7776b1atXA9CqVSu+/PLL416nXbt2nHLKKTz77LMAlJSUsHbt2qhquPDCC8kpPem7ceNGduzYwWmnnRaLX09E6sNXX8Hq1Q3SXbFM/B6hV6cBx8/t27cv06dPZ/jw4ZSUlJCWlsYf//hHmjRpwuTJkzEznHPcd999AEyaNInrrrsu7EnRp556ihtvvJG77rqLQ4cOMXHiRPr3719tDTfddBPXX389ffv2JS0tjSeffLJGPW9EpIG9+SYUFzdooGv43EZG77FIA7n7bn/74gto0yZmL6vhc0VEGlooBP37xzTMq6NAFxGJtcOHfZNLA08LGXeBHlQTUGOg91akgeTn+5OiDdT/vExcBXrz5s3ZtWuXgqcemBm7du062q9dROpRA0wIHU5c9XLp2rUr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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Let's compare the train and test error for different\n", "# orders of polynomial\n", "test_err = []\n", "train_err = []\n", "\n", "maxorder = 10\n", "\n", "for m in range(0,maxorder):\n", " weights = polyfit(x, t, m)\n", " train_err.append(rms(weights, x, t))\n", " test_err.append(rms(weights, xtest, ytest))\n", " \n", "plot(range(0,maxorder), train_err, 'bo-')\n", "plot(range(0,maxorder), test_err, 'ro-')\n", "legend(['Train error', 'Test error'])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.7.2" } }, "nbformat": 4, "nbformat_minor": 1 }