{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Cross-validation and polynomial regression" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Polynomial regression\n", "\n", "Polynomial regression consists of fitting some data $(x, y)$ to a $n$-order polynomial of the form:\n", "\n", "$$\n", " y = f(x) = b + w_1 \\cdot x + w_2 \\cdot x^2 + ... + w_n \\cdot x^n\n", "$$\n", " \n", "By rewriting the unidimensional input $x$ into the following vector:\n", "\n", "$$\n", " \\mathbf{x} = \\begin{bmatrix} x & x^2 & ... & x^n \\end{bmatrix}^T\n", "$$\n", "\n", "and the weight vector as:\n", "\n", "$$\n", " \\mathbf{w} = \\begin{bmatrix} w_1 & w_2 & ... & w_n \\end{bmatrix}^T\n", "$$\n", " \n", "the problem can be reduced to linear regression:\n", "\n", "$$\n", " y = \\langle \\mathbf{w} \\cdot \\mathbf{x} \\rangle + b\n", "$$\n", " \n", " and we can apply the delta learning rule to find $\\mathbf{w}$ and $b$:\n", "\n", "$$\n", " \\Delta \\mathbf{w} = \\eta \\, (t_i - y_i ) \\, \\mathbf{x_i}\n", "$$\n", "$$\n", " \\Delta b = \\eta \\cdot (t_i - y_i ) \n", "$$\n", "\n", "A first method to perform polynomial regression would be to adapt the code you wrote in the last exercise session for linear regression. However, you saw that properly setting the correct learning rate can be quite tricky. \n", "\n", "The solution retained for this exercise is to use the built-in functions of Numpy which can already perform polynomial regression in an optimized and proved-sure manner (Note: NumPy does not use gradient descent, but rather directly minimizes the error-function by inversing the Gram matrix).\n", "\n", "```python\n", "w = np.polyfit(X, t, deg)\n", "```\n", "\n", "This function takes the inputs $X$, the desired outputs $t$ and the desired degree of the polynomial `deg`, performs the polynomial regression and returns the adequate set of weights (beware: the higher-order coefficient comes first, the bias is last).\n", "\n", "Once the weights are obtained, one can use them to predict the value of an example with the function:\n", "\n", "```python\n", "y = np.polyval(w, X)\n", "```\n", "\n", "*Note:* if you prefer to use scikit-learn, check but see for why it may be a bad idea.\n", "\n", "Let's start by importing the usual stuff and create a dataset of 16 samples generated using the function $x \\, \\sin x$ plus some noise:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "# Just to avoid the annoying warnings, please ignore\n", "def warn(*args, **kwargs):\n", " pass\n", "import warnings\n", "warnings.warn = warn\n", " \n", "def create_dataset(N, noise):\n", " \"Creates a dataset of N points generated from x*sin(x) plus some noise.\"\n", " \n", " x = np.linspace(0, 10, 300)\n", " rng = np.random.default_rng()\n", " rng.shuffle(x)\n", " x = np.sort(x[:N])\n", " t = x * np.sin(x) + noise*rng.uniform(-1.0, 1.0, N)\n", " \n", " return x, t\n", "\n", "N = 16\n", "X, t = create_dataset(N, noise=0.2)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzkAAAH5CAYAAACiZfCEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1c0lEQVR4nO3dd3xV9f3H8fe5NzskNyQhO0DCDmEHkKU4UBwobqu27tYNta3VaovaKrXOVitW21p/7taFOHCLiuyw9wgQQkIgITd73Xt+f4REIyuB3Jw7Xs/HI4+Sm5vcNzUk932/3/P5GqZpmgIAAAAAP2GzOgAAAAAAdCRKDgAAAAC/QskBAAAA4FcoOQAAAAD8CiUHAAAAgF+h5AAAAADwK5QcAAAAAH4lyOoAR+J2u7V7925FRUXJMAyr4wAAAACwiGmaqqioUEpKimy2I6/VeHXJ2b17t9LT062OAQAAAMBL5OfnKy0t7Yj38eqSExUVJanpLxIdHW1xGgAAAABWKS8vV3p6ektHOBKvLjnNW9Sio6MpOQAAAADadBkLgwcAAAAA+BVKDgAAAAC/QskBAAAA4Fe8+pocAAAA+A+32636+nqrY8BLBQcHy263d8jXouQAAADA4+rr65WXlye32211FHixmJgYJSUlHfcZmZQcAAAAeJRpmiosLJTdbld6evpRD3JE4DFNU9XV1SouLpYkJScnH9fXo+QAAADAoxobG1VdXa2UlBRFRERYHQdeKjw8XJJUXFyshISE49q6Ro0GAACAR7lcLklSSEiIxUng7ZpLcENDw3F9HUoOAAAAOsXxXmcB/9dR3yOUHAAAAAB+hZIDAAAAwK9QcgAAAAA/c99992no0KFWx9DEiRM1ffr0Tn9cj5acxsZG3XvvvcrIyFB4eLgyMzP1wAMPMB8dAAAAPqGoqEjTpk1T7969FRYWpsTERI0fP17PPvusqqurrY53zL766isZhqGysjKv/HrHy6MjpB9++GE9++yzevHFFzVw4EAtXbpU11xzjRwOh6ZNm+bJhwYAAACOy7Zt2zRu3DjFxMTooYce0qBBg9TY2KhNmzbp3//+t1JSUnTuuece8nMbGhoUHBzcyYk7Xn19vU9OxfPoSs6CBQt03nnn6eyzz1bPnj110UUX6fTTT9fSpUs9+bAAAADwYqZpqrq+0ZI30zTbnPPmm29WUFCQli5dqksuuUQDBgzQoEGDdOGFF+qDDz7QlClTWu5rGIaeffZZnXfeeYqMjNSf/vQnSdKsWbPUq1cvhYSEqF+/fnrppZdaPmf79u0yDEMrVqxoua2srEyGYeirr76S9P0Kyeeff66cnBxFRERo7Nix2rhxY6usf/7zn5WYmKioqChdd911qq2tPezfa/v27Tr55JMlSV27dpVhGLr66qslNW0vu/XWW3XHHXcoPj5ekyZNOmrOI309SXK73brzzjsVGxurpKQk3XfffW39T3DMPLqS07yUt2nTJvXt21crV67Ut99+qyeffPKQ96+rq1NdXV3L++Xl5Z6MBwAAAAvUNLiU9YePLXnsdQ+coYiQoz8FLikp0SeffKKHHnpIkZGRh7zPj8cdz5gxQzNnztQTTzwhu92ud955R9OmTdOTTz6p0047Te+//76uueYapaWltZSCtrrnnnv02GOPqVu3brrxxht17bXXav78+ZKk//73v5oxY4b+/ve/a8KECXrppZf0t7/9TZmZmYf8Wunp6Xrrrbd04YUXauPGjYqOjm45iFOSXnzxRd10002aP39+m0phW77eHXfcoUWLFmnBggW6+uqrNW7cOE2aNKld/x+0h0dLzm9/+1s5nU71799fdrtdLpdLDz74oH7yk58c8v4zZ87U/fff78lIAAAAwFFt2bJFpmmqX79+rW6Pj49vWSW55ZZb9PDDD7d87PLLL9e1117b6v2rr75aN998syTpjjvu0MKFC/Xoo4+2u+Q8+OCDOumkkyRJd911l84++2zV1tYqLCxMTz75pK699lpdf/31kqQ//elP+uyzzw67mmO32xUbGytJSkhIUExMTKuP9+7dW3/5y19a3t++ffsRsx3t6w0ePFgzZsyQJPXp00dPP/20Pv/8c98tOW+88YZefvllvfrqqxo4cKBWrFih6dOnKyUlRVddddVB97/77rt1xx13tLxfXl6u9PR0T0YEAADwS1V1jdq4p0IbCiu0sahc2/ZVKSEqTFkp0RqYEq0BydFyhFtzzUh4sF3rHjjDssdujx+v1ixevFhut1tXXHFFqx1IkpSTk9Pq/fXr1+vnP/95q9vGjRunv/71r+3KIDUVhWbJycmSpOLiYnXv3l3r16/XjTfe2Or+Y8aM0Zdfftnux5EO/nscrx9ml5ryFxcXd+hj/JhHS85vfvMb3XXX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N27cQaPpN23apB49eliUCN6uurpaNlvrp312u50R0miTjIwMJSUltXo+XF9fr3nz5nnt82FWctrgjjvu0E9/+lPl5ORozJgxeu6557Rz507deOONVkeDF7rlllv06quvavbs2YqKimpZBXQ4HAoPD7c4HbxRVFTUQddsRUZGKi4ujmu5cEi//OUvNXbsWD300EO65JJLtHjxYj333HN67rnnrI4GLzVlyhQ9+OCD6t69uwYOHKjly5fr8ccf17XXXmt1NHiJyspKbdmypeX9vLw8rVixQrGxserevbumT5+uhx56SH369FGfPn300EMPKSIiQpdffrmFqY/ARJv8/e9/N3v06GGGhISYw4cPN+fNm2d1JHgpSYd8e+GFF6yOBh9y0kknmdOmTbM6BrzYnDlzzOzsbDM0NNTs37+/+dxzz1kdCV6svLzcnDZtmtm9e3czLCzMzMzMNO+55x6zrq7O6mjwEl9++eUhn79cddVVpmmaptvtNmfMmGEmJSWZoaGh5oknnmiuXr3a2tBHwDk5AAAAAPwK1+QAAAAA8CuUHAAAAAB+hZIDAAAAwK9QcgAAAAD4FUoOAAAAAL9CyQEAAADgVyg5AAAAAPwKJQcAAACAX6HkAAAAAPArlBwAAAAAfoWSAwAAAMCv/D+s9unySyOQ1gAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = np.linspace(0, 10, 100)\n", "\n", "plt.figure(figsize=(10, 6))\n", "plt.plot(x, x*np.sin(x), label=\"Ground truth\")\n", "plt.scatter(X, t)\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Q:** Apply the `np.polyfit()` function on the data and visualize the result for different degrees of the polynomial (from 1 to 20 or even more). What do you observe? Find a polynomial degree which clearly overfits." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA08AAAH/CAYAAACPa+ZGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAACOvklEQVR4nOzdd3gUVfvG8e9sSS/UFHrvIL2DINJULFhQRKy8il3E/voi9vqzixUs2AVBeu9Fegm9hNASAgkkISHJlvn9sRCNhCZJJuX+XNdeZM/MbO5FhDx7zjzHME3TRERERERERM7KZnUAERERERGR4kDFk4iIiIiIyHlQ8SQiIiIiInIeVDyJiIiIiIicBxVPIiIiIiIi50HFk4iIiIiIyHlQ8SQiIiIiInIeVDyJiIiIiIicBxVPIiIiIiIi50HFk4iIiIiIyHko0OJp4cKF9OvXj0qVKmEYBhMmTMh13DRNXnjhBSpVqkRgYCDdunVj06ZN53zdcePG0ahRI/z9/WnUqBG///57Ab0DERERERERnwItntLT07nkkkv46KOP8jz+5ptv8n//93989NFHrFy5kqioKHr27ElaWtoZX3PZsmUMGDCA2267jfXr13Pbbbdx00038eeffxbU2xAREREREcEwTdMslG9kGPz+++9ce+21gG/WqVKlSjz66KM89dRTAGRlZREZGckbb7zBvffem+frDBgwgNTUVKZNm5Yz1qdPH8qWLcuPP/5Y4O9DRERERERKJ4dV3zg2NpaEhAR69eqVM+bv78+ll17K0qVLz1g8LVu2jMceeyzXWO/evXnvvffO+L2ysrLIysrKee71eklOTqZ8+fIYhnFxb0RERERERIot0zRJS0ujUqVK2GxnX5hnWfGUkJAAQGRkZK7xyMhI4uLiznpdXtecer28vPbaa4wcOfIi0oqIiIiISEm2b98+qlSpctZzLCueTvnnzI9pmuecDbrQa5555hmGDRuW8zwlJYVq1aqxb98+wsLC/kVqEREREREpCVJTU6latSqhoaHnPNey4ikqKgrwzSRFR0fnjCcmJp42s/TP6/45y3Sua/z9/fH39z9tPCwsTMWTiIiIiIic1+08lu3zVLNmTaKiopg1a1bOWHZ2NgsWLKBjx45nvK5Dhw65rgGYOXPmWa8RERERERG5WAU683T8+HF27tyZ8zw2NpZ169ZR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SklJueq++fn5ioyM1G233aY1a9aopqam/wMCAAAAuKHZPB6Px+oQkrRw4UJJ0uHDh/vcLycnRzfddJPGjBmj8vJybdy4UW1tbSouLpbdbu/xGLfbLbfb7d1uaGhQTEyM6uvrFRYWdv0+BAAAAIBBpaGhQeHh4Ubd4Lpfedq0aVOvC0Fcebzzzjtdjjl//rzefPNNrV69+qqvv3z5ci1atEhxcXFKTk7WkSNHdPbsWR06dKjXY7KyshQeHu59xMTEfOXPCQAAAODGct2vPNXW1qq2trbPfcaOHavhw4d7t3/1q1/pxRdf1IULFzRs2DCf33PcuHF66KGHtH79+h6f58oTAAAAgJ74cuXpui8Y4XA45HA4jPf3eDzas2ePHnjggWsqThcvXlRlZaVcLlev+9jt9l6n9AEAAACACcsXjHjrrbdUXl7e65S98ePHKzc3V5LU1NSkJ598UqdOndJHH32k/Px8JScny+Fw6Hvf+95AxgYAAABwg7FsqfIrdu/ercTERE2YMKHH58vKylRfXy9JCggI0OnTp/W73/1Oly5dksvl0vz585WTk6PQ0NCBjA0AAADgBuM3q+0NJF/mNQIAAAD4+rJ0tT0AAAAA+DqiPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABigPAEAAACAAcoTAAAAABjo1/KUkZGhxMREBQcHa8SIET3uU1FRoeTkZIWEhMjhcOjRRx9VS0tLn6/rdrv1yCOPyOFwKCQkRPfee6/Onz/fD58AAAAAADr1a3lqaWnR0qVL9ZOf/KTH59vb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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "deg = 10\n", "\n", "# Polynomial regression\n", "w = np.polyfit(X, t, deg)\n", "\n", "# Inference on the training set\n", "y = np.polyval(w, x)\n", "\n", "plt.figure(figsize=(10, 6))\n", "plt.plot(x, x*np.sin(x), label=\"Ground truth\")\n", "plt.plot(x, y, label=\"Polynome\")\n", "plt.scatter(X, t)\n", "plt.ylim((-10., 10.))\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Q:** Plot the mean square error on the training set for all polynomial regressions from 1 to 20. How does the training error evolve when the degree of the polynomial is increased? What is the risk by taking the hypothesis with the smallest training error? " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Degree 1 : training error 12.040390187866535\n", "Degree 2 : training error 10.875215511427697\n", "Degree 3 : training error 9.72130992005902\n", "Degree 4 : training error 1.013275849205464\n", "Degree 5 : training error 0.6554057884023228\n", "Degree 6 : training error 0.10045095302800439\n", "Degree 7 : training error 0.014213994513393955\n", "Degree 8 : training error 0.0034403058897094084\n", "Degree 9 : training error 0.0034237572576303627\n", "Degree 10 : training error 0.0034237252284956216\n", "Degree 11 : training error 0.002368908807055285\n", "Degree 12 : training error 0.0015870603333565426\n", "Degree 13 : training error 0.00104481788854725\n", "Degree 14 : training error 1.49961699852604e-08\n", "Degree 15 : training error 2.512531648830143e-15\n", "Degree 16 : training error 4.444342304484706e-15\n", "Degree 17 : training error 5.355915227708014e-16\n", "Degree 18 : training error 5.833350451392072e-16\n", "Degree 19 : training error 4.220566952479118e-16\n", "Degree 20 : training error 1.1832546556704793e-16\n" ] }, { "data": { "image/png": "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llavXq2XXnpJd911lyTps88+U9++fT1S4L59+zRjxgz9+9//VkFBgbp06aJ58+apX79+Hjk/mpeUuHBJrKUEAACAU+N2UPrzn/+stLQ0zZ07V6+99pokqWvXrnrxxRc1fvx4SdKNN96om2666ZSLO3LkiIYMGaJzzz1X//73vxUfH68dO3YoNjb2lM+N5qny1DtjTI0dGgEAAID6uB2UJOnqq6/W1VdfXevnYWFhJ11QZY899phSU1M1f/5817b27dt75NxonhJjyqd/FpSU6Uh+iVpEhNhcEQAAAHzRSS84W1xcrL1792r37t1VXp700UcfqX///rriiisUHx+vvn376sUXX6zzmKKiIuXk5FR5wX+EBgeqdVT583E0dAAAAMDJcjsobd++XcOGDVNYWJjatWuntLQ0paWlqX379kpLS/NocTt37tSzzz6rzp0767PPPtONN96oW265Ra+++mqtx8yaNUsxMTGuV2pqqkdrgvdLYS0lAAAAnCK3p95NmjRJQUFB+vjjj5WYmNioz4A4nU71799fjzzyiCSpb9+++uGHH/Tss89qwoQJNR5z5513atq0aa73OTk5hCU/kxwbpvW7s+h8BwAAgJPmdlDasGGD1q5dq27dujVGPVUkJiaqR48eVbZ1795d7733Xq3HOBwOWpP7uWTXiBJBCQAAACfH7al3PXr00MGDBxujlhMMGTLkhIVrt23bpnbt2jXJ14dvSmEtJQAAAJwit4PSY489pjvuuEPLli3ToUOHGrVxwm233aZVq1bpkUce0U8//aQ333xTL7zwgqZMmeLRr4PmhbWUAAAAcKrcnnp33nnnSZJGjBhRZXvFmjVlZWWeqUzSgAEDtHDhQt1555164IEHlJaWpjlz5tTZmhw4vpYSzRwAAABwctwOSkuXLm2MOmp10UUX6aKLLmrSrwnflnxs6l1OYalyC0sUFRpsc0UAAADwNW4HpeHDhzdGHYDHRDiCFBserKz8Eu3LKlC3BIISAAAA3NOgoLRx40b17NlTAQEB2rhxY5379u7d2yOFAaciJS5MWfkl2nu4QN0Sou0uBwAAAD6mQUHp9NNPV0ZGhuLj43X66afLsiwZY07Yz9PPKAEnKzk2TN/vy6HzHQAAAE5Kg4LSrl271Lp1a9efAW+XHFve+Y6gBAAAgJPRoKBUed0i1jCCLzje+Y6gBAAA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6Gi7y/ELXPOmxfVuelzzpsc1b1pc76bHNW963nTNjTHKzc1VUlKSAgLqfgqp2Y8oBQQEKCUlxe4y/Ep0dLTt/xH4G6550+J6Nz2uedPjmjctrnfT45o3PW+55vWNJFWgmQMAAAAAVENQAgAAAIBqCErwGIfDoXvvvVcOh8PuUvwG17xpcb2bHte86XHNmxbXu+lxzZuer17zZt/MAQAAAADcxYgSAAAAAFRDUAIAAACAaghKAAAAAFANQQkAAAAAqiEooUFmzZqlAQMGKCoqSvHx8br00ku1devWOo9ZtmyZLMs64fXjjz82UdW+7b777jvh2iUkJNR5zPLly9WvXz+FhoaqQ4cOeu6555qoWt/Xvn37Gu/XKVOm1Lg/97f7VqxYoYsvvlhJSUmyLEsffPBBlc+NMbrvvvuUlJSksLAwnXPOOfrhhx/qPe97772nHj16yOFwqEePHlq4cGEjfQe+p65rXlJSohkzZqhXr16KiIhQUlKSJkyYoP3799d5zgULFtR47xcWFjbyd+P96rvHJ02adMJ1GzRoUL3n5R6vXX3XvKZ71bIsPfHEE7Wek3u8dg35fbA5/SwnKKFBli9frilTpmjVqlVasmSJSktLNXLkSOXl5dV77NatW5Wenu56de7cuQkqbh5OO+20Ktdu06ZNte67a9cu/fa3v9WwYcO0fv163XXXXbrlllv03nvvNWHFvmvNmjVVrvWSJUskSVdccUWdx3F/N1xeXp769OmjuXPn1vj5448/rtmzZ2vu3Llas2aNEhISdP755ys3N7fWc3799de68sordc011+i7777TNddco7Fjx+qbb75prG/Dp9R1zfPz87Vu3TrdfffdWrdund5//31t27ZNl1xySb3njY6OrnLfp6enKzQ0tDG+BZ9S3z0uSRdccEGV6/bJJ5/UeU7u8brVd82r36cvv/yyLMvS//t//6/O83KP16whvw82q5/lBjgJmZmZRpJZvnx5rfssXbrUSDJHjhxpusKakXvvvdf06dOnwfvfcccdplu3blW23XDDDWbQoEEersw/3HrrraZjx47G6XTW+Dn396mRZBYuXOh673Q6TUJCgnn00Udd2woLC01MTIx57rnnaj3P2LFjzQUXXFBl26hRo8y4ceM8XrOvq37Na7J69Wojyfzyyy+17jN//nwTExPj2eKaoZqu98SJE82YMWPcOg/3eMM15B4fM2aM+c1vflPnPtzjDVf998Hm9rOcESWclOzsbElSixYt6t23b9++SkxM1IgRI7R06dLGLq1Z2b59u5KSkpSWlqZx48Zp586dte779ddfa+TIkVW2jRo1St9++61KSkoau9Rmpbi4WK+//rquu+46WZZV577c356xa9cuZWRkVLmHHQ6Hhg8frpUrV9Z6XG33fV3HoHbZ2dmyLEuxsbF17nf06FG1a9dOKSkpuuiii7R+/fqmKbAZWLZsmeLj49WlSxdNnjxZmZmZde7PPe45Bw4c0KJFi3T99dfXuy/3eMNU/32wuf0sJyjBbcYYTZs2TUOHDlXPnj1r3S8xMVEvvPCC3nvvPb3//vvq2rWrRowYoRUrVjRhtb5r4MCBevXVV/XZZ5/pxRdfVEZGhs466ywdOnSoxv0zMjLUpk2bKtvatGmj0tJSHTx4sClKbjY++OADZWVladKkSbXuw/3tWRkZGZJU4z1c8Vltx7l7DGpWWFiomTNnavz48YqOjq51v27dumnBggX66KOP9NZbbyk0NFRDhgzR9u3bm7Ba3zR69Gi98cYb+vLLL/Xkk09qzZo1+s1vfqOioqJaj+Ee95xXXnlFUVFRuuyyy+rcj3u8YWr6fbC5/SwPsvWrwyf94Q9/0MaNG/XVV1/VuV/Xrl3VtWtX1/vBgwdrz549+stf/qKzzz67scv0eaNHj3b9uVevXho8eLA6duyoV155RdOmTavxmOqjH8aYGrejbvPmzdPo0aOVlJRU6z7c342jpnu4vvv3ZI5BVSUlJRo3bpycTqeeeeaZOvcdNGhQlQYEQ4YM0RlnnKGnn35af/vb3xq7VJ925ZVXuv7cs2dP9e/fX+3atdOiRYvq/OWde9wzXn75ZV199dX1PmvEPd4wdf0+2Fx+ljOiBLf88Y9/1EcffaSlS5cqJSXF7eMHDRrEv8icpIiICPXq1avW65eQkHDCv7xkZmYqKChILVu2bIoSm4VffvlFn3/+uX7/+9+7fSz398mr6OhY0z1c/V8Zqx/n7jGoqqSkRGPHjtWuXbu0ZMmSOkeTahIQEKABAwZw75+ExMREtWvXrs5rxz3uGf/5z3+0devWk/rZzj1+otp+H2xuP8sJSmgQY4z+8Ic/6P3339eXX36ptLS0kzrP+vXrlZiY6OHq/ENRUZG2bNlS6/UbPHiwq1NbhcWLF6t///4KDg5uihKbhfnz5ys+Pl4XXnih28dyf5+8tLQ0JSQkVLmHi4uLtXz5cp111lm1HlfbfV/XMTiuIiRt375dn3/++Un9o4oxRhs2bODePwmHDh3Snj176rx23OOeMW/ePPXr1099+vRx+1ju8ePq+32w2f0st6eHBHzNTTfdZGJiYsyyZctMenq665Wfn+/aZ+bMmeaaa65xvf/rX/9qFi5caLZt22a+//57M3PmTCPJvPfee3Z8Cz5n+vTpZtmyZWbnzp1m1apV5qKLLjJRUVHm559/NsaceL137txpwsPDzW233WY2b95s5s2bZ4KDg827775r17fgc8rKykzbtm3NjBkzTviM+/vU5ebmmvXr15v169cbSWb27Nlm/fr1rg5rjz76qImJiTHvv/++2bRpk7nqqqtMYmKiycnJcZ3jmmuuMTNnznS9/+9//2sCAwPNo48+arZs2WIeffRRExQUZFatWtXk3583quual5SUmEsuucSkpKSYDRs2VPnZXlRU5DpH9Wt+3333mU8//dTs2LHDrF+/3lx77bUmKCjIfPPNN3Z8i16lruudm5trpk+fblauXGl27dplli5dagYPHmySk5O5x09BfT9XjDEmOzvbhIeHm2effbbGc3CPN1xDfh9sTj/LCUpoEEk1vubPn+/aZ+LEiWb48OGu94899pjp2LGjCQ0NNXFxcWbo0KFm0aJFTV+8j7ryyitNYmKiCQ4ONklJSeayyy4zP/zwg+vz6tfbGGOWLVtm+vbta0JCQkz79u1r/T8F1Oyzzz4zkszWrVtP+Iz7+9RVtFSv/po4caIxpryt7L333msSEhKMw+EwZ599ttm0aVOVcwwfPty1f4V//vOfpmvXriY4ONh069aNsFpJXdd8165dtf5sX7p0qesc1a/51KlTTdu2bU1ISIhp3bq1GTlypFm5cmXTf3NeqK7rnZ+fb0aOHGlat25tgoODTdu2bc3EiRPN7t27q5yDe9w99f1cMcaY559/3oSFhZmsrKwaz8E93nAN+X2wOf0st4w59rQ3AAAAAEASzygBAAAAwAkISgAAAABQDUEJAAAAAKohKAEAAABANQQlAAAAAKiGoAQAAAAA1RCUAAAAAKAaghIA+KkFCxYoNjbWtq//wQcfqFOnTgoMDNTUqVMbfNx9992n008/vdHqOhXeXFt1kyZN0qWXXtrg/X/++WdZlqUNGzY0Wk0A4E0ISgDgI/bs2aPrr79eSUlJCgkJUbt27XTrrbfq0KFDdpd2Um644QZdfvnl2rNnjx588MEa97EsSx988EHTFuYnnnrqKS1YsMDuMgDAaxGUAMAH7Ny5U/3799e2bdv01ltv6aefftJzzz2nL774QoMHD9bhw4drPba4uLjR6iopKTmp444eParMzEyNGjVKSUlJioqK8nBlqE9MTIytI4oA4O0ISgDgA6ZMmaKQkBAtXrxYw4cPV9u2bTV69Gh9/vnn2rdvn/7v//7PtW/79u310EMPadKkSYqJidHkyZMllU+1a9u2rcLDw/W73/2uxpGof/3rX+rXr59CQ0PVoUMH3X///SotLXV9blmWnnvuOY0ZM0YRERF66KGHaqz3yJEjmjBhguLi4hQeHq7Ro0dr+/btkqRly5a5gtFvfvMbWZalZcuWnXCO9u3bS5J+97vfybIs1/sKr732mtq3b6+YmBiNGzdOubm5rs+MMXr88cfVoUMHhYWFqU+fPnr33XfrvMbt27fXgw8+qPHjxysyMlJJSUl6+umnq+yze/dujRkzRpGRkYqOjtbYsWN14MCBGs+3YsUKBQcHKyMjo8r26dOn6+yzz5Z0fPrjZ599pu7duysyMlIXXHCB0tPTXfs7nU498MADSklJkcPh0Omnn65PP/3U9XnFlLh33nlHw4YNU1hYmAYMGKBt27ZpzZo16t+/v+u8v/76q+u46lPvPv30Uw0dOlSxsbFq2bKlLrroIu3YsaPOawYAzZoBAHi1Q4cOGcuyzCOPPFLj55MnTzZxcXHG6XQaY4xp166diY6ONk888YTZvn272b59u1m1apWxLMvMmjXLbN261Tz11FMmNjbWxMTEuM7z6aefmujoaLNgwQKzY8cOs3jxYtO+fXtz3333ufaRZOLj4828efPMjh07zM8//1xjTZdcconp3r27WbFihdmwYYMZNWqU6dSpkykuLjZFRUVm69atRpJ57733THp6uikqKjrhHJmZmUaSmT9/vklPTzeZmZnGGGPuvfdeExkZaS677DKzadMms2LFCpOQkGDuuusu17F33XWX6datm/n000/Njh07zPz5843D4TDLli2r9Tq3a9fOREVFua7R3/72NxMYGGgWL15sjDHG6XSavn37mqFDh5pvv/3WrFq1ypxxxhlm+PDhrnPce++9pk+fPq73Xbp0MY8//rjrfUlJiYmPjzcvv/yyMcaY+fPnm+DgYHPeeeeZNWvWmLVr15ru3bub8ePHu46ZPXu2iY6ONm+99Zb58ccfzR133GGCg4PNtm3bjDHG7Nq1y0hyfb+bN282gwYNMmeccYY555xzzFdffWXWrVtnOnXqZG688UbXeSdOnGjGjBnjev/uu++a9957z2zbts2sX7/eXHzxxaZXr16mrKysytdZv359rdcQAJoTghIAeLlVq1YZSWbhwoU1fj579mwjyRw4cMAYU/4L/6WXXlpln6uuuspccMEFVbZdeeWVVYLSsGHDTghjr732mklMTHS9l2SmTp1aZ73btm0zksx///tf17aDBw+asLAw88477xhjjDly5IiRZJYuXVrnuWr6vu+9914THh5ucnJyXNtuv/12M3DgQGOMMUePHjWhoaFm5cqVVY67/vrrzVVXXVXr12rXrl2N12j06NHGGGMWL15sAgMDze7du12f//DDD0aSWb16tau2ykHpscceM927d3e9/+CDD0xkZKQ5evSoMaY8KEkyP/30k2ufv//976ZNmzau90lJSebhhx+uUteAAQPMzTffbIw5HmBeeukl1+dvvfWWkWS++OIL17ZZs2aZrl27ut5XD0rVVQTVTZs2Vfk6BCUA/oKpdwDg44wxksqnxVXo379/lX22bNmiwYMHV9lW/f3atWv1wAMPKDIy0vWaPHmy0tPTlZ+fX+u5q9uyZYuCgoI0cOBA17aWLVuqa9eu2rJli3vfXC3at29f5bmmxMREZWZmSpI2b96swsJCnX/++VW+l1dffbXeqWQ1XaOKmrds2aLU1FSlpqa6Pu/Ro4diY2Nr/b4mTZqkn376SatWrZIkvfzyyxo7dqwiIiJc+4SHh6tjx441fi85OTnav3+/hgwZUuW8Q4YMOeFr9u7d2/XnNm3aSJJ69epVZVvFeWuyY8cOjR8/Xh06dFB0dLTS0tIklU83BAB/FGR3AQCAunXq1EmWZWnz5s01tnP+8ccfFRcXp1atWrm2Vf5FXDoepuridDp1//3367LLLjvhs9DQ0FrPXV1tX8sYUyXMnYrg4OAq7y3LktPplCTX/y5atEjJyclV9nM4HG5/rYqaa6u/ru8rPj5eF198sebPn68OHTrok08+OeF5rJq+l+rXsPr5a/qalc9T8Vn1bRXXpiYXX3yxUlNT9eKLLyopKUlOp1M9e/Zs1GYgAODNCEoA4OVatmyp888/X88884xuu+02hYWFuT7LyMjQG2+8oQkTJtQZQnr06OEa1ahQ/f0ZZ5yhrVu3qlOnTqdUb48ePVRaWqpvvvlGZ511liTp0KFD2rZtm7p37+7WuYKDg1VWVub213c4HNq9e7eGDx/u1rE1XaNu3bq5zrt7927t2bPHNaq0efNmZWdn1/l9/f73v9e4ceOUkpKijh07njA6VJfo6GglJSXpq6++cjWAkKSVK1fqzDPPdOdbq9OhQ4e0ZcsWPf/88xo2bJgk6auvvvLY+QHAFxGUAMAHzJ07V2eddZZGjRqlhx56SGlpafrhhx90++23Kzk5WQ8//HCdx99yyy0666yz9Pjjj+vSSy/V4sWLq3ROk6R77rlHF110kVJTU3XFFVcoICBAGzdu1KZNm2rtbleTzp07a8yYMZo8ebKef/55RUVFaebMmUpOTtaYMWPc+r7bt2+vL774QkOGDJHD4VBcXFy9x0RFRelPf/qTbrvtNjmdTg0dOlQ5OTlauXKlIiMjNXHixFqP/e9//+u6RkuWLNE///lPLVq0SJJ03nnnqXfv3rr66qs1Z84clZaW6uabb9bw4cPrnI44atQoxcTE6KGHHtIDDzzg1vcvSbfffrvuvfdedezYUaeffrrmz5+vDRs26I033nD7XLWJi4tTy5Yt9cILLygxMVG7d+/WzJkzPXZ+APBFPKMEAD6gc+fO+vbbb9WxY0ddeeWV6tixo/73f/9X5557rr7++mu1aNGizuMHDRqkl156SU8//bROP/10LV68WH/+85+r7DNq1Ch9/PHHWrJkiQYMGKBBgwZp9uzZateundv1zp8/X/369dNFF12kwYMHyxijTz755IRpZvV58skntWTJEqWmpqpv374NPu7BBx/UPffco1mzZql79+4aNWqU/vWvf7meu6nN9OnTtXbtWvXt21cPPvignnzySY0aNUrS8cVv4+LidPbZZ+u8885Thw4d9Pbbb9d5zoCAAE2aNEllZWWaMGFCg7+HCrfccoumT5+u6dOnq1evXvr000/10UcfqXPnzm6fq64a//GPf2jt2rXq2bOnbrvtNj3xxBMeOz8A+CLLNGTiOgAAzVz79u01depUTZ061ePnnjx5sg4cOKCPPvrI4+cGADQOpt4BANBIsrOztWbNGr3xxhv68MMP7S4HAOAGghIAAI1kzJgxWr16tW644Qadf/75dpcDAHADU+8AAAAAoBqaOQAAAABANQQlAAAAAKiGoAQAAAAA1RCUAAAAAKAaghIAAAAAVENQAgAAAIBqCEoAAAAAUA1BCQAAAACqISgBAAAAQDX/H8sMFMswRs5YAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "training_mse = []\n", "\n", "degrees = range(1, 21)\n", "\n", "for deg in degrees:\n", " \n", " w = np.polyfit(X, t, deg)\n", " y = np.polyval(w, X)\n", " \n", " mse = np.mean((t-y)**2)\n", " \n", " training_mse.append(mse)\n", " \n", " print(\"Degree\", deg, \": training error\", mse)\n", " \n", "plt.figure(figsize=(10, 6))\n", "plt.plot(degrees, training_mse)\n", "plt.xlabel(\"Order of the polynomial\")\n", "plt.ylabel(\"Training mse\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**A:** The more complex the model, the smaller the training error." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simple hold-out cross-validation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You will now apply **simple hold-out cross-validation** to find the optimal degree for the polynomial regression. You will need to separate the data set into a training set $S_{\\text{train}}$ (70% of the data) and a test set $S_{\\text{test}}$ (the remaining 30%). \n", "\n", "The data (X, t) could be easily split into two sets of arrays using slices of indices, as the data is already randomized:\n", "\n", "```python\n", "N_train = int(0.7*N)\n", "X_train, t_train = X[:N_train], t[:N_train]\n", "X_test, t_test = X[N_train:], t[N_train:]\n", "```\n", "\n", "A much more generic approach is to use the library `scikit-learn` (), which provides a method able to split any dataset randomly. \n", "\n", "You can import the method `train_test_split()` from its module:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The doc of the function is available at: .\n", "\n", "**Q:** Use scikit-learn to split the data into the corresponding training and test sets. Train each polynomial from degree 1 to 20 on $S_{\\text{train}}$ and plot the generalization error on $S_{\\text{test}}$. Which degree of the polynomial gives the minimal empirical error? Why? Run the cross-validation split multiple times. Do you always obtain the same optimal degree? " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Degree 1 : empirical error 9.227259124556571\n", "Degree 2 : empirical error 7.121999332462833\n", "Degree 3 : empirical error 7.800338997175413\n", "Degree 4 : empirical error 2.923789248256516\n", "Degree 5 : empirical error 1.9088688058251706\n", "Degree 6 : empirical error 0.8374409236089155\n", "Degree 7 : empirical error 0.1014285554051753\n", "Degree 8 : empirical error 0.3225130019507089\n", "Degree 9 : empirical error 3.634336627210941\n", "Degree 10 : empirical error 182.85222170544995\n", "Degree 11 : empirical error 108.29728063704897\n", "Degree 12 : empirical error 79.12104828992105\n", "Degree 13 : empirical error 75.20358313836738\n", "Degree 14 : empirical error 90.44257331101254\n", "Degree 15 : empirical error 125.77278918485517\n", "Degree 16 : empirical error 187.00252014852725\n", "Degree 17 : empirical error 284.62431607035285\n", "Degree 18 : empirical error 434.6137740816647\n", "Degree 19 : empirical error 659.8631554481153\n", "Degree 20 : empirical error 992.1188629796101\n" ] }, { "data": { "image/png": "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WwAAAADcqGS8Vl/CFgAAAABUjX2p2dqfliNfH5sual7X6nKqHWELAAAAgFuU9Gp1aVJHIQG+FldT/QhbAAAAANxiya7aewuhRNgCAAAA4AZOp9Gy4pkICVsAAAAAUEW2JGfo2Il8hfjb1TmujtXlWIKwBQAAAKDKLd1Z1Kt1UfO68rPXzthRO48aAAAAgFvV5infSxC2AAAAAFSp/EKnViYek0TYAgAAAIAqs25fmnIKHKoX6q/W0WFWl2MZwhYAAACAKrWkeBbC3i3rycfHZnE11iFsAQAAAKhSS4rHa/VrFWVxJdby6LBVWFiof/zjH2revLmCgoLUokULPfHEE3I6na42xhhNmjRJsbGxCgoK0qWXXqpNmzaV2k9eXp7uuece1atXTyEhIRo+fLj2799f3YcDAAAAeL3M3AKtTzouSerTsvaO15I8PGw988wzeu211zR9+nRt2bJFU6dO1bPPPquXX37Z1Wbq1KmaNm2apk+frlWrVikmJkaDBg1SZmamq01CQoJmz56tWbNmafHixcrKytLQoUPlcDisOCwAAADAa61MPCaH06hpVLDi6gZbXY6lfK0u4EyWLVumESNG6Oqrr5YkNWvWTB9//LFWr14tqahX64UXXtAjjzyi6667TpL07rvvKjo6Wh999JHGjRun9PR0vf3223r//fc1cOBASdIHH3yguLg4/fDDDxoyZIg1BwcAAAB4oSXFz9eq7b1akof3bPXr108//vijtm/fLkn69ddftXjxYl111VWSpMTERCUnJ2vw4MGubQICAtS/f38tXbpUkrRmzRoVFBSUahMbG6sOHTq42pQlLy9PGRkZpV4AAAAAzuz38VqELY/u2XrooYeUnp6uNm3ayG63y+Fw6F//+pduvPFGSVJycrIkKTo6utR20dHR2rt3r6uNv7+/IiMjT2tTsn1ZpkyZoscff7wqDwcAAADwaimZudp2uGg4T++WtXtyDMnDe7Y++eQTffDBB/roo4+0du1avfvuu/r3v/+td999t1Q7m630dJLGmNOWnepsbR5++GGlp6e7XklJSed+IAAAAEAtsKx4yvf2seGqG+JvcTXW8+ierb/97W+aOHGibrjhBklSx44dtXfvXk2ZMkVjxoxRTEyMpKLeq4YNG7q2S0lJcfV2xcTEKD8/X2lpaaV6t1JSUtSnT59yPzsgIEABAQHu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XouwBQAAANQyJc/Wuq5rI/n7EgnchTMLAAAA1CIpGblasC1FEs/WcjfCFgAAAFCLfL52vxxOo25NI9WqQZjV5Xg1whYAAABQSxhj9GnxLYT0armfx4etAwcO6E9/+pOioqIUHByszp07a82aNa71xhhNmjRJsbGxCgoK0qWXXqpNmzaV2kdeXp7uuece1atXTyEhIRo+fLj2799f3YcCAAAAWGpF4jHtSc1WiL9dV3dsaHU5Xs+jw1ZaWpr69u0rPz8//e9//9PmzZv13HPPqU6dOq42U6dO1bRp0zR9+nStWrVKMTExGjRokDIzM11tEhISNHv2bM2aNUuLFy9WVlaWhg4dKofDYcFRAQAAANYomRhjeOdYhQT4WlyN97MZY4zVRZRn4sSJWrJkiX755Zcy1xtjFBsbq4SEBD300EOSinqxoqOj9cwzz2jcuHFKT09X/fr19f7772vUqFGSpIMHDyouLk5z587VkCFDKlRLRkaGIiIilJ6ervDw8Ko5QAAAAKCapOcU6KJ//aC8Qqdmj++jLk0irS6pxqpoNvDonq2vv/5a3bt31/XXX68GDRqoS5cuevPNN13rExMTlZycrMGDB7uWBQQEqH///lq6dKkkac2aNSooKCjVJjY2Vh06dHC1KUteXp4yMjJKvQAAAICa6uv1B5RX6FTr6DB1jqtjdTm1gkeHrd27d+vVV19VfHy8vv/+e915552699579d5770mSkpOTJUnR0aUfxBYdHe1al5ycLH9/f0VGRpbbpixTpkxRRESE6xUXxwBCAAAA1FyzTpoYw2azWVxN7eDRYcvpdKpr166aPHmyunTponHjxumOO+7Qq6++WqrdqReLMeasF9DZ2jz88MNKT093vZKSks79QAAAAAALbTyQrk0HM+Rv99G1XRpZXU6t4dFhq2HDhmrXrl2pZW3bttW+ffskSTExMZJ0Wg9VSkqKq7crJiZG+fn5SktLK7dNWQICAhQeHl7qBQAAANREJRNjDG4frcgQf4urqT08Omz17dtX27ZtK7Vs+/btatq0qSSpefPmiomJ0fz5813r8/PztWjRIvXp00eS1K1bN/n5+ZVqc+jQIW3cuNHVBgAAAPBWuQUOzVl/QBLP1qpuHj3f43333ac+ffpo8uTJGjlypFauXKk33nhDb7zxhqSi2wcTEhI0efJkxcfHKz4+XpMn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jR07dig2NlbNmzfXDTfcoN27d5fbdtmyZRo8eHCpZUOGDNHq1atVUFDg7lK9Tn5+vj744APdfvvtstlsZ2zL9V01EhMTlZycXOo6DggIUP/+/bV06dJytyvv2j/TNihfenq6bDab6tSpc8Z2WVlZatq0qRo3bqyhQ4dq3bp11VOgF1i4cKEaNGigCy64QHfccYdSUlLO2J5rvOocPnxY3377rcaOHXvWtlzjFXPq90Fv+l1O2IJljDG6//771a9fP3Xo0KHcdg0bNtQbb7yhL774Ql9++aVat26tAQMG6Oeff67Gamumnj176r333tP333+vN998U8nJyerTp49SU1PLbJ+cnKzo6OhSy6Kjo1VYWKijR49WR8leZc6cOTp+/LhuvfXWcttwfVet5ORkSSrzOi5ZV952ld0GZcvNzdXEiRM1evRohYeHl9uuTZs2mjlzpr7++mt9/PHHCgwMVN++fbVjx45qrLZmuvLKK/Xhhx/qp59+0nPPPadVq1bp8ssvV15eXrnbcI1XnXfffVdhYWG67rrrztiOa7xiyvo+6E2/y30t+2TUenfffbd+++03LV68+IztWrdurdatW7ve9+7dW0lJSfr3v/+tSy65xN1l1mhXXnml6+eOHTuqd+/eatmypd59913df//9ZW5zag+MMabM5Ti7t99+W1deeaViY2PLbcP17R5lXcdnu4bPZRuUVlBQoBtuuEFOp1OvvPLKGdv26tWr1KQOffv2VdeuXfXyyy/rpZdecnepNdqoUaNcP3fo0EHdu3dX06ZN9e23354xAHCNV4133nlHN91001nHXnGNV8yZvg96w+9yerZgiXvuuUdff/21FixYoMaNG1d6+169evEvQ+cgJCREHTt2LPfcxcTEnPavPykpKfL19VVUVFR1lOg19u7dqx9++EF//vOfK70t1/e5K5lts6zr+NR/7Tx1u8pug9IKCgo0cuRIJSYmav78+Wfs1SqLj4+PevTowbV/Dho2bKimTZue8dxxjVeNX375Rdu2bTun3+1c46cr7/ugN/0uJ2yhWhljdPfdd+vLL7/UTz/9pObNm5/TftatW6eGDRtWcXXeLy8vT1u2bCn33PXu3ds1e16JefPmqXv37vLz86uOEr3GjBkz1KBBA1199dWV3pbr+9w1b95cMTExpa7j/Px8LVq0SH369Cl3u/Ku/TNtg9+VBK0dO3bohx9+OKd/nDHGaP369Vz75yA1NVVJSUlnPHdc41Xj7bffVrdu3dSpU6dKb8s1/ruzfR/0qt/l1szLgdrqL3/5i4mIiDALFy40hw4dcr2ys7NdbSZOnGhuvvlm1/vnn3/ezJ4922zfvt1s3LjRTJw40UgyX3zxhRWHUKNMmDDBLFy40OzevdssX77cDB061ISFhZk9e/YYY04/17t37zbBwcHmvvvuM5s3bzZvv/228fPzM59//rlVh1AjORwO06RJE/PQQw+dto7r+/xlZmaadevWmXXr1hlJZtq0aWbdunWume+efvppExERYb788kuzYcMGc+ONN5qGDRuajIwM1z5uvvlmM3HiRNf7JUuWGLvdbp5++mmzZcsW8/TTTxtfX1+zfPnyaj8+T3Smc15QUGCGDx9uGjdubNavX1/qd3teXp5rH6ee80mTJpnvvvvO7Nq1y6xbt87cdtttxtfX16xYscKKQ/QoZzrfmZmZZsKECWbp0qUmMTHRLFiwwPTu3ds0atSIa/w8nO33ijHGpKenm+DgYPPqq6+WuQ+u8YqryPdBb/ldTthCtZJU5mvGjBmuNmPGjDH9+/d3vX/mmWdMy5YtTWBgoImMjDT9+vUz3377bfUXXwONGjXKNGzY0Pj5+ZnY2Fhz3XXXmU2bNrnWn3qujTFm4cKFpkuXLsbf3980a9as3L9UUL7vv//eSDLbtm07bR3X9/krmS7/1NeYMWOMMUVTBj/22GMmJibGBAQEmEsuucRs2LCh1D769+/val/is88+M61btzZ+fn6mTZs2BN6TnOmcJyYmlvu7fcGCBa59nHrOExISTJMmTYy/v7+pX7++GTx4sFm6dGn1H5wHOtP5zs7ONoMHDzb169c3fn5+pkmTJmbMmDFm3759pfbBNV45Z/u9Yowxr7/+ugkKCjLHjx8vcx9c4xVXke+D3vK73GZM8eh3AAAAAECVYcwWAAAAALgBYQsAAAAA3ICwBQAAAABuQNgCAAAAADcgbAEAAACAGxC2AAAAAMANCFsAAAAA4AaELQDAeZk5c6bq1Klj2efPmTNHrVq1kt1uV0JCQoW3mzRpkjp37uy2us6HJ9d2qltvvVXXXHNNhdvv2bNHNptN69evd1tNAOApCFsAUMskJSVp7Nixio2Nlb+/v5o2baq//vWvSk1Ntbq0czJu3Dj98Y9/VFJSkp588sky29hsNs2ZM6d6C6slXnzxRc2cOdPqMgDAIxG2AKAW2b17t7p3767t27fr448/1s6dO/Xaa6/pxx9/VO/evXXs2LFyt83Pz3dbXQUFBee0XVZWllJSUjRkyBDFxsYqLCysiivD2URERFjaswkAnoywBQC1yF133SV/f3/NmzdP/fv3V5MmTXTllVfqhx9+0IEDB/TII4+42jZr1kxPPfWUbr31VkVEROiOO+6QVHTbYJMmTRQcHKxrr722zB6xb775Rt26dVNgYKBatGihxx9/XIWFha71NptNr732mkaMGKGQkBA99dRTZdablpamW265RZGRkQoODtaVV16pHTt2SJIWLlzoCleXX365bDabFi5ceNo+mjVrJkm69tprZbPZXO9LvP/++2rWrJkiIiJ0ww03KDMz07XOGKOpU6eqRYsWCgoKUqdOnfT555+f8Rw3a9ZMTz75pEaPHq3Q0FDFxsbq5ZdfLtVm3759GjFihEJDQxUeHq6RI0fq8OHDZe7v559/lp+fn5KTk0stnzBhgi655BJJv9/K+f3336tt27YKDQ3VFVdcoUOHDrnaO51OPfHEE2rcuLECAgLUuXNnfffdd671Jbf3ffrpp7r44osVFBSkHj16aPv27Vq1apW6d+/u2u+RI0dc2516G+F3332nfv36qU6dOoqKitLQoUO1a9euM54zAPBaBgBQK6SmphqbzWYmT55c5vo77rjDREZGGqfTaYwxpmnTpiY8PNw8++yzZseOHWbHjh1m+fLlxmazmSlTppht27aZF1980dSpU8dERES49vPdd9+Z8PBwM3PmTLNr1y4zb94806xZMzNp0iRXG0mmQYMG5u233za7du0ye/bsKbOm4cOHm7Zt25qff/7ZrF+/3gwZMsS0atXK5Ofnm7y8PLNt2zYjyXzxxRfm0KFDJi8v77R9pKSkGElmxowZ5tChQyYlJcUYY8xjjz1mQkNDzXXXXWc2bNhgfv75ZxMTE2P+/ve/u7b9+9//btq0aWO+++47s2vXLjNjxgwTEBBgFi5cWO55btq0qQkLC3Odo5deesnY7XYzb948Y4wxTqfTdOnSxfTr18+sXr3aLF++3HTt2tX079/ftY/HHnvMdOrUyfX+ggsuMFOnTnW9LygoMA0aNDDvvPOOMcaYGTNmGD8/PzNw4ECzatUqs2bNGtO2bVszevRo1zbTpk0z4eHh5uOPPzZbt241Dz74oPHz8zPbt283xhiTmJhoJLmOd/PmzaZXr16ma9eu5tJLLzWLFy82a9euNa1atTJ33nmna79jxowxI0aMcL3//PPPzRdffGG2b99u1q1bZ4YNG2Y6duxoHA5Hqc9Zt25duecQALwFYQsAaonly5cbSWb27Nllrp82bZqRZA4fPmyMKQoN11xzTak2N954o7niiitKLRs1alSpsHXxxRefFujef/9907BhQ9d7SSYhIeGM9W7fvt1IMkuWLHEtO3r0qAkKCjKffvqpMcaYtLQ0I8ksWLDgjPsq67gfe+wxExwcbDIyMlzL/va3v5mePXsaY4zJysoygYGBZunSpaW2Gzt2rLnxxhvL/aymTZuWeY6uvPJKY4wx8+bNM3a73ezbt8+1ftOmTUaSWblypau2k8PWM888Y9q2bet6P2fOHBMaGmqysrKMMUVhS5LZuXOnq81//vMfEx0d7XofGxtr/vWvf5Wqq0ePHmb8+PHGmN9D0FtvveVa//HHHxtJ5scff3QtmzJlimndurXr/alh61QlYXfDhg2lPoewBaA24DZCAICkolvmpKJb/Ep07969VJstW7aod+/epZad+n7NmjV64oknFBoa6nrdcccdOnTokLKzs8vd96m2bNkiX19f9ezZ07UsKipKrVu31pYtWyp3cOVo1qxZqXFeDRs2VEpKiiRp8+bNys3N1aBBg0ody3vvvXfW2+LKOkclNW/ZskVxcXGKi4tzrW/Xrp3q1KlT7nHdeuut2rlzp5YvXy5JeueddzRy5EiFhIS42gQHB6tly5ZlHktGRoYOHjyovn37ltpv3759T/vMCy+80PVzdHS0JKljx46llpXstyy7du3S6NGj1aJFC4WHh6t58+aSim6dBIDaxtfqAgAA1aNVq1ay2WzavHlzmVN1b926VZGRkapXr55r2clf5qXfA9mZOJ1OPf7447ruuutOWxcYGFjuvk9V3mcZY0oFwvPh5+dX6r3NZpPT6ZQk13+//fZbNWrUqFS7gICASn9WSc3l1X+m42rQoIGGDRumGTNmqEWLFpo7d+5p49PKOpZTz+Gp+y/rM0/eT8m6U5eVnJuyDBs2THFxcXrzzTcVGxsrp9OpDh06uHWCFQDwVIQtAKgloqKiNGjQIL3yyiu67777FBQU5FqXnJysDz/8ULfccssZg0y7du1cvSslTn3ftWtXbdu2Ta1atTqvetu1a6fCwkKtWLFCffr0kSSlpqZq+/btatu2baX25efnJ4fDUenPDwgI0L59+9S/f/9KbVvWOWrTpo1rv/v27VNSUpKrd2vz5s1KT08/43H9+c9/1g033KDGjRurZcuWp/VSnUl4eLhiY2O1ePFi16QakrR06VJddNFFlTm0M0pNTdWWLVv0+uuv6+KLL5YkLV68uMr2DwA1DWELAGqR6dOnq0+fPhoyZIieeuopNW/eXJs2bdLf/vY3NWrUSP/617/OuP29996rPn36aOrUqbrmmms0b968UjPaSdI///lPDR06VHFxcbr++uvl4+Oj3377TRs2bCh31sGyxMfHa8SIEbrjjjv0+uuvKywsTBMnTlSjRo00YsSISh13s2bN9OOPP6pv374KCAhQZGTkWbcJCwvTAw88oPvuu09Op1P9+vVTRkaGli5dqtDQUI0ZM6bcbZcsWeI6R/Pnz9dnn32mb7/9VpI0cOBAXXjhhbrpppv0wgsvqLCwUOPHj1f//v3PeGvlkCFDFBERoaeeekpPPPFEpY5fkv72t7/pscceU8uWLdW5c2fNmDFD69ev14cffljpfZUnMjJSUVFReuONN9SwYUPt27dPEydOrLL9A0BNw5gtAKhF4uPjtXr1arVs2VKjRo1Sy5Yt9X//93+67LLLtGzZMtWtW/eM2/fq1UtvvfWWXn75ZXXu3Fnz5s3TP/7xj1JthgwZov/+97+aP3++evTooV69emnatGlq2rRppeudMWOGunXrpqFDh6p3794yxmju3Lmn3TJ3Ns8995zmz5+vuLg4denSpcLbPfnkk/rnP/+pKVOmqG3bthoyZIi++eYb1zik8kyYMEFr1qxRly5d9OSTT+q5557TkCFDJP3+gOXIyEhdcsklGjhwoFq0aKFPPvnkjPv08fHRrbfeKofDoVtuuaXCx1Di3nvv1YQJEzRhwgR17NhR3333nb7++mvFx8dXel9nqnHWrFlas2aNOnTooPvuu0/PPvtsle0fAGoam6nIDfgAAKBCmjVrpoSEBCUkJFT5vu+44w4dPnxYX3/9dZXvGwBQ9biNEAAAD5eenq5Vq1bpww8/1FdffWV1OQCACiJsAQDg4UaMGKGVK1dq3LhxGjRokNXlAAAqiNsIAQAAAMANmCADAAAAANyAsAUAAAAAbkDYAgAAAAA3IGwBAAAAgBsQtgAAAADADQhbAAAAAOAGhC0AAAAAcAPCFgAAAAC4AWELAAAAANzg/wFKZTNcR1YC4gAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "X_train, X_test, t_train, t_test = train_test_split(X, t, test_size=0.3)\n", "\n", "degrees = range(1, 21)\n", "\n", "test_mse = []\n", "\n", "for deg in degrees:\n", " # Train on the training set\n", " w = np.polyfit(X_train, t_train, deg)\n", " \n", " # Test on the test set\n", " y_test = np.polyval(w, X_test)\n", " mse = np.mean((t_test-y_test)**2)\n", " test_mse.append(mse)\n", " \n", " print(\"Degree\", deg, \": empirical error\", mse)\n", " \n", "plt.figure(figsize=(10, 6))\n", "plt.plot(degrees, test_mse)\n", "plt.xlabel(\"Order of the polynomial\")\n", "plt.ylabel(\"Test mse\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**A:** Depending on the split, the optimal degree is around 6 or 7. This variability is because some samples of the test set might better fit with a given polynomial, depending on how the split was made. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## k-fold cross-validation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we only have 16 samples to learn from, it is quite annoying to \"lose\" 5 of them for the test set. Here we can afford to use **k-fold cross-validation**, where the cross-validation split is performed $k$ times:\n", "\n", "* The dataset is split into $k$ subsets of equal size (if possible).\n", "* Each subset is iteratively used as the test set, while the $k-1$ other ones are used as a training set.\n", "* The final empirical error is the average of the mse on all subsets.\n", "\n", "It would be possible to make the splits using indices too, but it is much easier to use `scikit-learn` once again. You can import the `KFold` class like this:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import KFold\n", "\n", "k = 4\n", "kf = KFold(n_splits=k, shuffle=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`n_splits` corresponds to $k$: how many times the dataset is split. We can take $k=4$ for example (4 subsets of 4 samples).\n", "\n", "**Q:** Check the doc of `KFold` (). Print the indices of the examples of the training and test sets for each iteration of the algorithm. Change the value of $k$ to understand how it works." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train: [ 1 2 3 4 5 6 7 8 9 10 13 15]\n", "Test: [ 0 11 12 14]\n", "-------\n", "Train: [ 0 2 4 5 7 8 9 10 11 12 14 15]\n", "Test: [ 1 3 6 13]\n", "-------\n", "Train: [ 0 1 2 3 5 6 7 8 11 12 13 14]\n", "Test: [ 4 9 10 15]\n", "-------\n", "Train: [ 0 1 3 4 6 9 10 11 12 13 14 15]\n", "Test: [2 5 7 8]\n", "-------\n" ] } ], "source": [ "for train_index, test_index in kf.split(X, t):\n", " print(\"Train:\", train_index)\n", " print(\"Test:\", test_index)\n", " print('-------')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Q:** Apply k-fold cross-validation on the polynomial regression problem. Which polynomial degree is the best? Run the split multiple times: does the best polynomial degree change?" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1 14.373254672725508\n", "2 32.64780689331275\n", "3 57.437214035571806\n", "4 2.0628672303945312\n", "5 48.64866507586964\n", "6 12.48275298341056\n", "7 54.942484536366294\n", "8 3.45332197162841\n", "9 229.5520298425848\n", "10 1441.4049703344376\n", "11 104.14494006648448\n", "12 15.321973716914645\n", "13 63.57807742564708\n", "14 396.8565006894557\n", "15 1211.4900029370529\n", "16 2711.1739306435934\n", "17 5003.070625815316\n", "18 7908.869099904825\n", "19 10708.239704364289\n", "20 11952.837698754893\n" ] }, { "data": { "image/png": "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Unh4uCRddBYrKSnJedYsPDxcOTk5Sk5OvuyYEydOXPTzT548edHZt/M9//zzstlszq/4+Pirf7IAAABAEX7ZkajUrDzVruqvTg1DzI4DN3O5kN19991KTk5WaGioWrZsqXbt2hX6cqeMjAzntPoFPD09nROJNGjQQOHh4VqyZInz/pycHK1YsUJdunSRJLVv317e3t6FxiQkJGj79u3OMZ07d5bNZtP69eudY9atWyebzeYcUxRfX18FBwcX+gIAAADc6Ztzlyve2b6OPFh7rMJx+TNkI0eOVExMjO6//36FhYVd8dLAazFw4ED985//VN26dXX99ddr8+bNmjZtmh5++GFJ+ZcZjh8/XlOmTFGTJk3UpEkTTZkyRQEBARoxYoSk/EssR40apYkTJyokJETVq1fXpEmT1LJlS/Xu3VuSFBUVpf79+2v06NGaNWuWJGnMmDEaMGBAsWdYBAAAANwtKSVLv+8/JUm6s11tk9OgJLhcyH766Sf98ssv6tatW0nkKeTdd9/V3/72Nz366KNKSkpSRESExo4dq7///e/OMc8884wyMzP16KOPKjk5WR07dtTixYsVFBTkHDN9+nR5eXlp2LBhyszM1C233KI5c+bI09PTOebzzz/XuHHjnLMxDho0SDNmzCjx5wgAAABcynexx+UwpPb1qqleCGuPVUQur0PWrFkz/fe//1WrVq1KKlO5xTpkAAAAcKdb/+9/2pWQoleGtND9neqZHQcuKLF1yN566y0988wzOnTo0LXkAwAAAHAZuxNTtCshRT6eHhrQirXHKiqXL1m8//77lZGRoUaNGikgIEDe3oXXQThz5ozbwgEAAACV1YJNxyRJvZrVVNUAH5PToKS4XMjefvvtEogBAAAAoIDdYejb2PxCdkdb1h6ryFwuZA8++GBJ5AAAAABwzpoDp3UiJVtWf2/1albT7DgoQS5/hgwAAABAyZq/OX/tsQGtasnXy/MKo1GeUcgAAACAMiQjJ0+LtidKkoay9liFRyEDAAAAypDFO04oI8eueiEBale3mtlxUMIoZAAAAEAZMn9z/mQeQ9rUlsViMTkNShqFDAAAACgjklKytGrfSUnSHW25XLEyKNYsi0OHDi32DufPn3/VYQAAAIDK7Pstx+UwpHZ1q6p+jUCz46AUFOsMmdVqdX4FBwfr119/1caNG533x8TE6Ndf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4XAUeT+v8WsjyViwYIHztsPhMMLDw41XX33VuS0rK8uwWq3G+++/f8n9DBs2zOjfv3+hbf369TPuuecet2cuzy483kVZv369Ick4fPjwJcfMnj3bsFqt7g1XQRV1zB988EFj8ODBLu2H13jxFed1PnjwYOPmm2++7Bhe58V34XvCivS7nDNkKNNsNpskqXr16lcc27ZtW9WqVUu33HKLli1bVtLRKpR9+/YpIiJCDRo00D333KODBw9ecuyaNWvUt2/fQtv69eunjRs3Kjc3t6SjVjg5OTn67LPP9PDDD8tisVx2LK9x94iLi1NiYmKh17Gvr6969Oih1atXX/Jxl3rtX+4xKJrNZpPFYlHVqlUvOy4tLU316tVTnTp1NGDAAG3evLl0AlYQy5cvV2hoqK677jqNHj1aSUlJlx3Pa9x9Tpw4oZ9++kmjRo264lhe58Vz4XvCivS7nEKGMsswDE2YMEHdunVTixYtLjmuVq1a+uCDDzRv3jzNnz9fTZs21S233KKVK1eWYtryq2PHjvrPf/6jX375RR9++KESExPVpUsXnT59usjxiYmJCgsLK7QtLCxMeXl5OnXqVGlErlC+/fZbnT17ViNHjrzkGF7j7pWYmChJRb6OC+671ONcfQwulpWVpeeee04jRoxQcHDwJcc1a9ZMc+bM0ffff68vv/xSfn5+6tq1q/bt21eKacuvW2+9VZ9//rl+++03vfXWW9qwYYNuvvlmZWdnX/IxvMbd55NPPlFQUJCGDh162XG8zounqPeEFel3uZdpPxm4gscff1xbt27VqlWrLjuuadOmatq0qfN2586dFR8frzfffFPdu3cv6Zjl3q233ur8vmXLlurcubMaNWqkTz75RBMmTCjyMReeyTEMo8jtuLKPPvpIt956qyIiIi45htd4ySjqdXyl1/DVPAZ/yM3N1T333COHw6GZM2dedmynTp0KTULRtWtXtWvXTu+++67eeeedko5a7g0fPtz5fYsWLdShQwfVq1dPP/3002VLAq9x9/j444913333XfGzYLzOi+dy7wkrwu9yzpChTHriiSf0/fffa9myZapTp47Lj+/UqRP/unSVAgMD1bJly0sev/Dw8Iv+FSkpKUleXl4KCQkpjYgVxuHDh7V06VI98sgjLj+W1/jVK5hFtKjX8YX/anrh41x9DP6Qm5urYcOGKS4u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gAC98cYbeuaZZxQYGKiWLVte9mzXq6++KofDoejoaKWmpqpDhw765ZdfVK1aNZeOz8svv6yxY8eqUaNGys7OvuRlgxe6msyS9MADDygzM1M33nijPD099cQTT2jMmDHO+2fPnu1cJy4nJ0fdu3fXwoULL7qE8kKjRo3S6tWr9fDDDxcr//mGDBmi//u//9Mbb7yhcePGqUGDBpo9e7Z69uzp8r7O169fP/344496+eWX9frrr8vb21vNmjXTI488ck37BYCyzmIU9/8mAABcgz59+ig8PPyiNatQtJ49e6pNmzZFfsbrWv3zn//U3LlztW3bNrfvGwDgGs6QAQDcLiMjQ++//7769esnT09Pffnll1q6dKmWLFlidrRKLS0tTbt27dK7776rf/zjH2bHAQBIYtp7AIDbFVzWeNNNN6l9+/b64YcfNG/ePPXu3dvsaJXa448/rm7duqlHjx5XdbkiAMD9uGQRAAAAAEzCGTIAAAAAMAmFDAAAAABMQiEDAAAAAJNQyAAAAADAJBQyAAAAADAJhQwAAAAATEIhAwAAAACTUMgAAAAAwCQUMgAAAAAwyf8DI0i20FTyRVAAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "k = 4\n", "kf = KFold(n_splits=k, shuffle=True)\n", "\n", "degrees = range(1, 21)\n", "\n", "test_mse = []\n", "\n", "for train_index, test_index in kf.split(X, t):\n", " \n", " split_mse = []\n", " \n", " for deg in degrees:\n", " \n", " w = np.polyfit(X[train_index], t[train_index], deg)\n", " y = np.polyval(w, X[test_index])\n", " \n", " mse = np.mean((t[test_index] - y)**2)\n", " split_mse.append(mse)\n", " \n", " test_mse.append(split_mse)\n", " \n", "test_mse = np.mean(test_mse, axis=0)\n", "\n", "for deg, mse in zip(degrees, test_mse):\n", " print(deg, mse)\n", "\n", "plt.figure(figsize=(10, 6))\n", "plt.plot(degrees, test_mse)\n", "plt.xlabel(\"Degree of the polynome\")\n", "plt.ylabel(\"k-fold cross-validated mse\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**A:** A polynomial of order between 6 and 8 still seems the best, but it varies from run to run (as well as on the data, you may observe something different)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Q:** Change $k$ to $N$. How stable are the results between two runs?" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1 15.098319479975594\n", "2 17.552207001911373\n", "3 18.676985531565293\n", "4 1.9252033758472606\n", "5 2.5834884434006\n", "6 0.5085078629713802\n", "7 0.18595843931801115\n", "8 0.026693779886147913\n", "9 0.15529428559686834\n", "10 2.9763791625175444\n", "11 4.2610890696345605\n", "12 224.0411629243045\n", "13 376.5448377988029\n", "14 0.02667071664931066\n", "15 34.16017293924377\n", "16 195.02547279346703\n", "17 607.7556163128706\n", "18 1471.281491746452\n", "19 3078.178648457924\n", "20 5823.739259283549\n" ] }, { "data": { "image/png": "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3ry52PVevny5JOnRRx+95nF8vsvu/Pnzuv322zVr1qxS90+bNk3Tp0/XrFmztHnzZoWHh6tXr17KyMi46jnXr1+vwYMHKzY2Vj/99JNiY2M1aNAgbdy40V1vo1K51jW/cOGCtm3bpj/+8Y/atm2bFi9erH379mnAgAHXPW9wcHCxz31SUpL8/Pzc8RYqlet9xiWpb9++xa7bd999d81z8hm/tutd8ys/px9//LEsFoseeeSRa56Xz3jpyvJ9sMr8LDcAE6WmphqSjNWrV1+1zcqVKw1JRlpaWvkVVkW88sorxu23317m9hMnTjRatmxZbNvIkSONTp06ubiy6uO5554zmjZtatjt9lL38/m+OZKMJUuWOJ7b7XYjPDzceP311x3bsrOzDavVanzwwQdXPc+gQYOMvn37FtvWp08f47HHHnN5zZXdlde8NJs2bTIkGUeOHLlqm7lz5xpWq9W1xVVBpV3voUOHGg899JBT5+EzXnZl+Yw/9NBDxn333XfNNnzGy+7K74NV6Wc5PVswlc1mkyTVrl37um3btm2revXqqUePHlq5cqW7S6sy9u/fr4iICEVGRuqxxx7ToUOHrtp2/fr16t27d7Ftffr00ZYtW5SXl+fuUquc3Nxcffrpp3r66adlsViu2ZbPt2skJiYqOTm52OfY19dXXbt21bp166563NU++9c6Bldns9lksVhUs2bNa7bLzMxUo0aN1KBBA/Xv31/bt28vnwKrgFWrVik0NFS33nqrhg8frtTU1Gu25zPuOikpKfr22281bNiw67blM142V34frEo/ywlbMI1hGBo3bpzuvvtutW7d+qrt6tWrpzlz5mjRokVavHixWrRooR49emjNmjXlWG3l1LFjR/3jH//Q0qVL9eGHHyo5OVmdO3fWmTNnSm2fnJyssLCwYtvCwsKUn5+v06dPl0fJVcq///1vnTt3Tk8++eRV2/D5dq3k5GRJKvVzXLTvasc5ewxKl52drZdeeklDhgxRcHDwVdu1bNlS8+bN01dffaXPP/9cfn5+6tKli/bv31+O1VZO/fr104IFC/TDDz/orbfe0ubNm3XfffcpJyfnqsfwGXedTz75REFBQXr44Yev2Y7PeNmU9n2wKv0s9zLtlVHtjRo1Sj///LPWrl17zXYtWrRQixYtHM9jYmJ07Ngx/fWvf9W9997r7jIrtX79+jn+3qZNG8XExKhp06b65JNPNG7cuFKPubIHxjCMUrfj+j766CP169dPERERV23D59s9SvscX+8zfCPHoLi8vDw99thjstvteu+9967ZtlOnTsUWdejSpYvatWund955R2+//ba7S63UBg8e7Ph769at1aFDBzVq1EjffvvtNQMAn3HX+Pjjj/X4449fd+4Vn/Gyudb3warws5yeLZhi9OjR+uqrr7Ry5Uo1aNDA6eM7derEb4ZuQGBgoNq0aXPVaxceHl7itz+pqany8vJSSEhIeZRYZRw5ckQrVqzQr3/9a6eP5fN944pW2yztc3zlbzuvPM7ZY1BcXl6eBg0apMTERC1fvvyavVql8fDw0J133sln/wbUq1dPjRo1uua14zPuGv/73/+0d+/eG/rZzme8pKt9H6xKP8sJWyhXhmFo1KhRWrx4sX744QdFRkbe0Hm2b9+uevXqubi6qi8nJ0cJCQlXvXYxMTGO1fOKLFu2TB06dJC3t3d5lFhlzJ07V6GhoXrggQecPpbP942LjIxUeHh4sc9xbm6uVq9erc6dO1/1uKt99q91DC4pClr79+/XihUrbuiXM4ZhKD4+ns/+DThz5oyOHTt2zWvHZ9w1PvroI7Vv3163336708fyGb/ket8Hq9TPcnPW5UB19dvf/tawWq3GqlWrjKSkJMfjwoULjjYvvfSSERsb63g+Y8YMY8mSJca+ffuMnTt3Gi+99JIhyVi0aJEZb6FSGT9+vLFq1Srj0KFDxoYNG4z+/fsbQUFBxuHDhw3DKHmtDx06ZAQEBBjPP/+8sXv3buOjjz4yvL29jS+//NKst1ApFRQUGLfccovx4osvltjH5/vmZWRkGNu3bze2b99uSDKmT59ubN++3bHy3euvv25YrVZj8eLFxo4dO4xf/vKXRr169Yz09HTHOWJjY42XXnrJ8fzHH380PD09jddff91ISEgwXn/9dcPLy8vYsGFDub+/iuha1zwvL88YMGCA0aBBAyM+Pr7Yz/acnBzHOa685pMmTTLi4uKMgwcPGtu3bzeeeuopw8vLy9i4caMZb7FCudb1zsjIMMaPH2+sW7fOSExMNFauXGnExMQY9evX5zN+E673c8UwDMNmsxkBAQHG+++/X+o5+IyXXVm+D1aVn+WELZQrSaU+5s6d62gzdOhQo2vXro7nb7zxhtG0aVPDz8/P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kpo3b66HHnpIw4cP1+zZsxUUFKSXXnpJ9evX10MPPXTVc0ZFRalTp0568cUX9fTTT8vf39+pa/DCCy9o0KBBateunXr06KGvv/5aixcv1ooVK5w6z5X+9Kc/qX///mrYsKEeffRReXh46Oeff9aOHTs0efLkmzo3AFRkhC0AqCbi4uJUr149eXl5qVatWrr99tv19ttva+jQofLwKJzCa7FY9N133+n3v/+9nn76aZ06dUrh4eG69957HXNzHn/8cR06dEgTJkxQdna2Bg0apCeffFKbNm265usHBARozZo1evHFF/Xwww8rIyND9evXV48ePRw9Xb/+9a8VEBCgN998UxMnTlRgYKDatGlzzV6q119/XXa7XbGxscrIyFCHDh20dOlS1apVy6nr89prr2nkyJFq2rSpcnJyrjqU70o3UrMkPfHEE8rKytJdd90lT09PjR49WiNGjHDsnzt3ruM+aLm5ubr33nv13XfflRjWeKVhw4Zp3bp1evrpp8tU/+UGDhyov/3tb3rzzTc1ZswYRUZGau7cuerWrZvT57pcnz599M033+i1117TtGnT5O3trZYtW+rXv/71TZ0XACo6i1HW/5sAAHAVvXr1Unh4eIl7MqF03bp10x133FHqnKqb9Ze//EULFy7Ujh07XH5uAIBz6NkCADjlwoUL+uCDD9SnTx95enrq888/14oVK7R8+XKzS6vWMjMzlZCQoHfeeUd//vOfzS4HACCJpd8BAE4pGmp4zz33qH379vr666+1aNEi9ezZ0+zSqrVRo0bp7rvvVteuXW9oCCEAwPUYRggAAAAAbkDPFgAAAAC4AWELAAAAANyAsAUAAAAAbkDYAgAAAAA3IGwBAAAAgBsQtgAAAADADQhbAAAAAOAGhC0AAAAAcAPCFgAAAAC4wf8DJLDkVU/hQigAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "k = N\n", "kf = KFold(n_splits=k, shuffle=True)\n", "\n", "degrees = range(1, 21)\n", "\n", "test_mse = []\n", "\n", "for train_index, test_index in kf.split(X, t):\n", " \n", " split_mse = []\n", " \n", " for deg in degrees:\n", " \n", " w = np.polyfit(X[train_index], t[train_index], deg)\n", " y = np.polyval(w, X[test_index])\n", " \n", " mse = np.mean((t[test_index] - y)**2)\n", " split_mse.append(mse)\n", " \n", " test_mse.append(split_mse)\n", " \n", "test_mse = np.mean(test_mse, axis=0)\n", "\n", "for deg, mse in zip(degrees, test_mse):\n", " print(deg, mse)\n", "\n", "plt.figure(figsize=(10, 6))\n", "plt.plot(degrees, test_mse)\n", "plt.xlabel(\"Degree of the polynome\")\n", "plt.ylabel(\"k-fold cross-validated mse\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**A:** With $k=N$ (one sample in the test set every time), the results are more stable. It is called **leave-one-out cross-validation** (LOOCV). It is the best cross-validation you can make in terms of bias (you use almost all your data to learn), but it is very expensive (you have to retrain your algorithm for each sample) and the empirical error has a high variance." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Q:** Regenerate the data with a noise equal to 0.0 and re-run all experiments. What does it change?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**A:** Without noise, higher-order polynomials are a better fit. This is because the $x \\, \\sin x$ can be \"naturally\" approximated by polynomials (Taylor series)." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.9.13 ('base')", "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.13" }, "vscode": { "interpreter": { "hash": "3d24234067c217f49dc985cbc60012ce72928059d528f330ba9cb23ce737906d" } } }, "nbformat": 4, "nbformat_minor": 4 }