{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# MATH60629A\n", "# Week \\#2 - Machine Learning Fundamentals - Exercises\n", "\n", "This tutorial will focus on three important aspects of machine learning (ML), namely\n", "1. the capacity of models, \n", "2. the notions of bias and variance of an estimator, as well as\n", "3. a brief introduction to validation. \n", "\n", "The goal is to develop basic intuition of these concepts through a series of short exercises." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from matplotlib.pyplot import cm\n", "\n", "from sklearn.model_selection import train_test_split\n", "\n", "import warnings\n", "warnings.filterwarnings(\"ignore\")\n", "\n", "# For Colab.\n", "!rm -rf 80-629\n", "!git clone https://github.com/lcharlin/80-629/\n", "import sys\n", "sys.path += ['80-629/week2-Fundamentals/']\n", "\n", "# We import several home functions in order to create graphics\n", "from utilities import scatter_plot, plot_polynomial_curves, \\\n", " plot_optimal_curve, train_poly_and_see, MSE\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.1 Model capacity\n", "\n", "Informally, the capacity of a model can be defined as the number of functions a model can fit. Lower-capacity models can perfectly fit (i.e. obtain 0 train error) fewer functions than higher-capacity models. \n", "\n", "Higher-capacity models are generally more prone to **overfitting**. Overfitting occurs when the gap between the test and training error is large, or in other words, when models memorize properties of the training set that are not useful for (i.e. do not generalize to) performing predictions on a test set.\n", "\n", "Intuitively, when two models fit the training data equally well, usually the model with less capacity will generalize better, i.e. have lower test error. Thus, as rule of thumb we prefer simpler decision rules over more complex ones. (Extra: this is a good illustration of https://en.wikipedia.org/wiki/Occam%27s_razor)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.1.1 Data generation\n", "\n", "Let's first simulate some data! In this section, every observation $y$ is generated according to the following model:\n", "\n", "$$ y = x \\cos(x / \\gamma) + \\epsilon$$\n", "\n", "where $y \\in \\mathbb{R}$ is the output, $x \\in \\mathbb{R}$ are the features, $\\gamma$ is the period of the cosine function and $\\epsilon$ is the random noise such as $\\epsilon \\sim N(0, \\sigma^2)$ where $\\sigma$ is defined by YOU." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def data_simulation(sample_size, scale, period, variance):\n", " \n", " x = np.random.uniform(-scale, scale, sample_size)\n", " x.sort()\n", " noise = np.random.normal(0, variance, sample_size)\n", " y = x * np.cos(x / period) + noise\n", " \n", " return x, y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Whenever it is possible, it is always a good idea to visualize the data (in order to get some intuition about them). \n", "\n", "**Question**: Vary the parameters (*variance*, *scale* and *period*) to see how they affect the plot." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sample_size = 300\n", "variance = 10 # Variance of the Gaussian noise\n", "scale = 100 # Range\n", "period = 6 # Simulation are based on cosine function (see data_simulation function)\n", "\n", "x_train, y_train = data_simulation(int(.7*sample_size), scale, period, variance)\n", "x_test, y_test = data_simulation(int(.3*sample_size), scale, period, variance)\n", "\n", "# The scatter_plot function is in the utilities script\n", "plt = scatter_plot(x_train, x_test, y_train, y_test) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.1.2 Getting - visual - intuition about models' capacity\n", "\n", "As seen in class (Slide 38 for example), the higher is the capacity of the model, the better it will fit the training data set (again be cautious, fitting the training data well does not necessarily lead to good generalization). \n", "\n", "Here, we use [polynomial regression](https://en.wikipedia.org/wiki/Polynomial_regression) to fit the training set (don't worry, the purpose of the tutorial is not to understand polynomial regression). Note, however, that the greater is the polynomial degree, the higher is the model capacity. \n", "\n", "**Questions**: \n", "1. Observe how the fitted curve behave with respect to their polynomial degree. \n", "2. Would you prefer to fit the data points with polynomial regression of degree 20 or 50?\n", "3. Which of these curves should have the best generalization error?" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Polynomial degree: 0 | MSE train: 1652.9416 | MSE test: 2225.0309\n", "Polynomial degree: 1 | MSE train: 1636.1059 | MSE test: 2140.4347\n", "Polynomial degree: 3 | MSE train: 1544.4929 | MSE test: 1853.7897\n", "Polynomial degree: 5 | MSE train: 1257.0468 | MSE test: 1288.1735\n", "Polynomial degree: 10 | MSE train: 985.1257 | MSE test: 876.2953\n", "Polynomial degree: 20 | MSE train: 91.283 | MSE test: 98.0433\n", "Polynomial degree: 50 | MSE train: 80.8907 | MSE test: 48079.7409\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Polynomial degree of the fitted curve: higher degree == higher capacity\n", "degree = [0, 1, 3, 5, 10, 20, 50] \n", "plot_polynomial_curves(x_train, x_test, y_train, y_test, degree, scale)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.1.3 Sample size and models' capacity\n", "\n", "In the previous section, we discussed model capacity.\n", "\n", "Now we study the behavior of the polynomial regressors and examine how they perform when the sample size increases (as presented on Slide 40 also Figure 5.4 of the Deep Learning book).\n", "\n", "Specificaly, we study the behavior of the cubic polynomial regression and the optimal polynomial regression (which minimize the MSE on the test set). \n", "\n", "**Question**: Do the following curves behave as expected?" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Sample size of the training set that we want to study\n", "sample_size = [10, 10**2, 10**3, 10**4, 10**5, 10**6] \n", "variance = 20\n", "np.random.seed(2)\n", "\n", "H_train, H_test, optimal_train, optimal_test, optimal_degree \\\n", " = train_poly_and_see(sample_size, scale, period, variance, degree)\n", "\n", "plot_optimal_curve(optimal_train, optimal_test, H_train, H_test, optimal_degree)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 1.2 Bias and variance of estimators\n", "\n", "We will now explore some properties of the bias and the variance of well-known estimators." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Linear models for regression\n", "\n", "The polynomial curve fitting problem encountered previously is an instance of a broader class of models called linear models. More specifically, it is a linear regression task, where the goal is to predict a value of one or more continuous target variables given the values of some input variables. \n", "\n", "Linear models share the property of **being a linear function of the adjustable parameters** (polynomial coefficients in case of polynomial models). This simple form of linear regression models are also linear functions of the input variables. Linear models have been studied in depth by statisticians in the last century and their theory is well understood. \n", "\n", "In addition we hypothesize that our loss function is the squared error (i.e. ( $\\sum_{i=0}^n (y_i-\\hat{y}_i)^2$ ). We will study some properties of this model and loss function. \n", "\n", "A linear regression model fitted with a squared error is also known as an ordinary least square (OLS) regression.\n", "\n", "First, let's simulate some data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.2.1 Data simulation\n", "\n", "In this section, every observation $y$ is generated according to the following model:\n", "\n", "$$ y = \\bf{x}^\\top \\bf{w} + \\epsilon$$\n", "\n", "where $y \\in \\mathbb{R}$ is the output, $\\bf{x}$ is the vector of covariates, $\\bf{w}$ is the vector of the associated weights and $\\epsilon$ is the random noise such as $\\epsilon \\sim \\mathcal{N}(0,1)$." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def data_simulation(sample_size, w_0, w_1):\n", " \n", " x = np.random.uniform(-1, 10, sample_size)\n", " x.sort()\n", " noise = np.random.normal(0, 1, sample_size)\n", " y = w_0 + w_1 * x + noise\n", " \n", " return x, y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Given the above generative model, we can sample the data and visualize it." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3UAAAE9CAYAAACsmksIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3dfXBc53Xn+d/TDZGERDCwZFqW+AIQWg/AbiWySZZXaXjjRIgjRwnWUJWV2pkyozhZS9xKAieTFZd2AkQDORktEWd2UDUJqR3JchQn41gTQ27bFUlALDsGbNdQjBOLIJHYTVKiqbXkF1qgBZIG+uwft2+z0eiX2+/dwPdThbrol3vv0xBK0sF5zjnOzAQAAAAAaE2hRi8AAAAAAFA+gjoAAAAAaGEEdQAAAADQwgjqAAAAAKCFEdQBAAAAQAsjqAMAAACAFtbW6AUE8cY3vtG6u7sbvQwAAAAAaIjnn3/+u2a2NddrLRHUdXd369ixY41eBgAAAAA0hHPubL7X2H4JAAAAAC2MoA4AAAAAWhhBHQAAAAC0MII6AAAAAGhhBHUAAAAA0MII6gAAAACghRHUAQAAAEALI6gDAAAAgBZGUAcAAAAALYygDgAAAMC6MT09rf7+fk1PTzd6KVVDUAcAAABg3RgdHdXs7KxGR0cbvZSqIagDAAAAsG6MjY0pFotpbGys0UupGoI6AAAAAOvC9PS0RkdHNTY2poGBgUYvp2oI6gAAAACsC2tx66VEUAcAAABgLUokpGhUamvzjonEmtx6KRHUAQAAAFiLBgelU6ek5WXvODjY6BXVDEEdAAAAgLVnfl5KJr3vk0lpfn7V9su1Mt6AoA4AAABAy1sVoPX2SqFUuBMKSb29q7ZfrpUaO4I6AAAAAFWXGWTVIyO2KkCLx6W+Pikc9o7xuAYGBjQzM5PufLlWauycmTV6DUXt27fPjh071uhlAAAAAAiov79fs7OzisVikpT+fmZmpvKLJxJejdz8vJeRi8c1ffr0mhxX4HPOPW9m+3K9RqYOAAAAQGBBs26ZWbCqZ8QGB5U8eVJaXvaOg4OrsnDrCZk6AAAAAIFlZuCqknUrR1ub19XSFw5LS0uNWUudkKkDAAAAUBX1qEMrmg3s7VXSOUnyjrt2rZpJt54Q1AEAAAAIrFrbHAsFbkW7UsbjCu3eLYXD3lGqyky6Vh1xQFAHAAAAoGZWBUqJhBSN6md//uf1yOysjhw8uOqcotnAnh7pxAlvy+WJE9Lp06tm0pWjVUccENQBAAAAqJlVgdLgoHTqlMKS+iR97HvfW3VOqdnAi9u3K11hl5pJVwo/8BwaGmrJEQdtjV4AAAAAgLVrbGwsPWpAkpdFS2XVwpI2nztX8T3ef8MNevDsWfVJCqdm0pXCDzwlNa75SwXI1AEAAABYLbVNsqzmIxnnDgwPa+aJJ65m3Xp7vWyaVFZWLZcDhw/rvlhMz01Nedsxe3pKOr/Vh5DXbKSBc26TpC9J2igvI/ikmf2hc26XpP8m6XpJxyXtN7Mrha7FSAMAAACgzqJRr+lIMukFX319XsBU6bk5BoeXGoStR40aaXBZ0h1mdpukt0p6t3Pudkn/t6T/ZGZvkfQDSb9RwzUAAAAAKEfGNsmSm49knbs8N3e1UUp2kxMCuorVLKgzz8XUw2tSXybpDklPpp7/uKShWq0BAAAAQG5BZsGVvU0y49xlSaekmnWULPo5KtlG2iJqWlPnnAs7574u6RVJz0r6lqQLZuaPez8naVst1wAAAABgtSCz4NTXJ4XDurhjh+7ZtCn4/LaMcxe7uvTgnj0l1auVMi+u6OdIddusdIZdM6tpUGdmy2b2VknbJb1d0u5cb8t1rnPuPufcMefcsVdffbWWywQAAABa3vj4uLZs2aLx8fFA7y9lFtz/fN11evL4cQ0PDwdbTMa5m8+c0aeef76kYeW5ArV8gV7Rz1HJNtIWUbNGKatu5NwfSnpd0v8l6c1mtuSc+2lJD5rZnYXOpVEKAAAAUNiWLVu0sLCgjo4Ovfbaa1W9djQa1dzcnCKRiE4EbZYS0PT0dHrkgR/45Xquv79fs7OzisVipY0dqKThSxNpSKMU59xW51xn6vt2ST8v6aSkL0h6b+pt90p6qlZrAAAAAJpdKVsNCxkZGVFHR4dGRkaqtLKrJiYmFIvFNDExUbVr+p97eHh4VVYu1/Dx7Ixc4J9bxlZQlTHDrhXUcqTBT8lrhBKWFzz+jZmNOed6dHWkwT9Kep+ZXS50LTJ1AAAAWKvKzkDVSK4sWS34nzsSiaizs7Po/bLX1Ww/t1prSKbOzP7ZzN5mZj9lZrea2Vjq+YSZvd3M/iczu6dYQAcAAACsFbmyS802+Lpo45Eq8T/3xMTEqqyctPpnlb2uZvu5NVLdauoqQaYOAAAAa0ErZJfqlakrJvtn1SzrapRCmTqCOgAAAKBO1ntgUgp+Vis1ZPslAAAAgJVyNQBpJvmaj1SrmUsp6v2zasRnrBaCOgAAAACS8tfT5a2zSyS8kQFtbd4xkajjaqurXrWEtUBQBwAAAFTIz/KMj49XLdtTi2sWk6/5SN6mJIOD3gy45WXvODhY8PrNnA1r5cYr1NQBAAAAFfKbenR0dOiNCwuabm/XritXpN5eby5aT09F11xYWAjcXKWutWhtbV5A5wuHpaWlvG9vhUYxzYqaOgAAAKCG/CzPyMiIptvb1XXpUs7sVSmZqsxrlpJBqtc2wunpaZ3esEFJ57wnQiEviC2glbNhzYxMHQAAAFBNBbJXFWWqEgkvQJyfX5UBzMzOSapqpi5f5q+/v18vz85WJSuJ4hhpAAAAANRLNOpl6JJJL3vV1yedOCGpwq2RBa5by22N+a7NyIH6YvslAAAAUC/xuBdwhcPeMR5PvzQwMKCxsTGNjo4Gbhbib9k0P6CTvOP8fPo91djWmG9raL5rN/t4hvWETB0AAABQR6Vm1fz3J9rbtevy5ZyZukasC/VFpg4AAACokVLb9JeaVfPff/7o0bwZwGqgiUnrIlMHAAAAVKDsDFeBxidANjJ1AAAAQI0UzHAlEl6Dk7Y275hIXH1tDQ3uRmORqQMAAACqaEVXyOHhvB0rGdyNUpCpAwAAAGogV/ZsxfDv+fm8HSvV2+sFehKDu1ERgjoAAACg0DbJAlYEcCkrgq/eXiWdkyTv2NubDgRnDh0qqfEJIwSQD9svAQAAsD4UakxSYLB3IUUHcCcSOn3rrdqxuKiX2tu164UX1L9/P9soUTK2XwIAAACFGpMU2iaZR9GATpJ6epSIx/XOWEyJVBBZ622UNFRZfwjqAAAAUFQzBwqB11bF+jYp99bLXLK3TdZ6G2XQdWHtIKgDAABAUc0cKAReW6HALR4vebD30NCQOjo6NDQ0VMHqq4+GKusPQR0AAACKatYARvKCmEgkogsXLhTO1hUK3Hp6vBq6pSXv2NNTNAM4OTmphYUFTU5OVvkTVYaGKusPQR0AAACKKieAqdeWzYGBAXV2dmpubi5nti69jtOnVwVuhRTLAJIRQ7MgqAMAAEBR5QQw9dyymWt9fjA3PDxcdB25AtBin5mMGJoFIw0AAABQE4W6QwbqHFnGdTNfv3Dhgubm5hSJRNKvTUxM5Dynv7+fMQNoaoVGGhDUAQAAoO4qCaKKneu/HolE1NnZqbGxsXTWMN85lQSZQD00ZE6dc26Hc+4LzrmTzrkTzrkPpp5/0Dn3befc11Nfd9VqDQAAAGhOldSjFTvXf31iYiK9PbKUrZTNPL4ByKVmmTrn3E2SbjKz4865DknPSxqS9CuSLprZnwS9Fpk6AACAxllvWSy2YqIZNSRTZ2Yvm9nx1PcLkk5K2lar+wEAACC4UrJRtW54UtXMWCIhRaNSW5t3TCRKviddLdFq6lJT55zrlvQlSbdK+veSfk3Sa5KOSfo9M/tBofPJ1AEAAFRXKdmoWmfqqpoZi0aVPHlSITMlnVNo925vfEEt7wnUQUMydRk33yzpv0v6HTN7TdKfS7pF0lslvSzpo3nOu885d8w5d+zVV1+t9TIBAADWlVKyUbVu3V9xZiwzOzc3p1AqaREyk+bna3NPoInUNFPnnLtG0mclPW1mf5rj9W5JnzWzWwtdh0wdAABA66hmZi/QtaJR6dQpKZmUJJkkJxXM1AGtplHdL52kRyWdzAzoUg1UfHdLeqFWawAAAFi3AtaW1UKQGrygdXSB6vnm59MBneQFdAqHvYAuHi9x9UDrqeX2y35J+yXdkTW+4LBz7hvOuX+W9HOSfreGawAAAFifBge97NXysnccHCz7UqU2MgmytbFYsObfc2hoqPg2yd5eKZT639pQSIpEpKUlL0PX0xNozUArY/g4AABAq0okvGBtft4LbOLxq0FMW5sX0PnCYS/QKUMtmooU21ZZ0j0L/RyANaKhjVIAAABQI4WycdnZq97eVafny8BlP19KU5GgWb1izVdKamTS0+Nl5cjOYZ0iUwcAANCqCmXjAmSvotGo5ubmFIlEdCKjmUglmblSz11vg82BcpGpAwAAWIsysnHLki5u3371tQqyVyVlybIashw+cKCkUQG1HmwOrAcEdQAAAK0qHpf6+rQs6ZSk999wQ0mnT0xMKBaLaWJiYsXzJc2ly9oC2v/wwyXNtGNeHFA5gjoAAIAyBaofCzhaYHx8XFu2bNH4+HjwBaSycc9NTem+WEwHDh8uaf2ZwVupHS7TMubDKZn0Hpe5BgDloaYOAACgTIHqxzIHY4dCUl9fzmHYW7Zs0cLCgtrb2/W2t72taI1ZtWvRyq6j27hRunLl6uMNG6TLlyteD4CVqKkDAACogUBbBzMHYyeT3uMcRkZG1NHRoa1btwaqMat2LVrZ2yAzG7Xkegyg5gjqAAAAyhRo62CA0QKS9MADD+i1117TY489Fii4qnYtmv9ZJJW2DTPg5wNQO2y/BAAAqKXUaAE7dUpnNm7U+aNH1b9/f6NXlVfJ2zCLjE5gZAFQHWy/BAAAaJRUM5N33H67ehYXdfDIkdXvCdhMxVd2U5MASs4AFhmdUM420Vp+PmAtIqgDAAAoohpBRsFgKWssgAYHC16rlrPdqt2NspxtosyuA0pDUAcAAFBENYKM48eP6xvf+IaOHz+efs4PFpMnTwZqpuJrpdlu5QSJrfT5gGZATR0AAEAR4+PjeuihhzQyMqIHHnigrGv4Iws6Ojr02muvSbpavzYXCunfJJMKS1IopIs7dujObduoQwOQRk0dAABABSYnJ7WwsKDJyclgJ+SokfNHFoyMjKTf5mek/uGBB/Rie7ssNcfu/TfcUFJmsBrbQ6ljA1oXmToAAIAiSu7gGGTgeIGukaXer+zB4VW+BoDaKZSpI6gDAACotra2lUO4w2GvO2SmIIFfQNUYG8DoAaC5EdQBAIB1peEBSpCALUjgBwAp1NQBAIB1peEt8eNxL5ALh71jPL76Pb29XsAnecfe3vquEcCaQVAHAABaQimNPBrSEj/VHMXCYZ2+9VbNHDq0YiD3qvUHCfwAIAC2XwIAgJbQ9I08MrZcLks6vWGD7t23L70FdMX6n3gib5MUAMiF7ZcAAKDlNf1A6vn59ADxsKTuK1dWbAFdsf7BQS8AXF5W8uRJnb71VkYJACgbmToAAIBqyGqOUnCAeFaTlCVJ72zWDCSAplAoU9dW78UAAACsSfH4ii2Vm+NxzeTbUtnbmw4Ak87ppU2bmjcDCaDpsf0SAACgGnp6vKYoGc1R8spokhLavVvnjx7V6OgoWzABlIWgDgAAQKV116xYVgB48MiRVSMY6roeAC2NoA4AAECNnW2XqwlMw2ftAWgZBHUAAKAhmi0T1cjumgMDA5qZmVnRUKXpu30CaBo1637pnNsh6S8kvVlSUtIjZvafnXPXS/qkpG5JZyT9ipn9oNC16H4JAMDa0/Rz5wCgiTRqTt2SpN8zs92Sbpf0m865iKRDkqbN7C2SplOPAQBAnTRLhqwWmajszzY9Pa1oNKpoNNrwz1tNzfLPEEBzqFlQZ2Yvm9nx1PcLkk5K2ibpPZI+nnrbxyUN1WoNAABgtWao1Zqentbo6GjuGW4Bzs0X0GR/ttHRUc3NzWlubm7V5616YJRIeLPq2tq8YyJRnevm0Az/DAE0j7rU1DnnuiW9TdLXJN1oZi9LXuAn6U15zrnPOXfMOXfs1VdfrccyAQBYF5qhVitwUJIjUCp0bvZnGxsbUyQSUSQS0eEDB1Zc68jBg9UNjAYHvdlzy8vecXCwOtfNoRn+GQJoHjWrqUvfwLnNkr4o6Y/M7G+dcxfMrDPj9R+Y2RsKXYOaOgAA1pbAmbpoVMmTJxUyU9I5ha65Rra0pG+1tek3d+7UwSNHrp6fSKwY/q143Hvefy4cln78Y8lMCoV0cccO3bltW1nZwpza2ryAzhcOeyMLAKAKCtXU1TSoc85dI+mzkp42sz9NPTcv6WfN7GXn3E2SnjOz3kLXIagDAGCdyg6UUpYlnZJ0X2aTlewAcPdu7/lTp6RkcvW1qxR0+QHq09/+tja/9JJ3r1DIGy5+4kTF1wcAqUGNUpxzTtKjkk76AV3KZyTdm/r+XklP1WoNAACgwSqtM+vtVdI5SVLmn6HDkvrkbUP0a+Ps1CmFUn+sDpl52bn5+dwBXSjkZfOqwN8O+v4bbvACuXDYO/qZQgCosVrW1PVL2i/pDufc11Nfd0l6WNK7nHP/KuldqccAAKDBatJRsdI6s3jcy7iFw3IbNkipAE+hkMKRiAYGBtJB1ZmNG9MBYNI5L2jr7fUCuNQ52rCh6kGXX9924PBhLzO3tOQde3qqcn0AKKaW3S+/bGbOzH7KzN6a+vq8mX3PzAbM7C2p4/drtQYAALBavuCt4o6KubJymZmyZNJ7XIqenquB0smTUirAywzK/KDq/NGj6QAwtHu393o8vjJ7dvJk1YOuXIPDAaCe6tL9EgAANI98wVtmR8Wysna5snLZmbKMLY9B75F+3+nTOTNhflDVv3//6tczg0KyZwDWqJp3v6wGGqUAAFA9QTpP9vf3a3Z2VrHMRiTF5Or++C//srojZSqwCnqPstYCAGtMQxqlAACA5pGZFQuyXdDP2g0NDQXP2OXKyvX0eIFcb68X2A0OppulBJ21xkw2ACiMTB0AAOtAudmuUs6beeIJ3Xz//eq+fFnOr3nr6fHq6/yxArT6B4CykKkDAKDFVLsTZbnZrsDnJRK6+f77tWNxUWc2blyxzTJIs5Tx8XFt2bJF4+PjJa0PAECmDgCAptTIOrIgNXer5Br87WfjimTqpqen9Qu/8AtKJpMKhUJ65pln6CQJAFnI1AEA0GIaVkeWSKhncFBfnJ1VT0b9W673rRhfMD+/evC3L3usQNZ8uNHRUSVTmbxkMln+SIWUmszbA4AmRlAHAEATqufssxVB0OCgui5dUpukrkuXVgwLz37fivEF4XDe0QXFxgr4Aezhw4erEshWPG8PAFoMQR0AAC2mnEzU9PS0urq6dO21166qW/ODoOHhYS3PzeXNuA0PD6fft6pObmnJy8KFQl72bn7+6gDyIvwA9oEHHqhKIEu3TADrDUEdAABNpljQVk4manR0VC+++KIWFxf10EMPrXjND4Ik6ZSk9KS57IxbpuzxBX6dXF+fF+BlDiCvs3pmOQGgGRDUAQDQZIoFbdmZqMwgMF9AODY2pp07d6q9vV0jIyMrXvODoImJCT24Z48Wu7rS9W8zhw6lrzcxMaFYLKaJiYn8dXIBOl0CAKqL7pcAAJSprC6RAc4v9bqZnTIlXe2a+cQTXqZsft7LrGWOGQio5C6cGZ0ulyUtdnVp85kzJd0zr0Si4s8DAK2K7pcAANRApQ058p1f6vbBzMzdiixedjOTHFshi231LLk+LZXBW5a3lfP9N9wQ7LwgAnweAFiPyNQBAFCmWmXqqsXCYTl/K6TkbZVcWlrxnv7+fr08O6vp9nbtunKlrAxYrs9Rk8/W1uYFdL4cnwcA1qpCmTqCOgAAAqh1AFaL9Zy+9lrtXFxUWMo59Nu/Tk9qjEHILO/7CqnboPQiQ8wBYC1j+yUAABUKvNUyeyh3gJb+tVrP+aNH9WJ7u8wPgLKGfkveVs9dV66kxxiU09ykbiMEigwxB4D1ikwdAAABBM7U1SKblKNByMzMjG6+/351X74s5wc45TYNIQMGAE2PTB0AABUq1rzEbziSPHmypJb+gQaJ52gQ0v/ww9p1+bJXM1dp0xAyYADQ0gjqAACoAn875LxzwYZ3Z52XvY1yRbCXa/ZbhfPgVly/p8fLzC0taXpiQv379xcOMgEATYWgDgCAKvDryv7hgQeK1rHlOi+7Hm1FsNfb6wWI0tVAMddzJcgXTFY6pgEAUH8EdQAAVIG/PfO+hx/Wrtdfl1te9rJfAevcNp0/v6LByuEDB64Ge7m2R1a4ZTJfMFm3picAgKqhUQoAAJXKamQyc+iQDh45Emj8gT8OINHerl2XLwduVtJsIxYAALVFoxQAwLpWqBlJoEYlxWQ1Mrn5/vsDb2H0M2PdfkAnBaqRGx4e1uzsrIaHh8tfNwBgTcgb1DnnPu+c667fUgAAqIFEQj2Dg/ri7Kx6BgdXzY2rSg1ZVtOS7suXA29h9Ldtur6+dI1c0jmd3rCBZiUAgEAKZeoel/SMc+73nXPX1Gk9AABU1+Cgui5dUpukrkuXVrX+z1dDVlIGL6tpievrKzj+IKeMGrmzmzZpYHGxYKA5MTGhWCymiYmJ4PcAAKxJeYM6M/sbSW+TtEXSMefc/+mc+/f+V91WCABAJebnFUrVj4fMVm1rzDd/zs/gDQ8PFw/uKmxaMj097Y0RmJiQlpaUiMd1U55Mnx9sSiocOCYSKxqvZGcoAQBrR8FGKc65DZIOSfp3kj4pKem/Zmb/oeCFnXtM0i9LesXMbk0996CkD0h6NfW2D5vZ54stkkYpAICyRaNevVvABiQ+vxHJhQsXNDc3p1gsppmZmZos0W+WEuQegd9b5ucGADSnshqlOOfeLenrkq6VtMfM/tDM/oP/FeC+j0t6d47n/5OZvTX1VTSgAwCgIjmyaEG2Vg7s2qWZCxf0wqlTSrS36/CBAyteL7XBSqH3lzJGIPB20QqHkwMAWkfeTJ1z7h8kHTCzsv+sl2q08tmsTN1FM/uTUq5Dpg4AEEjWaAHF4znnxGVmu8bGxnKPBiiS6Solu1bO+0u16vpk6gBgTSkrU2dm/0slAV0Bv+Wc+2fn3GPOuTfU4PoAgPUqa7RAdlMUX2a2K7P75fT0tKLRqKLRqMwPiKRVma7p6WlduHBBkUgk8JDuWg/1XnX9Cuv8AACto6bDx3Nk6m6U9F1JJukhSTeZ2a/nOfc+SfdJ0s6dO/eePXu2ZusEANRW3QZlt7V5AZ0vHJaWlgKvzQ/wJCnR3q6uS5cUMlPSOYV2705numqVdWOgOAAgn6YZPm5m3zGzZTNLSvp/Jb29wHsfMbN9ZrZv69at9VskAKB0qU6LFg7r9LXXauaJJ1a8HGgWXEa3xovd3bpn796C9Wo5a9SyRguot7fo0jO7X46NjSkSiSgSiej80aM6u2mTliSd3bRpRaarVlk3BooDAMpR16DOOXdTxsO7Jb1Qz/sDAGokte3RJZPaubiom++/f8XLY2Njeu+ePXr629/O32I/Y+tk+9mzevD48YJBYM5AscIthwMDAzpx4oROnDih/v37lYjH9c5YTIms2rx8YxAAAGiEmgV1zrm/lvQVSb3OuXPOud+QdNg59w3n3D9L+jlJv1ur+wMAaqdQp8WwpO7Ll1e8f2BgQJ+6dEmbX3opf71b1jV6JQ0NDeVdQ85sWU+Pt0Vyack75miSUspnywzeSu12WQ4GigMAylHTmrpqofslADSXsjotFqt3y7jGsqRTku4LULNW7Tq0fPVyte5eCQBAIU1TUwcAWBvK6rRYrN4t4xqLXV16cM+eQDVrger1SpCvXq7W3SsBACgXmToAQH0EmSEXcM5cJjpGAgDWg0KZOoI6AEDzqNPAbAJBAECrYfslAKAqat4sJKNZipJJLc/NlXWvYuus9pbNUu4NAEC1EdQBAAKrZTAkaUXdnd8spZx7+escHh7OGWDVsj6u5j8jAACyENQBAAIbGhpSR0dHwVEDFSmzWYrPz5INDQ0pFotJUs4Aq5Zz5mioAgCoN2rqAACBNXtb/+z1UTsHAFgrqKkDAFRFdhZqVf1YIuE1O2lr08Xubt2zd2/ZtWXl1KZlr6+WGTkAAJoFmToAQNkKDSEvZYB4oGsDALCOkakDAKxQrQ6NfmZsaGhI/f39Mn8cgaSwpL7Ue8pZA7VpAAAEQ6YOAJpBGUO3K1HtLJh/vUR7u3Zdvhxozlwla6BWDgCw3pCpA4BmNzjobVtcXvaOg4M1vV0pWbAgWT3/euePHk13r1RfnxecVmEN2RgbAADAVQR1ANBg09PTWp6bWzF0W/Pzdbn3pvPn041NFI16GcMsQQIovyFJ//79XmZuack7Fsg2VtLEhK2ZAABcRVAHAA02OjqqU/KGbUvyti329tb8nrOzs7r5/vuLZgjzBVDVqssrB10tAQC4iqAOAKqk3CBnbGxMD+7Zo8WurkDbFqvBD9S6/fo3KZ0hzP4c+QIotkACANAcaJQCAFVS7eYjdWkGkjGCwG9s0t/ZGehz0KwEAID6oVEKANRBteu86pIJi8dXNTYJ+jnYAgkAQHMgqAOAElRSR1bquXVpBtLTs6qxCcEaAACthaAOAEqQmT3LDtKKZdayXy8W5BFcAQCAIAjqAKAEmdmz7CCtWGYt+3UajQAAgGqgUQoAqLymH5U2CqHRCAAACIpGKQBQRDlZs2LbI6uxvbKRs+AAAEBrIKgDsD4kEl77/rY275hIrHi5Fk1J/EDxyMGDBe+dz/T0tO6++262aAIAgIII6gCsD4OD3jy25WXvODi44uVKm5Lkyqj5geLHvve9gvfOZ3R0VAsLC+ro6KhtB0wAANDSqKkDsD60tXlBlS8c9tr4V0nBweNl3puaOwAA4KOmDgB6e6VQ6l95oZD3uIoKbt8s895Fs4dFtpSW/D4AANCSapapc849JumXJb1iZremnrte0icldUs6I+lXzNNiITwAAB2LSURBVOwHxa5Fpg5AxRIJb9vj/LwXVMXj3uDtVr53NOpt50wmvWCxr88bIF7u+wAAQNNqVKbucUnvznrukKRpM3uLpOnUYwCovZ4eL5BZWvKOeYKqmnSbzLx3PO4FeNXIms3Pe4Ga5B3n5yt7HwAAaEk1C+rM7EuSvp/19HskfTz1/cclDdXq/gBQjpJGG5SzrTGjYUvy5EmdvvXW8gPIoNs6a7z1FAAANFa9a+puNLOXJSl1fFOd7w9gnQqagctXG5fz/CIdNXOdb/42SEkhM+1YXCx/XEE87m2lDIe9Yzye/31+ZjKZlK5coa4OAIA1pGkbpTjn7nPOHXPOHXv11VcbvRwAdRY0CBsfH9eWLVs0Pj5e8H1BM3D5mpPkPD97W+PcXN6snX/+mY0b5ffBXJb0Unu7hoaGytvyGXBLqXp6pA0brmbr/Bo/AACwJtQ7qPuOc+4mSUodX8n3RjN7xMz2mdm+rVu31m2BAJpD0CDsoYce0sLCgh566KGC78vMwJVTN5czg5e5rdGXJ2vnn3/+6FEtdnVpWdJiV5d2vfCCJicnaz9gnLo6AADWrHoHdZ+RdG/q+3slPVXn+wNoEQVHBGQYGRlRR0eHRkZGCr4vMwPnB4zDw8OKRqOKRqNFA7zsDN709LTu2bRJF3fs8LY/ZsoRNPnn9+/fr81nzihsps1nzkg9PYE/a0WoqwMAYM2qWVDnnPtrSV+R1OucO+ec+w1JD0t6l3PuXyW9K/UYwHqXo+FI0RltKXv27NFP/uRPas+ePYEbl/hBlCTNzc1pbm4uZ5YsO6OX+Xh0dFRPHj+uO7dt87Y/RiJlB01BP2tFgtbfAQCA1mNmTf+1d+9eA7CGRSJmoZCZ5B0jkcCnxmIxk2QdHR220NVV0nWmpqYsEolYJBKxqampvNeOxWI2NTVlHR0dKx77x6mpKXvvnj3e/cNhs0jEvvwXf5F+vZoy7wsAANYPSccsT7xUs+Hj1cTwcWBt8DNcY2NjK7NSbW1eLZovHPayXwGveffdd2thYUFLkjI3Qi5Lem5qqqQMWOYaJa+27/CBA7r5/vu1Y3FR/xoK6fuPP67+/fvT5/T392t2dlaxWEwzMzN5n6uGWl0XAAA0t0YNHweAFfI1P7m4fXu6I2Q5Wxc//elPKxaL6dLNN6efN0nfknTk4MGSZsllrjFdB/fww+q6dEltknrN1P/wyp3juWriql0n52/9HBoaqn39HQAAaClk6gDUTb5M3T179+rB48fVJykciaycq1aKt7xF+uY3JXlB3blNm/SGG2/U5pde8pqXhEJePdmJE1fb+s/Pe0Fk6p4511hBJrFayNABALC+kakDUDXljAPw5WsIcuDwYd0Xi+m5qanc89YKNEBZsZ7Tp9PPO0k7fvxjbT53Lncr/6zB4RfvuEP9/f2StHqNTdA5si4dMgEAQEsiUwegJOVkjPLW0gV9bzTqBWDJpJLO6eymTUrE4xoYGEivJxKJ6LOnT6vr0iWFzK5m5aT0uSsydVnZt2VJbVLOzzXzxBO6+f771X35spzfObKcTCIAAECZyNQBqJpyMkYFB4knErrY3a1l53Sxu1tHDh5c/d6MwdkhM+1YXEy/njmeYGBxUfPOyfzgLR7P28o/u45vsasr7+c6eOSIehYX9Y7bb8+dSQQAAGggMnUAaq5gpi4a1fLcnMLysmWLXV26c9u2wJm6zHv4XTCDZBFLqeMrJdMIAABQC4UydQR1ABorSBOSPE1NslW8zRMAAKBJsf0SQMPlbbCSrwlJZnOUwUEvkFtaKrj9MV8jlkrfW0lzGAAAgFojqANQUFkBTY5ulXnr6vLUvGV3p9TgYPU+VIkK1gQCAAA0GEEdgILKCmhyBGR5G6z09HjZt+wsXEZzlBWjCBqAcQIAAKCZUVMHoKCyas+qMaw7oznKilEEAAAA6xA1dQDKFqT2bNUWzWoM6863LRMAAAArENQBqNiqLZqpgMxCIZ3euFEzhw6VftF82zIBAACwAkEd0CDN0FEx6BqKvW9VzVkqIHvH7berZ3FRB48cqXiN4+PjDf95AQAANCNq6oAG6e/v1+zsbKBB2Y1cQ6lDvbPPzVePF7RWz19jR0dHWWsAAABYC6ipA5pQNTsqlpv1y1xDvmuMjo5qYWFBHR0dGhoaWvGeYvctVI8XtKumv8aRkZG8P69qZD2bIXMKAABQFjNr+q+9e/cagPxisZhJslgsVvVrTE1NWSwWSx8z31POff3rHD58OH3dStXy8wMAADQDSccsT7xEpg6ookZle8rJ+mWv1b/G4QMHVgwOH9i1K51ty77P2NiYIpGILly4EPgz+xm6ycnJol01g6pG1pNZdAAAoFVRUwdUUa4atbLmvOUwPT2t4eFhSdLExETFwVDeeroS58OVWhvo/zyGhoY0OTlZ8c8FAABgPaCmDqiToaGhdO2ZL2jtWDGjo6Oam5vT3NxcRdfyM3RDQ0O5M1Pz815AJ3nH+fmC1yuY4UokVmT9lEik6+wmJyer8nMBAABY7wjqgCqanJzUwsKCJicn089Vsq0vc4ukv9UxEolUtEWw6PbHjMHhy5Iubt9e8HoFh5MPDnpZv+Vl7zg4mH6J7Y4AAADVQVAHVFGuQKVg0KPCdXjZWb7Ozs6Kt14WDaZSg8OXJZ2S9P4bbij7XoWyfsV+LgAAAAiGoA6oUGZQVk6gUmh7ph+ADQ0N6e67767KdsWia0wNDn9uakr3xWI6cPhw+TfLyPopFPIeAwAAoKoI6oAKVVozV6iDZGb9mT8rLp1hy1GvVk1VyaSlsn4Kh71jPF69BQIAAEASQR1QsUprwwYGBtTZ2VmwAYp/j09/+tNXg6wC9WpNI5X109KSd+zpafSKAAAA1pyGjDRwzp2RtCCvD8NSvtacPkYaoOklEl5QNT/vbTGMx0sKYMoae9DW5gV0vnDYC54AAACw5jTrSIOfM7O3FgvogEYKPEy8wqxZoa2OeddAvRoAAADE9kugoMD1ciXOdit3DX6ANz4+rns2bdLFHTuoVwMAAFjnGhXUmaRnnHPPO+fua9AasE4Fzr6phHq5HFmzUu5TbA1+I5Xh4WHNzs7qoYce0pPHj+vObdukpSVNT0yof//+iu8FAACA1tOomrqbzey8c+5Nkp6V9Ntm9qWs99wn6T5J2rlz596zZ8/WfZ1Ym/r7+zU7O6uOjo5045Gyatoy5aip69+/X7Ozs4rFYpqZmanKmiORiDo7OzU0NKTJycn0ev3Xq3EvAAAANJ+mq6kzs/Op4yuSPi3p7Tne84iZ7TOzfVu3bq33ErGGjY2NqaOjQwsLC+ltlbm2OJaU9crR5bHSrpjZa47FYpqYmNDMzIweeOCBFTV41bwXAAAAWkvdM3XOueskhcxsIfX9s5LGzOzv8p1D90tUW3ZmLvPxkYMH9eDx4+qTFI5ESu5kWS8VZxcBAADQMgpl6hoR1PXIy85JUpukvzKzPyp0DkEd6ulid7faz55VWPLq4/r6vOxbk8m15ZJADwAAYG1qqu2XZpYws9tSX9FiAR1QS7m2Wm4+d84L6CQpmZSdOlWVhifVkLneXFsuA3frBAAAwJrBSAOsPYmEFI16w7mjUe9xHn43yeHh4atPZnWyPLNx48pAqYTrl7OmQjKDtlyz7aitAwAAWH8I6rD2ZA4Cn5uTbrmltEAqHve2XKbmv50/elSxWEyHDxzwrnPLLbK5OWl5WcmTJ4MNGq9wOLkfFH75q19Vor3dW0sOhYaYAwAAYG0iqEPtVSlLFVjmIHBfnkBqYmIi3VXSN336tPo7OzX99NPSiRO6dPPNkqTbRka860hyqfeGzIINGq90OHkqKHTJpHZdvqz+hx8u7XwAAACsWQ2ZU1cqGqW0uGjUC4aSyfo0Hsm8X6Zw2Bs5UER2AxL/8ZJ0tdYuJemcQrt3SydOFG5SUunPoK3Ny/KV+FkAAACwNjRVoxSsQ7myVNGoLBzW6Wuv1cwTT1T3fv72yUyhkFcrF0B2XZr/+AdvepP8sMpSX6/v3OndT0WalGRt6fTPCSyrzi/oZwEAAMDaR1CH2ssOSMLh9FbCnYuLuvn++1e8vazh35n8QeDf+pYUiZQcSGXXpfmP/4/t23VK0rKkM+3tukXSndu2pWfYFWxSkmM4eUkqDQoBAACwZrH9ErWXSHg1YfPzXoCXtTXSQiG5jK2FueavNYPM7ZWSmAcHAACAumH7JRorO0vV17cic+eytkrWsy1/KVnBgYEBjY2NpbdX0mUSAAAAzYBMHYLLzrjF46VvI6zmdaqg1Kxgs2YRAQAAsLaRqUN15Jq1Vsa4guyRAY0K6CQvKxiJRHThwoVA2TqGewMAAKDZENShKH+LomXWwvldLMsYqp2vS2S+rZAVN04pYGBgQJ2dnZqbm1uxnnz3ZLg3AAAAmg3bL1GUv+Uw0d6uXZcvr5y1Nj9f8vy0fPPc8m1trPWWx1zrYZslAAAAmgnbL1ERf8vh+aNH0231L+7YoXs2bdLF7dsDzU/LzHzly3bl29roP3/4wIGSt3oGkbkef51DQ0NsswQAAEBLIFOHsviZrPfu2aNPXbpUtOlJduYrX7Yu06r3RKNXxyH4mcITJ2ryucjQAQAAoJmQqUPV+dmzA4cPBxqqnZ2FGx4e1uzsrIaHh/PeY1Xt3fz86pq+KqMRCoB6OHDggB566KFGLwMAsEYQ1CEtaEOSIFm27GseP3685PWsCrB6ewNt9awEjVAABNHd3a2pqamyzz9y5IhGRkaquCIAwHpGULeGldo1Ml9XSv9a0WhU0Wg0nWXL9b581zx06NCKcyYmJhSLxTQxMZH33FUBVjyerulTX5/3uAS17KIJAL6lIs2iAACoNoK6FhUkQCkUpOWSmRnLvv7o6Kjm5uY0Nzen06dPa+fOnYFmu42Njamjo0PJZFIdHR3prFtZGbGenkBbPX25PkMpPw8AyGX//v168cUXNTg4qM2bN+vw4cNyzunRRx/Vzp07dccdd0iS7rnnHr35zW/WT/zET+hnfuZndCKjBvjXfu3X9Ad/8AeSpOeee07bt2/XRz/6Ub3pTW/STTfdpI997GMN+WwAgBZlZk3/tXfvXsNKsVjMJFksFsv7nqmpKYvFYjY1NVXy9SORiEmySCSSvlYkErH29naTlD5GIpGi96lkHZXI/hk1ah0A1p6uri579tlnzczs9OnTJsn2799vFy9etNdff93MzB599FF77bXX7NKlS/bBD37QbrvttvT59957r/3+7/++mZl94QtfsHA4bCMjI3blyhX73Oc+Z+3t7fb973+//h8MANC0JB2zPPESmboWFaShR3Y2rJLthwMDAzpx4oTi8bhisZi2bt2afq1YBqxRdWrZPyPq5YD1pd5brh988EFdd911am9vlyT9+q//ujo6OrRx40Y9+OCD+qd/+if98Ic/zHnuNddco9HRUV1zzTW66667tHnzZs3XoBkUAGBtIqhrUeUEKEW3HyYS6TlwX/vRj/TePXtW1bz5933sscfSNXGVdoys1f94EcQB61u9t1zv2LEj/f3y8rIOHTqkW265RVu2bFF3d7ck6bvf/W7Oc2+44Qa1tbWlH1977bW6ePFiTdcLAFg72oq/Ba3O71Y5NDQkSfmDr8HB9By4zS+9pE9dd52UJyAaGBhYESxVEjhl/o8XARiAahkbG0t36q0251zB5/7qr/5KTz31lKamptTd3a0f/vCHesMb3iBrgdmwAIDWQ6auBirKPGVkyxSNeo8rvK8fNE1OThbOXNVhDlwuzIYDUAu1zNbfeOONShT49/PCwoI2btyoG264Qa+//ro+/OEPV30NAAD4COpqoKItP362bHnZOw4OrnpLseAt+76Bg6beXi2nvl1OPS5m1VrKCErZJgmg1XzoQx/SRz7yEXV2durJJ59c9fqv/uqvqqurS9u2bVMkEtHtt9/egFUCANYL1wpbQfbt22fHjh1r9DICK2U49yptbV5A5wuHvRb+Gfr7+zU7O6tYLKaZmZnq3FeSEgldvOMObTp7Vom2Nv12d7cOHjlS8Fqr1hKNprdwLkta7OrS5jNncp5b8XoBAACAdcI597yZ7cv1Gpm6Gqgo89TbK4Uy/rGEw6uyXfkyb7nuW9JW0J4efe3RR3V9R4d6l5b0zDe/WTTbODQ0pI6OjnS9XuYWzrCk9rNn857L3DgAAACgcg0J6pxz73bOzTvnvumcO9SINTSteFxqa5OfP01eubJqC2YpQWN24FQsyBsdHdXCwoLa29sViUSuBo55tlVOTk5qYWFBk5OT3vsyglI/U5cPtXQAAABA5eoe1DnnwpL+i6RflBSR9G+dc5F6r6Np9fRIy8vye6iFpGANS/IEXX7gNDQ0pP7+fg0PD6eDvMwAz/9+aGhIsVhM8XhcJ06cuBo45qn1WxWYxeNSX58UDisciWjz3/993iUPDAyku9PVa44UAAAAsNbUvabOOffTkh40sztTjz8kSWb2H/Od02o1dRWLRpU8eVIhMyWdU2j3bunEiaLn+LVsCoW8wCrjHL/2befOnfrBD36gkZERTU5OpuvhJOWs00sLUOtXjnz1gQAAAACuaraaum2SXsp4fC71HHzxuBfIhcPeMR5f8XLOLZRFxhH4GbXNmzent0tmZtmKboXMrPULhQJ1xgyCLZgAAABAZRqRqbtH0p1m9r+nHu+X9HYz++2s990n6T5J2rlz596zBRpurDc5s1tFMnWSFwwODw9LkiYmJkpr5JJIeFsu5+e9gC4e97aKAgAAAKi5ZsvUnZO0I+Pxdknns99kZo+Y2T4z27d169a6LS6QALPYKhpAXkTO7FZGLZv6+lZl9ySvCcrc3Jw6OztL78zZ0+MFiUtL3pGADgAAAGgKjcjUtUn6F0kDkr4t6X9I+ndmlrdorOlq6gJkxZqxVoy5cAAAAEBraqpMnZktSfotSU9LOinpbwoFdE2pSP2atDKbVsusXSkqmp8HAAAAoCk1ZE6dmX3ezP6Nmd1iZn/UiDVUpLdXSecNHUg6l7NpSGYA5Y8R8OvZpNpuzwQA1FZ3d7empqYqusbjjz+ud7zjHVVaEQBgPWtIUNfy4nGd3bRJS5LObtqUs35Nuhq4Xbx4cdVruQI9AAAAACgVQV05enqUiMf1zlhMiQJdIEdHRzU7O6vNmzcrFotpYmIi0OXJ4gFA89q/f79efPFFDQ4OavPmzTp8+LC++tWvKhaLqbOzU7fddpuee+659Psff/xx9fT0qKOjQ7t27dInPvEJnTx5UgcOHNBXvvIVbd68WZ2dnY37QACA1mdmTf+1d+9ea0VTU1MWi8VsamqqpNdisZhJslgsVrP7A8Ca9q1vmUUiZuGwd/zWt6p6+a6uLnv22WfNzOzcuXN2/fXX2+c+9zlbXl62Z555xq6//np75ZVX7OLFi9bR0WGnTp0yM7Pz58/bCy+8YGZmH/vYx6y/v7+q6wIArF2SjlmeeIlMXQ0VakxS6LVcIwvKyd75mcLR0dHyPgAAtKrBQa9L8fKydxwcrNmt/vIv/1J33XWX7rrrLoVCIb3rXe/Svn379PnPf16SFAqF9MILL2hxcVE33XSTotFozdYCAFifCOoapcCsu1wBXzkBWs55dgCwHgToUlwtZ8+e1ac+9Sl1dnamv7785S/r5Zdf1nXXXadPfvKTOnLkiG666Sb90i/9kk6dOlWztQAA1ieCukYp8a/I5QRojDAAsG719npzRCXvmKNLcSVcqgOyJO3YsUP79+/XhQsX0l8/+tGPdOjQIUnSnXfeqWeffVYvv/yy+vr69IEPfGDVNQAAqARBXaME+Cty5pZLAjQAKEE8LvX1SeGwd8zTpbhcN954oxKpHRbve9/7FI/H9fTTT2t5eVmXLl3Sc889p3Pnzuk73/mOPvOZz+hHP/qRNm7cqM2bNyscDqevce7cOV25cqWqawMArD8EdY2S8VfkpHM6vWHDqno5auIAoEw9PdKJE9LSknfM06W4XB/60If0kY98RJ2dnfrkJz+pp556Sn/8x3+srVu3aseOHRofH1cymVQymdRHP/pR3Xzzzbr++uv1xS9+UX/2Z38mSbrjjjsUjUb15je/WW984xuruj4AwPrivEYqzW3fvn127NixRi+jqOnpaY2OjmpsbKx4Ri2R8LZczs/r9IYNGlhc1E2xmGZmZsq7HgAAAIA1yzn3vJnty/kaQV319Pf3a3Z2VrGs4KwYgjcAAAAAhRQK6th+WUXldpukXg4AAABAudoavYC1ZGBggMAMAAAAQF2RqQMAAACAFkZQBwAAAAAtjKAOAAAAAFoYQR0AAAAAtDCCOgAAAABoYQR1AAAAANDCCOoAAAAAoIUR1AEAAABACyOoAwAAAIAWRlAHAAAAAC3MmVmj11CUc+5VSWcbvQ4U9UZJ3230ItAS+F1BUPyuICh+VxAEvycIqhl/V7rMbGuuF1oiqENrcM4dM7N9jV4Hmh+/KwiK3xUExe8KguD3BEG12u8K2y8BAAAAoIUR1AEAAABACyOoQzU90ugFoGXwu4Kg+F1BUPyuIAh+TxBUS/2uUFMHAAAAAC2MTB0AAAAAtDCCOlSFc+7dzrl559w3nXOHGr0eNCfn3A7n3Beccyedcyeccx9s9JrQvJxzYefcPzrnPtvotaB5Oec6nXNPOudOpf7d8tONXhOak3Pud1P/7XnBOffXzrlNjV4TmoNz7jHn3CvOuRcynrveOfesc+5fU8c3NHKNxRDUoWLOubCk/yLpFyVFJP1b51yksatCk1qS9HtmtlvS7ZJ+k98VFPBBSScbvQg0vf8s6e/MrE/SbeJ3Bjk457ZJGpa0z8xulRSW9L81dlVoIo9LenfWc4ckTZvZWyRNpx43LYI6VMPbJX3TzBJmdkXSf5P0ngavCU3IzF42s+Op7xfk/c/XtsauCs3IObdd0i9J+q+NXgual3Nui6SfkfSoJJnZFTO70NhVoYm1SWp3zrVJulbS+QavB03CzL4k6ftZT79H0sdT339c0lBdF1UigjpUwzZJL2U8Pif+Rx1FOOe6Jb1N0tcauxI0qf9H0kFJyUYvBE2tR9Krkj6W2qr7X51z1zV6UWg+ZvZtSX8i6UVJL0v6oZk909hVocndaGYvS94fpSW9qcHrKYigDtXgcjxHW1Xk5ZzbLOm/S/odM3ut0etBc3HO/bKkV8zs+UavBU2vTdIeSX9uZm+T9CM1+RYpNEaqHuo9knZJulnSdc659zV2VUD1ENShGs5J2pHxeLvY0oA8nHPXyAvoPmFmf9vo9aAp9Uv6X51zZ+Rt577DOfeXjV0SmtQ5SefMzM/4PykvyAOy/byk02b2qpn9WNLfSoo1eE1obt9xzt0kSanjKw1eT0EEdaiG/yHpLc65Xc65DfIKjz/T4DWhCTnnnLzal5Nm9qeNXg+ak5l9yMy2m1m3vH+f/L2Z8Rd1rGJm/5+kl5xzvamnBiTNNXBJaF4vSrrdOXdt6r9FA6KpDgr7jKR7U9/fK+mpBq6lqLZGLwCtz8yWnHO/Jelped2kHjOzEw1eFppTv6T9kr7hnPt66rkPm9nnG7gmAK3ttyV9IvVHxYSk9zd4PWhCZvY159yTko7L68T8j5Ieaeyq0Cycc38t6WclvdE5d07SH0p6WNLfOOd+Q94fBe5p3AqLc2aUPgEAAABAq2L7JQAAAAC0MII6AAAAAGhhBHUAAAAA0MII6gAAAACghRHUAQAAAEALI6gDACAH59wO59xp59z1qcdvSD3uavTaAADIRFAHAEAOZvaSpD+XN6tIqeMjZna2casCAGA15tQBAJCHc+4aSc9LekzSByS9zcyuNHZVAACs1NboBQAA0KzM7MfOuQck/Z2kXyCgAwA0I7ZfAgBQ2C9KelnSrY1eCAAAuRDUAQCQh3PurZLeJel2Sb/rnLupwUsCAGAVgjoAAHJwzjl5jVJ+x8xelDQu6U8auyoAAFYjqAMAILcPSHrRzJ5NPf4zSX3OuXc2cE0AAKxC90sAAAAAaGFk6gAAAACghRHUAQAAAEALI6gDAAAAgBZGUAcAAAAALYygDgAAAABaGEEdAAAAALQwgjoAAAAAaGEEdQAAAADQwv5/ePVu6yLspiIAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "w_0, w_1 = 2, 3 # Fix w values\n", "sample_size = 500 # Fix the sample size - train\n", "\n", "X, y = data_simulation(sample_size, w_0, w_1)\n", "X = [np.ones(len(y)), X]\n", "X = np.asarray(X ).T\n", "\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)\n", "scatter_plot(X_train[:, 1], X_test [:, 1], y_train, y_test) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.2.2 The OLS estimators\n", "\n", "**Questions**: \n", "1. Given the expression of the least squares estimators presented on Slide 31 of the course, complete the OLS function below to obtain the least squares estimators. As a reminder, these estimators are defined as follows:\n", "\n", "$$ \\hat{\\bf{w}}^{\\text{OLS}} := (\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\bf{y}$$\n", "\n", "where $\\bf{X}$ is the [design matrix](https://en.wikipedia.org/wiki/Design_matrix#:~:text=In%20statistics%2C%20a%20design%20matrix,specific%20values%20for%20that%20object.) and $\\bf{y}$ is the output vector.\n", "\n", "2. Derive the estimators associated with the previously simulated data.\n", "\n", "*Remark*: Do not forget to calculate the intercept $\\bf{w}_0$. This being said and according to the above OLS function, simply fill the first column of the design matrix with ones as suggested [here](https://en.wikipedia.org/wiki/Design_matrix#:~:text=In%20statistics%2C%20a%20design%20matrix,specific%20values%20for%20that%20object.)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Answer**:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def OLS(X, y): \n", " \"\"\"\n", " X: design matrix\n", " y: output vector\n", " \n", " return: array of weights\n", " \"\"\"\n", " \n", " A = np.linalg.inv(np.dot(X.T, X)) # (X^T * X)^-1\n", " B = np.dot(X.T, y) # (X^T * y)\n", " \n", " return (...)\n", "\n", "w_ols = OLS(X_train, y_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question**: Make predictions on training and test sets and compute the associated MSE. are the results obtained those hoped for?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Answer**:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Train set\n", "y_hat_train = (...)\n", "\n", "# Test set\n", "y_hat_test = (...)\n", "\n", "print('MSE of the train: ', MSE(y_hat_train, y_train))\n", "print('MSE of the test: ', MSE(y_hat_test, y_test))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1.2.2.1 Bias of the OLS estimators\n", "\n", "**Question**: Calculate the bias of the estimators." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Answer**:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "bias = (...) # bias[0] should be the bias of w_0, and bias[1] should be the bias of w_1\n", "\n", "print(\"Bias of w_0: \", bias[0]) # Bias of w_0\n", "print(\"Bias of the w_1: \", bias[1]) # Bias of w_1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question**: Does it make sense?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Answer**: Indeed! Since the OLS estimator in the contexrt of a linear regression unbiased:\n", "\n", "\\begin{align}\n", " \\mathbb{E}[\\hat{\\bf{w}}^{\\text{OLS}}] \n", " &= \\mathbb{E}[(\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\bf{y}] \\\\\n", " &= (\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\mathbb{E}[\\bf{y}] \\\\\n", " &= (\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\mathbb{E}[\\bf{X} \\bf{w} + \\bf{\\epsilon}] \\\\\n", " &= (\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\{ \\mathbb{E}[\\bf{X} \\bf{w}] + \\mathbb{E}[\\bf{\\epsilon}] \\} \\\\\n", " &= (\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\{ \\bf{X} \\bf{w} + \\bf{O} \\} \\\\\n", " &= (\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\bf{X} \\bf{w} \\\\\n", " &= \\bf{w}\n", "\\end{align}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question**: How could we reduce the observed bias of the OLS estimators?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Answer**: " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1.2.2.2 Variance of the OLS estimators (skip if you are short on time) \n", "\n", "The OLS estimators calculated in the last section have no fixed values and are actually [random variables](https://en.wikipedia.org/wiki/Random_variable). It follows that these estimators have variance. This variance can be estimated in several ways. In this tutorial, we propose to estimate the variance of the OLS estimators in two different ways. The first approach use [Monte Carlo methods](https://en.wikipedia.org/wiki/Monte_Carlo_method#Use_in_mathematics) and the second one simply use [theoretical properties of the variance](https://en.wikipedia.org/wiki/Variance#Properties).\n", "\n", "\n", "#### Monte Carlo methods\n", "\n", "Don't be intimidated by the name, basic Monte Carlo methods are rather simple! As far as we are concerned, we can compute the variance of the OLS estimators in 4 easy steps." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question**: Complete the code below according to the commentaries." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Answer**:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'np' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mmc_estimates\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m10000\u001b[0m \u001b[0;31m# Fix the number of Monte Carlo estimates that you want to run\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mM\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mzeros\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmc_estimates\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# Initialize a matrix where you will store the estimators\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 7\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;31m# Step 1: Create a for loop\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'np' is not defined" ] } ], "source": [ "# The intuition behind this procedure is that we will reestimate the parameters (estimators) \n", "# using multiple different data sets. Each dataset is sampled from the same distribution. \n", "# We can then obtain the estimator variance empirically from these multiple estimators.\n", "\n", "mc_estimates = 10000 # Fix the number of Monte Carlo estimates that you want to run\n", "M = np.zeros((mc_estimates, 2)) # Initialize a matrix where you will store the estimators\n", "\n", "# Step 1: Create a for loop \n", "for k in np.arange(mc_estimates):\n", " \n", " # Step 2: Data simulation\n", " x, y = (...)\n", " \n", " X = [np.ones(len(y)), x] \n", " X = np.asarray(X).T\n", " \n", " # Step 3: OLS estimates\n", " w_ols = (...)\n", " M[k, :] = w_ols # Store the estimators\n", " \n", "# Step 4: Compute the variance of w_0 and w_1 (hint: np.var)\n", "var = (...)\n", "\n", "print(\"MC estimate of the variance of the w_0 estimate: \", (...)) # Variance of w_0\n", "print(\"MC estimate of the variance of the w_1 estimate: \", (...)) # Variance of w_1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Analytical approach\n", "\n", "In cases where we cannot compute the MC estimators, we can sometimes derive the analytical expression of the variance of the estimators. Indeed, the variance of the OLS is:\n", "\n", "\\begin{align}\n", " \\text{Var}(\\hat{\\bf{w}}^{\\text{OLS}}) \n", " &= \\text{Var}\\left((\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\bf{y}\\right) && \\text{Definition of the OLS estimators} \\\\\n", " &= (\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\text{Var} (\\bf{y})\\left((\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\right)^\\top && \\text{Property of the variance on matrices} \\\\\n", " &= (\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\text{Var} (\\bf{y}) \\bf{X}\\left((\\bf{X}^\\top \\bf{X})^{-1} \\right)^\\top && \\text{Property of the transpose} \\\\\n", " &= (\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\text{Var}(\\bf{X} \\bf{w} + \\bf{\\epsilon}) \\ \\bf{X}\\left((\\bf{X}^\\top \\bf{X})^{-1} \\right)^\\top && \\text{Modelization of the data}\\\\\n", " &= (\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\text{Var}(\\bf{\\epsilon}) \\ \\bf{X}\\left((\\bf{X}^\\top \\bf{X})^{-1} \\right)^\\top && \\text{Property of the variance (only $\\epsilon$ is a random variable)} \\\\\n", " &= (\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\bf{I} \\ \\bf{X}\\left((\\bf{X}^\\top \\bf{X})^{-1} \\right)^\\top && \\text{Since $\\epsilon$ is iid}\\\\\n", " &= (\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\bf{X}\\left((\\bf{X}^\\top \\bf{X})^{-1} \\right)^\\top \\\\\n", " &= \\left((\\bf{X}^\\top \\bf{X})^{-1} \\right)^\\top \\\\\n", " &= (\\bf{X}^\\top \\bf{X})^{-1} && \\text{Since $\\bf{X}^\\top \\bf{X}$ is symetric and by property of the inverse of a matrix}\n", "\\end{align}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question**: Compute the variance of the OLS estimators according to the above expression." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Answer**:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Computation\n", "var = (...)\n", "\n", "# Interest\n", "print(\"Analytical variance of the w_0 estimate: \", (...)) \n", "print(\"Analytical variance of the w_1 estimate: \", (...)) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question**: Do the last results make sense given the MC estimates previously calculated?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Answer**: Yes! The analytical estimates of the variance of the OLS estimators are approximately the same as those obtained by MC methods." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.2.3 OLS estimators with L2-Regularization\n", "\n", "As pointed out in Slide 45, we can add an L$_2$ regularization on the weights of the linear model defined in Section 1.1. The associated estimators are known as the [Ridge or Tikhonov estimator](https://en.wikipedia.org/wiki/Tikhonov_regularization) and are defined as\n", "\n", "$$ \\hat{w}^{\\text{ridge}} := (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} \\bf{X}^\\top \\bf{y}$$\n", "\n", "where $\\lambda$ is a hyperparameter (see Slides 45 and 46) which control the model's capacity. \n", "\n", "**Question**: Given the above expression, complete the ridge function below to obtain the ridge estimators." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Answer**:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def ridge(X, y, lambda_hp):\n", " \n", " \"\"\"\n", " X: design matrix\n", " y: output vector\n", " lambda_hp: hyper parameter\n", " \n", " return: array of weights\n", " \"\"\"\n", " \n", " return (...)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question**: Compute the ridge estimators for different values of $\\lambda$. But first, try to understand how the ridge estimator will behave according to these 3 scenarios:\n", "\n", "1. For $\\lambda = 0$. \n", "2. For $\\lambda = 10^{10}$.\n", "3. How the estimators generally behave according to $\\lambda$? " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Answers**:\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [ "lambda_hp = 10**3\n", "w_ridge = ridge(X_train, y_train, lambda_hp)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question**: Make predictions on the training and test sets. Are these predictions better than the predictions made by the OLS estimators?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Answer**:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Train set\n", "y_hat_train = (...)\n", "\n", "# Test set\n", "y_hat_test = (...)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1.2.3.1 Bias of the ridge estimators\n", "\n", "**Question**: Calculate the bias of the estimators." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Answer**:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "bias = (...)\n", "\n", "print(\"Bias of w_0: \", bias[0]) # Bias of w_0\n", "print(\"Bias of the w_1: \", bias[1]) # Bias of w_1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question**: Compare the bias of the ridge estimators with those of the OLS. Does it make sense?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Answer**: We can see that the Rigde estimators are biased. \n", "\n", "\\begin{align}\n", " \\mathbb{E}[\\hat{\\bf{w}}^{\\text{ridge}}] \n", " &= \\mathbb{E}[(\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} \\bf{X}^\\top \\bf{y}] \\\\\n", " &= (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} \\bf{X}^\\top \\mathbb{E}[\\bf{y}] \\\\\n", " &= (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} \\bf{X}^\\top \\mathbb{E}[\\bf{X} \\bf{w} + \\bf{\\epsilon}] \\\\\n", " &= (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} \\bf{X}^\\top \\{ \\mathbb{E}[\\bf{X} \\bf{w}] + \\mathbb{E}[\\bf{\\epsilon}] \\} \\\\\n", " &= (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} \\bf{X}^\\top \\{ \\bf{X} \\bf{w} + \\bf{O} \\} \\\\\n", " &= (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} \\bf{X}^\\top \\bf{X} \\bf{w} \\\\\n", " &= (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I} - \\lambda \\bf{I} ) \\bf{w} \\\\\n", " &= (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I}) \\bf{w} - (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1}\\lambda \\bf{I} \\bf{w} \\\\\n", " &= \\bf{w} - \\lambda (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} \\bf{w}.\n", "\\end{align}\n", "\n", "Hence, the bias of the ridge estimator is:\n", "$$ \\text{Bias}(\\hat{\\bf{w}}^{\\text{ridge}}) = - \\lambda (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} \\bf{w} $$\n", "\n", "Note that under classical assumption, its empirical bias is always greater than the one associated to the OLS estimator." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Remark**: One question remains: how can choose the hyper parameter value $\\lambda$ of the ridge estimator? The following section will suggest an answer." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.3 Validation - Getting the optimal value of hyperparameters\n", "\n", "Validation can be used (among other techniques) in order to perform model selection and hyperparameter selection. \n", "\n", "The first step is to split the train set into a (smaller) train set and validation set as shown on Slide 49 of the course. \n", "\n", "In Python, we will mostly use the train_test_split function from the [Scikit-learn library](https://scikit-learn.org/) to perform data splitting." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "X_sub_train, X_validation, y_sub_train, y_validation = \\\n", " train_test_split(X_train, y_train, test_size=0.2, random_state=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now study the performance (according to the MSE) of the ridge estimators given a grid of hyperparameter values. \n", "\n", "**Question**: Complete the validation procedure below. " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "losses_stack_sub_train, losses_stack_train = [], []\n", "losses_stack_validation, losses_stack_test = [], []\n", "\n", "for lambda_hp in np.arange(0, 100, 1):\n", " \n", " # Learn the associated parameters (w) associated with the specifc lambda \n", " # (hint: remember your ridge functions)\n", " w_ridge_cv = (...)\n", " \n", " # Make prediction for the sub_train set and the validation set\n", " y_hat_sub_train = (...)\n", " y_hat_validation = (...)\n", " \n", " # Stacking (the appropriate) statistics\n", " losses_stack_sub_train.append(MSE(y_sub_train, y_hat_sub_train))\n", " losses_stack_validation.append(MSE(y_validation, y_hat_validation))\n", " \n", " # Pay attention to the following steps !!!\n", " # why should we train the model on the COMPLETE train set?\n", " w_ridge = ridge(X_train, y_train, lambda_hp)\n", " y_hat_train = np.dot(X_train, w_ridge)\n", " y_hat_test = np.dot(X_test, w_ridge)\n", "\n", " losses_stack_train.append(MSE(y_train, y_hat_train))\n", " losses_stack_test.append(MSE(y_test, y_hat_test))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can select to optimal hyperparameter $\\lambda$. The optimal value will minimize the loss function on the validation set. Note that the selection of the optimal hyper parameter will never be based on the its behavior on the test set!" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [ "cmap = plt.get_cmap(\"tab10\")\n", "\n", "plt.plot(losses_stack_test, label='Test', color=cmap(2))\n", "plt.plot(losses_stack_validation, label='Validation', color=cmap(0))\n", "plt.plot(losses_stack_sub_train, label='Training', color=cmap(1))\n", "\n", "plt.axvline(x=np.argmin(losses_stack_validation),color='red', label='Optimal regularization')\n", "\n", "plt.xlabel('$\\lambda$ regularization')\n", "plt.ylabel('MSE')\n", "leg = plt.gca().legend(loc='center left', bbox_to_anchor=(1, .8))\n", "leg.get_frame().set_alpha(0)\n", "print('The optimal regularization is', np.argmin(losses_stack_validation))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "After all this work, it could be interesting to compare the ridge estimator to the OLS estimator on the test set." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [ "print('TRAIN: OLS estimators: ', losses_stack_train[0])\n", "print('TRAIN: ridge estimators: ', losses_stack_train[np.argmin(losses_stack_validation)])\n", "\n", "print('\\nTEST: OLS estimators: ', losses_stack_test[0])\n", "print('TEST: ridge estimators: ', losses_stack_test[np.argmin(losses_stack_validation)])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.4 Take home messages - Final remarks\n", "\n", "1. Model with high capacity don't necessarily have a lower generalization error.\n", "2. An unbiased estimator (OLS vs Ridge) doesn't necessarily have a lower generalization error.\n", "3. In the specific case where the loss function is based on the MSE, we can decompose the generalization error with respect to the bias and the variance of the associated estimators.\n", "4. Validation procedure is very useful! Be sure to understand the code snippet in Section 1.3!" ] } ], "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.3" } }, "nbformat": 4, "nbformat_minor": 4 }