3315 lines
418 KiB
Plaintext
3315 lines
418 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7ce0c2c8",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"<!-- HTML file automatically generated from DocOnce source (https://github.com/doconce/doconce/)\n",
|
||
"doconce format html week37.do.txt --no_mako -->\n",
|
||
"<!-- dom:TITLE: Week 37: Statistical interpretations and Resampling Methods -->"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "3bd9c0ba",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"# Week 37: Statistical interpretations and Resampling Methods\n",
|
||
"**Morten Hjorth-Jensen**, Department of Physics, University of Oslo, Norway\n",
|
||
"\n",
|
||
"Date: **September 9, 2024**\n",
|
||
"\n",
|
||
"<!-- todo add link to videos and add link to Van Wieringens notes -->"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "be6135df",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Plans for week 37, lecture Monday\n",
|
||
"\n",
|
||
"**Material for the lecture on Monday September 9.**\n",
|
||
"\n",
|
||
" * [Video of Lecture](https://youtu.be/omLmp_kkie0)\n",
|
||
"\n",
|
||
" * [Whiteboard notes](https://github.com/CompPhysics/MachineLearning/blob/master/doc/HandWrittenNotes/2024/NotesSeptember9.pdf)\n",
|
||
"\n",
|
||
" * Statistical interpretation of Ridge and Lasso regression, see also slides from last week\n",
|
||
"\n",
|
||
" * Resampling techniques, Bootstrap and cross validation and bias-variance tradeoff (this may partly be discussed during the exercise sessions as well.\n",
|
||
"\n",
|
||
" * Readings and Videos:\n",
|
||
" * Raschka et al, pages 175-192\n",
|
||
"\n",
|
||
" * Hastie et al Chapter 7, here we recommend 7.1-7.5 and 7.10 (cross-validation) and 7.11 (bootstrap). See <https://link.springer.com/book/10.1007/978-0-387-84858-7>.\n",
|
||
"\n",
|
||
" * [Video on cross validation](https://www.youtube.com/watch?v=fSytzGwwBVw)\n",
|
||
"\n",
|
||
" * [Video on Bootstrapping](https://www.youtube.com/watch?v=Xz0x-8-cgaQ)\n",
|
||
"\n",
|
||
" * [Video on bias-variance tradeoff](https://www.youtube.com/watch?v=EuBBz3bI-aA)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "3ac97fd3",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Plans for week 37, lab sessions\n",
|
||
"\n",
|
||
"**Material for the lab sessions on Tuesday and Wednesday.**\n",
|
||
"\n",
|
||
" * Calculations of expectation values\n",
|
||
"\n",
|
||
" * Discussion of resampling techniques\n",
|
||
"\n",
|
||
" * Exercise set for week 37\n",
|
||
"\n",
|
||
" * Work on project 1\n",
|
||
"\n",
|
||
" * [Video of exercise sessions week 37](https://youtu.be/bK4AEcTu-oM)\n",
|
||
"\n",
|
||
" * For more discussions of Ridge regression and calculation of averages, [Wessel van Wieringen's](https://arxiv.org/abs/1509.09169) article is highly recommended."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7010206d",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Material for lecture Monday September 9"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "2467ccb1",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Deriving OLS from a probability distribution\n",
|
||
"\n",
|
||
"Our basic assumption when we derived the OLS equations was to assume\n",
|
||
"that our output is determined by a given continuous function\n",
|
||
"$f(\\boldsymbol{x})$ and a random noise $\\boldsymbol{\\epsilon}$ given by the normal\n",
|
||
"distribution with zero mean value and an undetermined variance\n",
|
||
"$\\sigma^2$.\n",
|
||
"\n",
|
||
"We found above that the outputs $\\boldsymbol{y}$ have a mean value given by\n",
|
||
"$\\boldsymbol{X}\\hat{\\boldsymbol{\\beta}}$ and variance $\\sigma^2$. Since the entries to\n",
|
||
"the design matrix are not stochastic variables, we can assume that the\n",
|
||
"probability distribution of our targets is also a normal distribution\n",
|
||
"but now with mean value $\\boldsymbol{X}\\hat{\\boldsymbol{\\beta}}$. This means that a\n",
|
||
"single output $y_i$ is given by the Gaussian distribution"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "4e2b9f77",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"y_i\\sim \\mathcal{N}(\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta}, \\sigma^2)=\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "aa3e18f2",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Independent and Identically Distrubuted (iid)\n",
|
||
"\n",
|
||
"We assume now that the various $y_i$ values are stochastically distributed according to the above Gaussian distribution. \n",
|
||
"We define this distribution as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "a9836e09",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(y_i, \\boldsymbol{X}\\vert\\boldsymbol{\\beta})=\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "81c40e6c",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"which reads as finding the likelihood of an event $y_i$ with the input variables $\\boldsymbol{X}$ given the parameters (to be determined) $\\boldsymbol{\\beta}$.\n",
|
||
"\n",
|
||
"Since these events are assumed to be independent and identicall distributed we can build the probability distribution function (PDF) for all possible event $\\boldsymbol{y}$ as the product of the single events, that is we have"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "fd6babf0",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(\\boldsymbol{y},\\boldsymbol{X}\\vert\\boldsymbol{\\beta})=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}=\\prod_{i=0}^{n-1}p(y_i,\\boldsymbol{X}\\vert\\boldsymbol{\\beta}).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "71dfe09f",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"We will write this in a more compact form reserving $\\boldsymbol{D}$ for the domain of events, including the ouputs (targets) and the inputs. That is\n",
|
||
"in case we have a simple one-dimensional input and output case"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "90f49395",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\\dots, (x_{n-1},y_{n-1})].\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "eb1d8923",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"In the more general case the various inputs should be replaced by the possible features represented by the input data set $\\boldsymbol{X}$. \n",
|
||
"We can now rewrite the above probability as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "a3b37065",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(\\boldsymbol{D}\\vert\\boldsymbol{\\beta})=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "092a8fe2",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"It is a conditional probability (see below) and reads as the likelihood of a domain of events $\\boldsymbol{D}$ given a set of parameters $\\boldsymbol{\\beta}$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "f15ab83a",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Maximum Likelihood Estimation (MLE)\n",
|
||
"\n",
|
||
"In statistics, maximum likelihood estimation (MLE) is a method of\n",
|
||
"estimating the parameters of an assumed probability distribution,\n",
|
||
"given some observed data. This is achieved by maximizing a likelihood\n",
|
||
"function so that, under the assumed statistical model, the observed\n",
|
||
"data is the most probable. \n",
|
||
"\n",
|
||
"We will assume here that our events are given by the above Gaussian\n",
|
||
"distribution and we will determine the optimal parameters $\\beta$ by\n",
|
||
"maximizing the above PDF. However, computing the derivatives of a\n",
|
||
"product function is cumbersome and can easily lead to overflow and/or\n",
|
||
"underflowproblems, with potentials for loss of numerical precision.\n",
|
||
"\n",
|
||
"In practice, it is more convenient to maximize the logarithm of the\n",
|
||
"PDF because it is a monotonically increasing function of the argument.\n",
|
||
"Alternatively, and this will be our option, we will minimize the\n",
|
||
"negative of the logarithm since this is a monotonically decreasing\n",
|
||
"function.\n",
|
||
"\n",
|
||
"Note also that maximization/minimization of the logarithm of the PDF\n",
|
||
"is equivalent to the maximization/minimization of the function itself."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5ed97aa3",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## A new Cost Function\n",
|
||
"\n",
|
||
"We could now define a new cost function to minimize, namely the negative logarithm of the above PDF"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7b570c43",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"C(\\boldsymbol{\\beta}=-\\log{\\prod_{i=0}^{n-1}p(y_i,\\boldsymbol{X}\\vert\\boldsymbol{\\beta})}=-\\sum_{i=0}^{n-1}\\log{p(y_i,\\boldsymbol{X}\\vert\\boldsymbol{\\beta})},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "8a82d943",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"which becomes"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "a9fe176c",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"C(\\boldsymbol{\\beta}=\\frac{n}{2}\\log{2\\pi\\sigma^2}+\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "720c650c",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"Taking the derivative of the *new* cost function with respect to the parameters $\\beta$ we recognize our familiar OLS equation, namely"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "4c13afe3",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\boldsymbol{X}^T\\left(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\right) =0,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "f23aa0de",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"which leads to the well-known OLS equation for the optimal paramters $\\beta$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "cc0ec7c0",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{\\boldsymbol{\\beta}}^{\\mathrm{OLS}}=\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y}!\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "71275e73",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"Before we make a similar analysis for Ridge and Lasso regression, we need a short reminder on statistics."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "4c41ecf0",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## More basic Statistics and Bayes' theorem\n",
|
||
"\n",
|
||
"A central theorem in statistics is Bayes' theorem. This theorem plays a similar role as the good old Pythagoras' theorem in geometry.\n",
|
||
"Bayes' theorem is extremely simple to derive. But to do so we need some basic axioms from statistics.\n",
|
||
"\n",
|
||
"Assume we have two domains of events $X=[x_0,x_1,\\dots,x_{n-1}]$ and $Y=[y_0,y_1,\\dots,y_{n-1}]$.\n",
|
||
"\n",
|
||
"We define also the likelihood for $X$ and $Y$ as $p(X)$ and $p(Y)$ respectively.\n",
|
||
"The likelihood of a specific event $x_i$ (or $y_i$) is then written as $p(X=x_i)$ or just $p(x_i)=p_i$. \n",
|
||
"\n",
|
||
"**Union of events is given by.**"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "890ba6f9",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(X \\cup Y)= p(X)+p(Y)-p(X \\cap Y).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "dfcd3bf6",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"**The product rule (aka joint probability) is given by.**"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "956837e7",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(X \\cup Y)= p(X,Y)= p(X\\vert Y)p(Y)=p(Y\\vert X)p(X),\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "d3802c8c",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"where we read $p(X\\vert Y)$ as the likelihood of obtaining $X$ given $Y$.\n",
|
||
"\n",
|
||
"If we have independent events then $p(X,Y)=p(X)p(Y)$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "95db199e",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Marginal Probability\n",
|
||
"\n",
|
||
"The marginal probability is defined in terms of only one of the set of variables $X,Y$. For a discrete probability we have"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "57fb6f6a",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(X)=\\sum_{i=0}^{n-1}p(X,Y=y_i)=\\sum_{i=0}^{n-1}p(X\\vert Y=y_i)p(Y=y_i)=\\sum_{i=0}^{n-1}p(X\\vert y_i)p(y_i).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ea33fe6b",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Conditional Probability\n",
|
||
"\n",
|
||
"The conditional probability, if $p(Y) > 0$, is"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5705568f",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(X\\vert Y)= \\frac{p(X,Y)}{p(Y)}=\\frac{p(X,Y)}{\\sum_{i=0}^{n-1}p(Y\\vert X=x_i)p(x_i)}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ef0bee11",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Bayes' Theorem\n",
|
||
"\n",
|
||
"If we combine the conditional probability with the marginal probability and the standard product rule, we have"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7569074e",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(X\\vert Y)= \\frac{p(X,Y)}{p(Y)},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "3cecb6a2",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"which we can rewrite as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "c76a1bc7",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(X\\vert Y)= \\frac{p(X,Y)}{\\sum_{i=0}^{n-1}p(Y\\vert X=x_i)p(x_i)}=\\frac{p(Y\\vert X)p(X)}{\\sum_{i=0}^{n-1}p(Y\\vert X=x_i)p(x_i)},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "d97f5c86",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"which is Bayes' theorem. It allows us to evaluate the uncertainty in in $X$ after we have observed $Y$. We can easily interchange $X$ with $Y$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "6e5646ae",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Interpretations of Bayes' Theorem\n",
|
||
"\n",
|
||
"The quantity $p(Y\\vert X)$ on the right-hand side of the theorem is\n",
|
||
"evaluated for the observed data $Y$ and can be viewed as a function of\n",
|
||
"the parameter space represented by $X$. This function is not\n",
|
||
"necesseraly normalized and is normally called the likelihood function.\n",
|
||
"\n",
|
||
"The function $p(X)$ on the right hand side is called the prior while the function on the left hand side is the called the posterior probability. The denominator on the right hand side serves as a normalization factor for the posterior distribution.\n",
|
||
"\n",
|
||
"Let us try to illustrate Bayes' theorem through an example."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "3a23e77a",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Example of Usage of Bayes' theorem\n",
|
||
"\n",
|
||
"Let us suppose that you are undergoing a series of mammography scans in\n",
|
||
"order to rule out possible breast cancer cases. We define the\n",
|
||
"sensitivity for a positive event by the variable $X$. It takes binary\n",
|
||
"values with $X=1$ representing a positive event and $X=0$ being a\n",
|
||
"negative event. We reserve $Y$ as a classification parameter for\n",
|
||
"either a negative or a positive breast cancer confirmation. (Short note on wordings: positive here means having breast cancer, although none of us would consider this being a positive thing).\n",
|
||
"\n",
|
||
"We let $Y=1$ represent the the case of having breast cancer and $Y=0$ as not.\n",
|
||
"\n",
|
||
"Let us assume that if you have breast cancer, the test will be positive with a probability of $0.8$, that is we have"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7432af91",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(X=1\\vert Y=1) =0.8.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ea23569c",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"This obviously sounds scary since many would conclude that if the test is positive, there is a likelihood of $80\\%$ for having cancer.\n",
|
||
"It is however not correct, as the following Bayesian analysis shows."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "18e40c37",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Doing it correctly\n",
|
||
"\n",
|
||
"If we look at various national surveys on breast cancer, the general likelihood of developing breast cancer is a very small number.\n",
|
||
"Let us assume that the prior probability in the population as a whole is"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5c32a5c2",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(Y=1) =0.004.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b84fb7fb",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"We need also to account for the fact that the test may produce a false positive result (false alarm). Let us here assume that we have"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "2c3b605b",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(X=1\\vert Y=0) =0.1.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "d05ca03a",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"Using Bayes' theorem we can then find the posterior probability that the person has breast cancer in case of a positive test, that is we can compute"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "4f4cee49",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(Y=1\\vert X=1)=\\frac{p(X=1\\vert Y=1)p(Y=1)}{p(X=1\\vert Y=1)p(Y=1)+p(X=1\\vert Y=0)p(Y=0)}=\\frac{0.8\\times 0.004}{0.8\\times 0.004+0.1\\times 0.996}=0.031.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "4176d701",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"That is, in case of a positive test, there is only a $3\\%$ chance of having breast cancer!"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5ad8813c",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Bayes' Theorem and Ridge and Lasso Regression\n",
|
||
"\n",
|
||
"Using Bayes' theorem we can gain a better intuition about Ridge and Lasso regression. \n",
|
||
"\n",
|
||
"For ordinary least squares we postulated that the maximum likelihood for the doamin of events $\\boldsymbol{D}$ (one-dimensional case)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "450006d9",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\\dots, (x_{n-1},y_{n-1})],\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "1b2173c5",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"is given by"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "10b2d8ce",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(\\boldsymbol{D}\\vert\\boldsymbol{\\beta})=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "a18147f9",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"In Bayes' theorem this function plays the role of the so-called likelihood. We could now ask the question what is the posterior probability of a parameter set $\\boldsymbol{\\beta}$ given a domain of events $\\boldsymbol{D}$? That is, how can we define the posterior probability"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "3214dac3",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(\\boldsymbol{\\beta}\\vert\\boldsymbol{D}).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "bd650eeb",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"Bayes' theorem comes to our rescue here since (omitting the normalization constant)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "08d630ed",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(\\boldsymbol{\\beta}\\vert\\boldsymbol{D})\\propto p(\\boldsymbol{D}\\vert\\boldsymbol{\\beta})p(\\boldsymbol{\\beta}).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "582ebf85",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"We have a model for $p(\\boldsymbol{D}\\vert\\boldsymbol{\\beta})$ but need one for the **prior** $p(\\boldsymbol{\\beta})$!"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "1a53c784",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Ridge and Bayes\n",
|
||
"\n",
|
||
"With the posterior probability defined by a likelihood which we have\n",
|
||
"already modeled and an unknown prior, we are now ready to make\n",
|
||
"additional models for the prior.\n",
|
||
"\n",
|
||
"We can, based on our discussions of the variance of $\\boldsymbol{\\beta}$ and the mean value, assume that the prior for the values $\\boldsymbol{\\beta}$ is given by a Gaussian with mean value zero and variance $\\tau^2$, that is"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "89f8d622",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(\\boldsymbol{\\beta})=\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\beta_j^2}{2\\tau^2}\\right)}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "f1138958",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"Our posterior probability becomes then (omitting the normalization factor which is just a constant)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "c4b8fdc1",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(\\boldsymbol{\\beta\\vert\\boldsymbol{D})}=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\beta_j^2}{2\\tau^2}\\right)}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "0e65c2b7",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"We can now optimize this quantity with respect to $\\boldsymbol{\\beta}$. As we\n",
|
||
"did for OLS, this is most conveniently done by taking the negative\n",
|
||
"logarithm of the posterior probability. Doing so and leaving out the\n",
|
||
"constants terms that do not depend on $\\beta$, we have"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "4f7bc40c",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"C(\\boldsymbol{\\beta})=\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}+\\frac{1}{2\\tau^2}\\vert\\vert\\boldsymbol{\\beta}\\vert\\vert_2^2,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "f1c44499",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"and replacing $1/2\\tau^2$ with $\\lambda$ we have"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "215c872a",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"C(\\boldsymbol{\\beta})=\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}+\\lambda\\vert\\vert\\boldsymbol{\\beta}\\vert\\vert_2^2,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "a248bb79",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"which is our Ridge cost function! Nice, isn't it?"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "bdc951a2",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Lasso and Bayes\n",
|
||
"\n",
|
||
"To derive the Lasso cost function, we simply replace the Gaussian prior with an exponential distribution ([Laplace in this case](https://en.wikipedia.org/wiki/Laplace_distribution)) with zero mean value, that is"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ce54b5ff",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(\\boldsymbol{\\beta})=\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\vert\\beta_j\\vert}{\\tau}\\right)}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "a158d0d6",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"Our posterior probability becomes then (omitting the normalization factor which is just a constant)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b1010f4a",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"p(\\boldsymbol{\\beta}\\vert\\boldsymbol{D})=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\vert\\beta_j\\vert}{\\tau}\\right)}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "48b806e1",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"Taking the negative\n",
|
||
"logarithm of the posterior probability and leaving out the\n",
|
||
"constants terms that do not depend on $\\beta$, we have"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "4e3090e9",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"C(\\boldsymbol{\\beta})=\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}+\\frac{1}{\\tau}\\vert\\vert\\boldsymbol{\\beta}\\vert\\vert_1,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "af23d3a1",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"and replacing $1/\\tau$ with $\\lambda$ we have"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "72d5f20a",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"C(\\boldsymbol{\\beta})=\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}+\\lambda\\vert\\vert\\boldsymbol{\\beta}\\vert\\vert_1,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "45d3140f",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"which is our Lasso cost function!"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "6c40d9a0",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Why resampling methods\n",
|
||
"\n",
|
||
"Before we proceed, we need to rethink what we have been doing. In our\n",
|
||
"eager to fit the data, we have omitted several important elements in\n",
|
||
"our regression analysis. In what follows we will\n",
|
||
"1. look at statistical properties, including a discussion of mean values, variance and the so-called bias-variance tradeoff\n",
|
||
"\n",
|
||
"2. introduce resampling techniques like cross-validation, bootstrapping and jackknife and more\n",
|
||
"\n",
|
||
"and discuss how to select a given model (one of the difficult parts in machine learning)."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "bc0ed879",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Resampling methods\n",
|
||
"Resampling methods are an indispensable tool in modern\n",
|
||
"statistics. They involve repeatedly drawing samples from a training\n",
|
||
"set and refitting a model of interest on each sample in order to\n",
|
||
"obtain additional information about the fitted model. For example, in\n",
|
||
"order to estimate the variability of a linear regression fit, we can\n",
|
||
"repeatedly draw different samples from the training data, fit a linear\n",
|
||
"regression to each new sample, and then examine the extent to which\n",
|
||
"the resulting fits differ. Such an approach may allow us to obtain\n",
|
||
"information that would not be available from fitting the model only\n",
|
||
"once using the original training sample.\n",
|
||
"\n",
|
||
"Two resampling methods are often used in Machine Learning analyses,\n",
|
||
"1. The **bootstrap method**\n",
|
||
"\n",
|
||
"2. and **Cross-Validation**\n",
|
||
"\n",
|
||
"In addition there are several other methods such as the Jackknife and the Blocking methods. We will discuss in particular\n",
|
||
"cross-validation and the bootstrap method."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "a2f50278",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Resampling approaches can be computationally expensive\n",
|
||
"\n",
|
||
"Resampling approaches can be computationally expensive, because they\n",
|
||
"involve fitting the same statistical method multiple times using\n",
|
||
"different subsets of the training data. However, due to recent\n",
|
||
"advances in computing power, the computational requirements of\n",
|
||
"resampling methods generally are not prohibitive. In this chapter, we\n",
|
||
"discuss two of the most commonly used resampling methods,\n",
|
||
"cross-validation and the bootstrap. Both methods are important tools\n",
|
||
"in the practical application of many statistical learning\n",
|
||
"procedures. For example, cross-validation can be used to estimate the\n",
|
||
"test error associated with a given statistical learning method in\n",
|
||
"order to evaluate its performance, or to select the appropriate level\n",
|
||
"of flexibility. The process of evaluating a model’s performance is\n",
|
||
"known as model assessment, whereas the process of selecting the proper\n",
|
||
"level of flexibility for a model is known as model selection. The\n",
|
||
"bootstrap is widely used."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "d05b795a",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Why resampling methods ?\n",
|
||
"**Statistical analysis.**\n",
|
||
"\n",
|
||
"* Our simulations can be treated as *computer experiments*. This is particularly the case for Monte Carlo methods which are widely used in statistical analyses.\n",
|
||
"\n",
|
||
"* The results can be analysed with the same statistical tools as we would use when analysing experimental data.\n",
|
||
"\n",
|
||
"* As in all experiments, we are looking for expectation values and an estimate of how accurate they are, i.e., possible sources for errors."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "61291aec",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Statistical analysis\n",
|
||
"\n",
|
||
"* As in other experiments, many numerical experiments have two classes of errors:\n",
|
||
"\n",
|
||
" * Statistical errors\n",
|
||
"\n",
|
||
" * Systematical errors\n",
|
||
"\n",
|
||
"* Statistical errors can be estimated using standard tools from statistics\n",
|
||
"\n",
|
||
"* Systematical errors are method specific and must be treated differently from case to case."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "e0053e66",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Resampling methods\n",
|
||
"\n",
|
||
"With all these analytical equations for both the OLS and Ridge\n",
|
||
"regression, we will now outline how to assess a given model. This will\n",
|
||
"lead to a discussion of the so-called bias-variance tradeoff (see\n",
|
||
"below) and so-called resampling methods.\n",
|
||
"\n",
|
||
"One of the quantities we have discussed as a way to measure errors is\n",
|
||
"the mean-squared error (MSE), mainly used for fitting of continuous\n",
|
||
"functions. Another choice is the absolute error.\n",
|
||
"\n",
|
||
"In the discussions below we will focus on the MSE and in particular since we will split the data into test and training data,\n",
|
||
"we discuss the\n",
|
||
"1. prediction error or simply the **test error** $\\mathrm{Err_{Test}}$, where we have a fixed training set and the test error is the MSE arising from the data reserved for testing. We discuss also the \n",
|
||
"\n",
|
||
"2. training error $\\mathrm{Err_{Train}}$, which is the average loss over the training data.\n",
|
||
"\n",
|
||
"As our model becomes more and more complex, more of the training data tends to used. The training may thence adapt to more complicated structures in the data. This may lead to a decrease in the bias (see below for code example) and a slight increase of the variance for the test error.\n",
|
||
"For a certain level of complexity the test error will reach minimum, before starting to increase again. The\n",
|
||
"training error reaches a saturation."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5bc0cc49",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Resampling methods: Bootstrap\n",
|
||
"Bootstrapping is a [non-parametric approach](https://en.wikipedia.org/wiki/Nonparametric_statistics) to statistical inference\n",
|
||
"that substitutes computation for more traditional distributional\n",
|
||
"assumptions and asymptotic results. Bootstrapping offers a number of\n",
|
||
"advantages: \n",
|
||
"1. The bootstrap is quite general, although there are some cases in which it fails. \n",
|
||
"\n",
|
||
"2. Because it does not require distributional assumptions (such as normally distributed errors), the bootstrap can provide more accurate inferences when the data are not well behaved or when the sample size is small. \n",
|
||
"\n",
|
||
"3. It is possible to apply the bootstrap to statistics with sampling distributions that are difficult to derive, even asymptotically. \n",
|
||
"\n",
|
||
"4. It is relatively simple to apply the bootstrap to complex data-collection plans (such as stratified and clustered samples).\n",
|
||
"\n",
|
||
"The textbook by [Davison on the Bootstrap Methods and their Applications](https://www.cambridge.org/core/books/bootstrap-methods-and-their-application/ED2FD043579F27952363566DC09CBD6A) provides many more insights and proofs. In this course we will take a more practical approach and use the results and theorems provided in the literature. For those interested in reading more about the bootstrap methods, we recommend the above text and the one by [Efron and Tibshirani](https://www.routledge.com/An-Introduction-to-the-Bootstrap/Efron-Tibshirani/p/book/9780412042317).\n",
|
||
"\n",
|
||
"Before we proceed however, we need to remind ourselves about a central theorem in statistics, namely the so-called **central limit theorem**."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "61de3a3e",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## The Central Limit Theorem\n",
|
||
"\n",
|
||
"Suppose we have a PDF $p(x)$ from which we generate a series $N$\n",
|
||
"of averages $\\mathbb{E}[x_i]$. Each mean value $\\mathbb{E}[x_i]$\n",
|
||
"is viewed as the average of a specific measurement, e.g., throwing \n",
|
||
"dice 100 times and then taking the average value, or producing a certain\n",
|
||
"amount of random numbers. \n",
|
||
"For notational ease, we set $\\mathbb{E}[x_i]=x_i$ in the discussion\n",
|
||
"which follows. We do the same for $\\mathbb{E}[z]=z$.\n",
|
||
"\n",
|
||
"If we compute the mean $z$ of $m$ such mean values $x_i$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "45c40645",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"z=\\frac{x_1+x_2+\\dots+x_m}{m},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "f96414b9",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"the question we pose is which is the PDF of the new variable $z$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "89324724",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Finding the Limit\n",
|
||
"\n",
|
||
"The probability of obtaining an average value $z$ is the product of the \n",
|
||
"probabilities of obtaining arbitrary individual mean values $x_i$,\n",
|
||
"but with the constraint that the average is $z$. We can express this through\n",
|
||
"the following expression"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "c7dc04c2",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\tilde{p}(z)=\\int dx_1p(x_1)\\int dx_2p(x_2)\\dots\\int dx_mp(x_m)\n",
|
||
" \\delta(z-\\frac{x_1+x_2+\\dots+x_m}{m}),\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "451e8d96",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"where the $\\delta$-function enbodies the constraint that the mean is $z$.\n",
|
||
"All measurements that lead to each individual $x_i$ are expected to\n",
|
||
"be independent, which in turn means that we can express $\\tilde{p}$ as the \n",
|
||
"product of individual $p(x_i)$. The independence assumption is important in the derivation of the central limit theorem."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b857136e",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Rewriting the $\\delta$-function\n",
|
||
"\n",
|
||
"If we use the integral expression for the $\\delta$-function"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "81465668",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\delta(z-\\frac{x_1+x_2+\\dots+x_m}{m})=\\frac{1}{2\\pi}\\int_{-\\infty}^{\\infty}\n",
|
||
" dq\\exp{\\left(iq(z-\\frac{x_1+x_2+\\dots+x_m}{m})\\right)},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b145c9fd",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"and inserting $e^{i\\mu q-i\\mu q}$ where $\\mu$ is the mean value\n",
|
||
"we arrive at"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "c2f110e5",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\tilde{p}(z)=\\frac{1}{2\\pi}\\int_{-\\infty}^{\\infty}\n",
|
||
" dq\\exp{\\left(iq(z-\\mu)\\right)}\\left[\\int_{-\\infty}^{\\infty}\n",
|
||
" dxp(x)\\exp{\\left(iq(\\mu-x)/m\\right)}\\right]^m,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "9fffd309",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"with the integral over $x$ resulting in"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "6d1a1c34",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\int_{-\\infty}^{\\infty}dxp(x)\\exp{\\left(iq(\\mu-x)/m\\right)}=\n",
|
||
" \\int_{-\\infty}^{\\infty}dxp(x)\n",
|
||
" \\left[1+\\frac{iq(\\mu-x)}{m}-\\frac{q^2(\\mu-x)^2}{2m^2}+\\dots\\right].\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "3c425d33",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Identifying Terms\n",
|
||
"\n",
|
||
"The second term on the rhs disappears since this is just the mean and \n",
|
||
"employing the definition of $\\sigma^2$ we have"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "d43d6aa9",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\int_{-\\infty}^{\\infty}dxp(x)e^{\\left(iq(\\mu-x)/m\\right)}=\n",
|
||
" 1-\\frac{q^2\\sigma^2}{2m^2}+\\dots,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b8bd4093",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"resulting in"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b46c892b",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\left[\\int_{-\\infty}^{\\infty}dxp(x)\\exp{\\left(iq(\\mu-x)/m\\right)}\\right]^m\\approx\n",
|
||
" \\left[1-\\frac{q^2\\sigma^2}{2m^2}+\\dots \\right]^m,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "0a4fcb69",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"and in the limit $m\\rightarrow \\infty$ we obtain"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "9c6b1478",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\tilde{p}(z)=\\frac{1}{\\sqrt{2\\pi}(\\sigma/\\sqrt{m})}\n",
|
||
" \\exp{\\left(-\\frac{(z-\\mu)^2}{2(\\sigma/\\sqrt{m})^2}\\right)},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "c179621d",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"which is the normal distribution with variance\n",
|
||
"$\\sigma^2_m=\\sigma^2/m$, where $\\sigma$ is the variance of the PDF $p(x)$\n",
|
||
"and $\\mu$ is also the mean of the PDF $p(x)$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "de489be5",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Wrapping it up\n",
|
||
"\n",
|
||
"Thus, the central limit theorem states that the PDF $\\tilde{p}(z)$ of\n",
|
||
"the average of $m$ random values corresponding to a PDF $p(x)$ \n",
|
||
"is a normal distribution whose mean is the \n",
|
||
"mean value of the PDF $p(x)$ and whose variance is the variance\n",
|
||
"of the PDF $p(x)$ divided by $m$, the number of values used to compute $z$.\n",
|
||
"\n",
|
||
"The central limit theorem leads to the well-known expression for the\n",
|
||
"standard deviation, given by"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "43c158c8",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\sigma_m=\n",
|
||
"\\frac{\\sigma}{\\sqrt{m}}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "433141f0",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"The latter is true only if the average value is known exactly. This is obtained in the limit\n",
|
||
"$m\\rightarrow \\infty$ only. Because the mean and the variance are measured quantities we obtain \n",
|
||
"the familiar expression in statistics (the so-called Bessel correction)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "68ffe84c",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\sigma_m\\approx \n",
|
||
"\\frac{\\sigma}{\\sqrt{m-1}}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "c685143d",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"In many cases however the above estimate for the standard deviation,\n",
|
||
"in particular if correlations are strong, may be too simplistic. Keep\n",
|
||
"in mind that we have assumed that the variables $x$ are independent\n",
|
||
"and identically distributed. This is obviously not always the\n",
|
||
"case. For example, the random numbers (or better pseudorandom numbers)\n",
|
||
"we generate in various calculations do always exhibit some\n",
|
||
"correlations.\n",
|
||
"\n",
|
||
"The theorem is satisfied by a large class of PDFs. Note however that for a\n",
|
||
"finite $m$, it is not always possible to find a closed form /analytic expression for\n",
|
||
"$\\tilde{p}(x)$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ff2c6f80",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Confidence Intervals\n",
|
||
"\n",
|
||
"Confidence intervals are used in statistics and represent a type of estimate\n",
|
||
"computed from the observed data. This gives a range of values for an\n",
|
||
"unknown parameter such as the parameters $\\boldsymbol{\\beta}$ from linear regression.\n",
|
||
"\n",
|
||
"With the OLS expressions for the parameters $\\boldsymbol{\\beta}$ we found \n",
|
||
"$\\mathbb{E}(\\boldsymbol{\\beta}) = \\boldsymbol{\\beta}$, which means that the estimator of the regression parameters is unbiased.\n",
|
||
"\n",
|
||
"In the exercises this week we show that the variance of the estimate of the $j$-th regression coefficient is\n",
|
||
"$\\boldsymbol{\\sigma}^2 (\\boldsymbol{\\beta}_j ) = \\boldsymbol{\\sigma}^2 [(\\mathbf{X}^{T} \\mathbf{X})^{-1}]_{jj} $.\n",
|
||
"\n",
|
||
"This quantity can be used to\n",
|
||
"construct a confidence interval for the estimates."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "de45a804",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Standard Approach based on the Normal Distribution\n",
|
||
"\n",
|
||
"We will assume that the parameters $\\beta$ follow a normal\n",
|
||
"distribution. We can then define the confidence interval. Here we will be using as\n",
|
||
"shorthands $\\mu_{\\beta}$ for the above mean value and $\\sigma_{\\beta}$\n",
|
||
"for the standard deviation. We have then a confidence interval"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7b76e657",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\left(\\mu_{\\beta}\\pm \\frac{z\\sigma_{\\beta}}{\\sqrt{n}}\\right),\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "68374b3c",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"where $z$ defines the level of certainty (or confidence). For a normal\n",
|
||
"distribution typical parameters are $z=2.576$ which corresponds to a\n",
|
||
"confidence of $99\\%$ while $z=1.96$ corresponds to a confidence of\n",
|
||
"$95\\%$. A confidence level of $95\\%$ is commonly used and it is\n",
|
||
"normally referred to as a *two-sigmas* confidence level, that is we\n",
|
||
"approximate $z\\approx 2$.\n",
|
||
"\n",
|
||
"For more discussions of confidence intervals (and in particular linked with a discussion of the bootstrap method), see chapter 5 of the textbook by [Davison on the Bootstrap Methods and their Applications](https://www.cambridge.org/core/books/bootstrap-methods-and-their-application/ED2FD043579F27952363566DC09CBD6A)\n",
|
||
"\n",
|
||
"In this text you will also find an in-depth discussion of the\n",
|
||
"Bootstrap method, why it works and various theorems related to it."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "a33b3849",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Resampling methods: Bootstrap background\n",
|
||
"\n",
|
||
"Since $\\widehat{\\beta} = \\widehat{\\beta}(\\boldsymbol{X})$ is a function of random variables,\n",
|
||
"$\\widehat{\\beta}$ itself must be a random variable. Thus it has\n",
|
||
"a pdf, call this function $p(\\boldsymbol{t})$. The aim of the bootstrap is to\n",
|
||
"estimate $p(\\boldsymbol{t})$ by the relative frequency of\n",
|
||
"$\\widehat{\\beta}$. You can think of this as using a histogram\n",
|
||
"in the place of $p(\\boldsymbol{t})$. If the relative frequency closely\n",
|
||
"resembles $p(\\vec{t})$, then using numerics, it is straight forward to\n",
|
||
"estimate all the interesting parameters of $p(\\boldsymbol{t})$ using point\n",
|
||
"estimators."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "3d4a490b",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Resampling methods: More Bootstrap background\n",
|
||
"\n",
|
||
"In the case that $\\widehat{\\beta}$ has\n",
|
||
"more than one component, and the components are independent, we use the\n",
|
||
"same estimator on each component separately. If the probability\n",
|
||
"density function of $X_i$, $p(x)$, had been known, then it would have\n",
|
||
"been straightforward to do this by: \n",
|
||
"1. Drawing lots of numbers from $p(x)$, suppose we call one such set of numbers $(X_1^*, X_2^*, \\cdots, X_n^*)$. \n",
|
||
"\n",
|
||
"2. Then using these numbers, we could compute a replica of $\\widehat{\\beta}$ called $\\widehat{\\beta}^*$. \n",
|
||
"\n",
|
||
"By repeated use of the above two points, many\n",
|
||
"estimates of $\\widehat{\\beta}$ can be obtained. The\n",
|
||
"idea is to use the relative frequency of $\\widehat{\\beta}^*$\n",
|
||
"(think of a histogram) as an estimate of $p(\\boldsymbol{t})$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "293c5a07",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Resampling methods: Bootstrap approach\n",
|
||
"\n",
|
||
"But\n",
|
||
"unless there is enough information available about the process that\n",
|
||
"generated $X_1,X_2,\\cdots,X_n$, $p(x)$ is in general\n",
|
||
"unknown. Therefore, [Efron in 1979](https://projecteuclid.org/euclid.aos/1176344552) asked the\n",
|
||
"question: What if we replace $p(x)$ by the relative frequency\n",
|
||
"of the observation $X_i$?\n",
|
||
"\n",
|
||
"If we draw observations in accordance with\n",
|
||
"the relative frequency of the observations, will we obtain the same\n",
|
||
"result in some asymptotic sense? The answer is yes."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "21a752e9",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Resampling methods: Bootstrap steps\n",
|
||
"\n",
|
||
"The independent bootstrap works like this: \n",
|
||
"\n",
|
||
"1. Draw with replacement $n$ numbers for the observed variables $\\boldsymbol{x} = (x_1,x_2,\\cdots,x_n)$. \n",
|
||
"\n",
|
||
"2. Define a vector $\\boldsymbol{x}^*$ containing the values which were drawn from $\\boldsymbol{x}$. \n",
|
||
"\n",
|
||
"3. Using the vector $\\boldsymbol{x}^*$ compute $\\widehat{\\beta}^*$ by evaluating $\\widehat \\beta$ under the observations $\\boldsymbol{x}^*$. \n",
|
||
"\n",
|
||
"4. Repeat this process $k$ times. \n",
|
||
"\n",
|
||
"When you are done, you can draw a histogram of the relative frequency\n",
|
||
"of $\\widehat \\beta^*$. This is your estimate of the probability\n",
|
||
"distribution $p(t)$. Using this probability distribution you can\n",
|
||
"estimate any statistics thereof. In principle you never draw the\n",
|
||
"histogram of the relative frequency of $\\widehat{\\beta}^*$. Instead\n",
|
||
"you use the estimators corresponding to the statistic of interest. For\n",
|
||
"example, if you are interested in estimating the variance of $\\widehat\n",
|
||
"\\beta$, apply the etsimator $\\widehat \\sigma^2$ to the values\n",
|
||
"$\\widehat \\beta^*$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "8409d109",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Code example for the Bootstrap method\n",
|
||
"\n",
|
||
"The following code starts with a Gaussian distribution with mean value\n",
|
||
"$\\mu =100$ and variance $\\sigma=15$. We use this to generate the data\n",
|
||
"used in the bootstrap analysis. The bootstrap analysis returns a data\n",
|
||
"set after a given number of bootstrap operations (as many as we have\n",
|
||
"data points). This data set consists of estimated mean values for each\n",
|
||
"bootstrap operation. The histogram generated by the bootstrap method\n",
|
||
"shows that the distribution for these mean values is also a Gaussian,\n",
|
||
"centered around the mean value $\\mu=100$ but with standard deviation\n",
|
||
"$\\sigma/\\sqrt{n}$, where $n$ is the number of bootstrap samples (in\n",
|
||
"this case the same as the number of original data points). The value\n",
|
||
"of the standard deviation is what we expect from the central limit\n",
|
||
"theorem."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"id": "82f5a45c",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Bootstrap Statistics :\n",
|
||
"original bias std. error\n",
|
||
" 100.052 15.0095 100.051 0.150055\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"%matplotlib inline\n",
|
||
"\n",
|
||
"import numpy as np\n",
|
||
"from time import time\n",
|
||
"from scipy.stats import norm\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"\n",
|
||
"# Returns mean of bootstrap samples \n",
|
||
"# Bootstrap algorithm\n",
|
||
"def bootstrap(data, datapoints):\n",
|
||
" t = np.zeros(datapoints)\n",
|
||
" n = len(data)\n",
|
||
" # non-parametric bootstrap \n",
|
||
" for i in range(datapoints):\n",
|
||
" t[i] = np.mean(data[np.random.randint(0,n,n)])\n",
|
||
" # analysis \n",
|
||
" print(\"Bootstrap Statistics :\")\n",
|
||
" print(\"original bias std. error\")\n",
|
||
" print(\"%8g %8g %14g %15g\" % (np.mean(data), np.std(data),np.mean(t),np.std(t)))\n",
|
||
" return t\n",
|
||
"\n",
|
||
"# We set the mean value to 100 and the standard deviation to 15\n",
|
||
"mu, sigma = 100, 15\n",
|
||
"datapoints = 10000\n",
|
||
"# We generate random numbers according to the normal distribution\n",
|
||
"x = mu + sigma*np.random.randn(datapoints)\n",
|
||
"# bootstrap returns the data sample \n",
|
||
"t = bootstrap(x, datapoints)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b1c292eb",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"We see that our new variance and from that the standard deviation, agrees with the central limit theorem."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "19a2ff64",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Plotting the Histogram"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"id": "0e3146d6",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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T58ueADAnDlzsHz5ctNtkCCmGscaNWqgcuXKiI2NLbT84sWLqF69ugm25F9mPX2Zymznzp3Sjh07pKtXr0q7d++WmjZtKrVu3brgSqc1a9ZI+/fvl65cuSJt2rRJql69utS3b99C7zFo0CDpo48+Knh+8+ZNydXVVRo9erQUGxsrbd26VfLx8ZE+//xzs26bOZliHCdOnCi5urpKq1atKnjfWrVqSS+99JJZt81U0tPTpVOnTkmnTp2SAEizZ8+WTp06Jd24cUOSJEn68ssvJQ8PD2nz5s3Sn3/+KfXu3VsKDAyUsrOzC96jW7duUvPmzaWjR49Khw8flurUqSMNGDCg4PV//vlHqlevnnT06NGCZW+++aZUrVo1ad++fdLx48el4OBgKTg42HwbbmQixjE1NVVq3bq11LhxY+ny5ctSfHx8wSMvL8+8A2AEor4XHwUrv1pK1DjOmTNHcnNzk9auXStdunRJmjBhguTo6ChdvnzZZNvKcmPhVq9eLdWsWVNycHCQ/Pz8pPDwcCklJaXg9W+++UaqWrWqpFKppGrVqkkTJkyQNBpNofdo3769NGTIkELLjhw5IrVu3VpSq9VSzZo1pS+++MIqf+iVlinGUavVSpMmTZJq1aolOTo6SgEBAdKoUaOk+/fvm2mrTGv//v0SgCKPB2Og0+mkTz/9VPL19ZXUarXUsWNHKTY2ttB7JCUlSQMGDJAqVKggubm5SUOHDpXS09MLXr927ZoEQNq/f3/BsuzsbGnUqFGSp6en5OzsLPXp00eKj483xyabhIhxfNxnApCuXbtmpi03HlHfi4+y9nIjchynT58uVa1aVXJ2dpaCg4OlQ4cOmXRbFZIk8/3nREREZFN4zg0RERHJCssNERERyQrLDREREckKyw0RERHJCssNERERyQrLDREREckKyw0RERHJCssNERERyQrLDREREckKyw0RERHJCssNERERyQrLDRFZvbt378LPzw/Tpk0rWHbkyBE4ODhg7969ApMRkQicOJOIZGH79u0ICwvDkSNHUK9ePTRr1gy9e/fG7NmzRUcjIjNjuSEi2QgPD8eePXvQsmVLnD17Fn/88QfUarXoWERkZiw3RCQb2dnZaNSoEW7duoUTJ06gcePGoiMRkQA854aIZOPKlSuIi4uDTqfD9evXRcchIkG454aIZCE3NxetWrVCs2bNUK9ePcydOxdnz56Fj4+P6GhEZGYsN0QkCx988AHWrVuHM2fOoEKFCmjfvj3c3d2xdetW0dGIyMx4WIqIrN6BAwcwd+5crFy5Em5ublAqlVi5ciUOHTqEhQsXio5HRGbGPTdEREQkK9xzQ0RERLLCckNERESywnJDREREssJyQ0RERLLCckNERESywnJDREREssJyQ0RERLLCckNERESywnJDREREssJyQ0RERLLCckNERESy8v98OSWK1bDO1wAAAABJRU5ErkJggg==",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"filenames": {
|
||
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week37_121_0.png"
|
||
}
|
||
},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# the histogram of the bootstrapped data (normalized data if density = True)\n",
|
||
"n, binsboot, patches = plt.hist(t, 50, density=True, facecolor='red', alpha=0.75)\n",
|
||
"# add a 'best fit' line \n",
|
||
"y = norm.pdf(binsboot, np.mean(t), np.std(t))\n",
|
||
"lt = plt.plot(binsboot, y, 'b', linewidth=1)\n",
|
||
"plt.xlabel('x')\n",
|
||
"plt.ylabel('Probability')\n",
|
||
"plt.grid(True)\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "33a2920b",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## The bias-variance tradeoff\n",
|
||
"\n",
|
||
"We will discuss the bias-variance tradeoff in the context of\n",
|
||
"continuous predictions such as regression. However, many of the\n",
|
||
"intuitions and ideas discussed here also carry over to classification\n",
|
||
"tasks. Consider a dataset $\\mathcal{D}$ consisting of the data\n",
|
||
"$\\mathbf{X}_\\mathcal{D}=\\{(y_j, \\boldsymbol{x}_j), j=0\\ldots n-1\\}$. \n",
|
||
"\n",
|
||
"Let us assume that the true data is generated from a noisy model"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "dcd7d41e",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\boldsymbol{y}=f(\\boldsymbol{x}) + \\boldsymbol{\\epsilon}\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7a13a154",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"where $\\epsilon$ is normally distributed with mean zero and standard deviation $\\sigma^2$.\n",
|
||
"\n",
|
||
"In our derivation of the ordinary least squares method we defined then\n",
|
||
"an approximation to the function $f$ in terms of the parameters\n",
|
||
"$\\boldsymbol{\\beta}$ and the design matrix $\\boldsymbol{X}$ which embody our model,\n",
|
||
"that is $\\boldsymbol{\\tilde{y}}=\\boldsymbol{X}\\boldsymbol{\\beta}$. \n",
|
||
"\n",
|
||
"Thereafter we found the parameters $\\boldsymbol{\\beta}$ by optimizing the means squared error via the so-called cost function"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "12c56a3e",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"C(\\boldsymbol{X},\\boldsymbol{\\beta}) =\\frac{1}{n}\\sum_{i=0}^{n-1}(y_i-\\tilde{y}_i)^2=\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right].\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ded9dfd0",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"We can rewrite this as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5c8be1fb",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right]=\\frac{1}{n}\\sum_i(f_i-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2+\\frac{1}{n}\\sum_i(\\tilde{y}_i-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2+\\sigma^2.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "6ae6d83b",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"The three terms represent the square of the bias of the learning\n",
|
||
"method, which can be thought of as the error caused by the simplifying\n",
|
||
"assumptions built into the method. The second term represents the\n",
|
||
"variance of the chosen model and finally the last terms is variance of\n",
|
||
"the error $\\boldsymbol{\\epsilon}$.\n",
|
||
"\n",
|
||
"To derive this equation, we need to recall that the variance of $\\boldsymbol{y}$ and $\\boldsymbol{\\epsilon}$ are both equal to $\\sigma^2$. The mean value of $\\boldsymbol{\\epsilon}$ is by definition equal to zero. Furthermore, the function $f$ is not a stochastics variable, idem for $\\boldsymbol{\\tilde{y}}$.\n",
|
||
"We use a more compact notation in terms of the expectation value"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ac6ad12e",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right]=\\mathbb{E}\\left[(\\boldsymbol{f}+\\boldsymbol{\\epsilon}-\\boldsymbol{\\tilde{y}})^2\\right],\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "24cd6a77",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"and adding and subtracting $\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right]$ we get"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "82580456",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right]=\\mathbb{E}\\left[(\\boldsymbol{f}+\\boldsymbol{\\epsilon}-\\boldsymbol{\\tilde{y}}+\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right]-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2\\right],\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "542a056a",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"which, using the abovementioned expectation values can be rewritten as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "12d87c8f",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right]=\\mathbb{E}\\left[(\\boldsymbol{y}-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2\\right]+\\mathrm{Var}\\left[\\boldsymbol{\\tilde{y}}\\right]+\\sigma^2,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "661e392d",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"that is the rewriting in terms of the so-called bias, the variance of the model $\\boldsymbol{\\tilde{y}}$ and the variance of $\\boldsymbol{\\epsilon}$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "c92115cc",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## A way to Read the Bias-Variance Tradeoff\n",
|
||
"\n",
|
||
"<!-- dom:FIGURE: [figures/BiasVariance.png, width=600 frac=0.9] -->\n",
|
||
"<!-- begin figure -->\n",
|
||
"\n",
|
||
"<img src=\"figures/BiasVariance.png\" width=\"600\"><p style=\"font-size: 0.9em\"><i>Figure 1: </i></p>\n",
|
||
"<!-- end figure -->"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "555ecab7",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Example code for Bias-Variance tradeoff"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"id": "a1e3bf2d",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Error: 0.013121574015585152\n",
|
||
"Bias^2: 0.012073649446193166\n",
|
||
"Var: 0.0010479245693919886\n",
|
||
"0.013121574015585152 >= 0.012073649446193166 + 0.0010479245693919886 = 0.013121574015585155\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGdCAYAAADAAnMpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACptklEQVR4nOydd5wU9f3/n7N7vffKwdHhAKmigD0iWEDT9GvDFvMTNWqMiWKixBLRRA3xG8s3JootlhgLKh5RlCACoiIKHEXgOI7jGtd72ZnfH7Mzu3u39bh+7+fjcQ+42ZnZz97t7bzmXV5vRdM0DUEQBEEQhD7C0tcLEARBEARhaCNiRBAEQRCEPkXEiCAIgiAIfYqIEUEQBEEQ+hQRI4IgCIIg9CkiRgRBEARB6FNEjAiCIAiC0KeIGBEEQRAEoU8J6usF+IOqqhw9epTo6GgURenr5QiCIAiC4AeaplFXV0dGRgYWi+f4x4AQI0ePHiUrK6uvlyEIgiAIQhcoLCxk2LBhHh8fEGIkOjoa0F9MTExMH69GEARBEAR/qK2tJSsry7yOe2JAiBEjNRMTEyNiRBAEQRAGGL5KLKSAVRAEQRCEPkXEiCAIgiAIfYqIEUEQBEEQ+pQBUTPiD5qm0d7ejs1m6+ulCH1AcHAwVqu1r5chCIIgdIFBIUZaW1spLi6msbGxr5ci9BGKojBs2DCioqL6eimCIAhCgAx4MaKqKvn5+VitVjIyMggJCRFjtCGGpmmUl5dz5MgRxo4dKxESQRCEAcaAFyOtra2oqkpWVhYRERF9vRyhj0hOTubQoUO0tbWJGBEEQRhgDJoCVm82s8LgR6JhgiAIA5cBHxkRBEEQBhY2VWNrfiVldc2kRIcxe2QCVovcUAxlRIwIgiAIvUbuzmLuey+P4ppmc1t6bBjLF+WwcHJ6H65M6Eskt9GHaJrGz3/+cxISElAUhe3bt1NRUUFKSgqHDh3y6xytra1kZ2fz1Vdf9exiBUEQjpPcncUsfXmbixABKKlpZunL28jdWdxHKxP6GhEjfUhubi6rVq3i/fffp7i4mMmTJ/OHP/yBCy+8kOzsbL/OERISwh133MGdd97Zs4sVBEE4Dmyqxn3v5aG5eczYdt97edhUd3sIgx0RI33IgQMHSE9PZ+7cuaSlpdHa2so//vEPrrvuuoDOc/nll7Nx40Z27drVQysVBEE4PrbmV3aKiDijAcU1zWzNr+y9RQn9hkEnRjRNo7G1vU++NM1/RX/11Vfzi1/8gsOHD6MoCtnZ2axZs4bQ0FBOPvlkc7/777+fjIwMKioqzG3nn38+Z555JqqqAhAfH8+8efN47bXXuu8HKQiC0I2U1XkWIl3ZTxhcDLoC1qY2Gzn3ru2T5867fwERIf79SP/yl78wevRo/va3v/Hll19itVp58MEHmTlzpst+v/3tb8nNzeVnP/sZb7/9Nk8++SSbNm3i22+/dWlnnj17Np999lm3vh5BEIYePdXpkhId1q37CYOLQSdGBgqxsbFER0djtVpJS0sDoKCggIyMDJf9rFYrL7/8MtOmTeOuu+7iiSee4O9//zvDhw932S8jI4OCgoJeW78gCIOPnux0mT0ygfTYMEpqmt3WjShAWqwufoShx6ATI+HBVvLuX9Bnz308NDU1ERbW+a5g1KhRPProo/y///f/uOSSS7jssss6P3d4uMzmEQShyxidLh2FgtHp8vQVM45LkFgtCssX5bD05W0o4PI8Rtxl+aIc8RsZogw6MaIoit+pkv5GUlISVVVVbh/bsGEDVquVQ4cO0d7eTlCQ62usrKwkOTm5N5YpCMIgw1eni4Le6TI/J+24xMLCyek8fcWMTtGXNPEZGfIMzKv2IGX69Om8/PLLnba//vrrvPXWW6xfv56LL76YBx54gPvuu89ln507dzJ9+vTeWqogCIOIQDpd5oxOPK7nWjg5nfk5aeLAKrgw6LppBjILFixg165dLtGRI0eOsHTpUh555BFOOeUUnn/+eR566CG2bNnicuxnn33GOeec09tLFgRhENDbnS5Wi8Kc0YlcOC2TOaMTRYgIIkb6E1OmTGHGjBm88cYbgN6mfPXVVzN79mxuvvlmQBcsS5cu5YorrqC+vh6AzZs3U1NTw09+8pM+W7sgCAMX6XQR+hpFC8Qco4+ora0lNjaWmpoaYmJiXB5rbm4mPz+fkSNHui3+HGh88MEH/PrXv2bnzp1+TyK+5JJLmDp1KnfffXcPr67/MtjeB4LQm9hUjVMe+cRnp8vGO8+SKIYQEN6u385IZKSfcf755/Pzn/+coqIiv/ZvbW1lypQp/PKXv+zhlQmCMFgxOl3cIZ0uQm8gYqQfctttt5GVleXXviEhIfzud78jPDy8h1clCMJgxuh0CeogONJiw467rVcQfCHdNIIgCAIA5+SkEWy10K7aAJiSGcs7N80LOCLSUy6uwuBFxIggCIIAQHFtM01tNvP7htb2gEVET7q4CoMXSdMIgiAIABws1zv0DDfp4urmgAaAGi6uHT1LDBfX3J3F3bdYYVAhYkQQBEEA4ECZLkZOtM+HaWqzUd3Y5texvlxcQXdxtan9voFT6ANEjAiCIAgAHChvAGBSRgyJkSEAHK1p8uvYQFxcBaEjIkYEQRAEAA7Y0zSjk6PIiNM79Iqru9edtbtcXIXBhYgRodv5/e9/z7Rp0/p6GYIgBMhBe2RkVHIk6bG6eaC/kRFxcRWOBxEjfcTVV1+NoigoikJwcDCpqanMnz+f5557DlVVAzrXqlWriIuL65mFdoE77riDdevWBXRMdnY2K1eu7JkFCYLgk/qWdkpq9ajF6CRHZOSon5GR2SMTSI8Nw1PvjYLeVTPbXo8iCM4ELEY2bNjAokWLyMjIQFEU3nnnHZ/HtLS08Nvf/pYRI0YQGhpKdnY2zz33XFfW22PYVI3NByp4d3sRmw9U9EqR1cKFCykuLubQoUN8+OGHnHnmmdx6661ccMEFtLe39/jz9xRRUVEkJh7fZE9BEHoXo5MmKSqU2IhgMuL0CEaxn5ERZxfXjoJEXFwFXwQsRhoaGpg6dSpPPvmk38dcfPHFrFu3jn/84x/s3buXV199lfHjxwf61D1G7s5iTnnkEy59dgu3vradS5/dwimPfNLjbWihoaGkpaWRmZnJjBkzuPvuu3n33Xf58MMPWbVqlbnf448/zpQpU4iMjCQrK4sbb7zRHJK3fv16rrnmGmpqasxIy+9//3sAXnrpJWbNmkV0dDRpaWlcdtlllJWVeV1TdnY2DzzwAJdeeimRkZFkZmZ2+l0fPnyYCy+8kKioKGJiYrj44ospLS01H++Yprn66qu56KKLePTRR0lPTycxMZGbbrqJtja9Sv+MM86goKCAX/7yl+ZrACgoKGDRokXEx8cTGRnJpEmTWLNmTVd/3IIgeMFRLxIJQHqsERnxT4yAw8U1LdY1FSMuroIvAjY9O/fcczn33HP93j83N5f//ve/HDx4kIQEPTyXnZ0d6NP2GEZffMc4iNEX39t/QGeddRZTp07lrbfe4mc/+xkAFouFJ554gpEjR3Lw4EFuvPFGfvOb3/DUU08xd+5cVq5cyb333svevXsBPTIB0NbWxgMPPMD48eMpKyvj9ttv5+qrr/Z5Qf/Tn/7E3XffzX333cfatWu59dZbGTduHPPnz0dVVVOI/Pe//6W9vZ2bbrqJSy65hPXr13s856effkp6ejqffvop+/fv55JLLmHatGlcf/31vPXWW0ydOpWf//znXH/99eYxN910E62trWzYsIHIyEjy8vLM1yYIQvdyoEyvFxmdov+NGZERf9M0BgsnpzM/J00cWIWA6HEH1tWrVzNr1iz++Mc/8tJLLxEZGcnixYt54IEHPM5TaWlpoaWlxfy+tra2R9bmqy9eQe+Ln5+T1qt/SBMmTOC7774zv7/tttvM/2dnZ/Pggw9yww038NRTTxESEkJsbCyKopCWluZynmuvvdb8/6hRo3jiiSc48cQTqa+v93pRnzdvHnfddRcA48aN4/PPP+fPf/4z8+fPZ926dezYsYP8/Hxzfs6LL77IpEmT+PLLLznxxBPdnjM+Pp6//vWvWK1WJkyYwPnnn8+6deu4/vrrSUhIwGq1mhEcg8OHD/PjH/+YKVOmmK9BEISe4eAxPTIyKkmPjBg1IyW1zdhULaDPQKtFYc5oSdUK/tPjBawHDx5k48aN7Ny5k7fffpuVK1fy5ptvcuONN3o8ZsWKFcTGxppf/g6NC5T+2hevaZqZqgD4+OOP+cEPfkBmZibR0dFceeWVVFRU0NjY6PU8X3/9NYsWLWL48OFER0dz+umnA/pF3htz5szp9P3u3bsB2L17N1lZWS6/k5ycHOLi4sx93DFp0iSsVqv5fXp6us+U0S233MKDDz7IvHnzWL58uYtAEwShe+kYGUmJDsNqUbCpGuV1Ld4OBfqm7k4YPPS4GFFVFUVReOWVV5g9ezbnnXcejz/+OC+88AJNTe5zkcuWLaOmpsb8Kiws7JG19de++N27dzNy5EgADh06xAUXXMAJJ5zAv//9b77++muzhqO1tdXjORoaGliwYAExMTG88sorfPnll7z99ts+j+spgoODXb5XFMVn19DPfvYzDh48yJVXXsmOHTuYNWsW//u//9uTyxSEIYlN1cg/pouRMcm6GLFaFNJi/Gvv7au6O2Hw0ONiJD09nczMTGJjY81tEydORNM0jhw54vaY0NBQYmJiXL56gv7YF//JJ5+wY8cOfvzjHwN6dENVVR577DFOPvlkxo0bx9GjR12OCQkJwWazuWzbs2cPFRUVPPzww5x66qlMmDDBZyTCYMuWLZ2+nzhxIqD/7goLC10EYl5eHtXV1eTk5AT8er29BoCsrCxuuOEG3nrrLX71q1/x7LPPdvk5BEFwz5GqRlptKqFBFjM9Azi8RrwUsco8GqE76HExMm/ePI4ePWp2fwDs27cPi8XCsGHDevrpvdLXffEtLS2UlJRQVFTEtm3beOihh7jwwgu54IILWLJkCQBjxoyhra2N//3f/+XgwYO89NJLPPPMMy7nyc7Opr6+nnXr1nHs2DEaGxsZPnw4ISEh5nGrV6/mgQce8Gtdn3/+OX/84x/Zt28fTz75JP/617+49dZbATj77LOZMmUKl19+Odu2bWPr1q0sWbKE008/nVmzZnX5Z5Gdnc2GDRsoKiri2LFjgF4rs3btWvLz89m2bRuffvqpKYoEQeg+DLOzkUmRLrUh6T5cWG2qxl1v7ZB5NMJxE7AYqa+vZ/v27Wzfvh2A/Px8tm/fbtYhLFu2zLyQAlx22WUkJiZyzTXXkJeXx4YNG/j1r3/Ntdde67GAtbfo67743Nxc0tPTyc7OZuHChXz66ac88cQTvPvuu2Z9xdSpU3n88cd55JFHmDx5Mq+88gorVqxwOc/cuXO54YYbuOSSS0hOTuaPf/wjycnJrFq1in/961/k5OTw8MMP8+ijj/q1rl/96ld89dVXTJ8+nQcffJDHH3+cBQsWAHp65d133yU+Pp7TTjuNs88+m1GjRvH6668f18/i/vvv59ChQ4wePZrk5GQAbDYbN910ExMnTmThwoWMGzeOp5566rieRxCEzjjbwDtjdNQUeYiM/PWT770O0pN5NIK/KFog86HRfS3OPPPMTtuvuuoqVq1axdVXX82hQ4dc2jz37NnDL37xCz7//HMSExO5+OKLefDBB/0WI7W1tcTGxlJTU9MpZdPc3Ex+fj4jR44kLKxr6ZTcncXc916eS5gxPTaM5YtyhlxffHZ2NrfddptLB89AoDveB4IwVFn21ne8urWQW84aw+3nODygXth0iOWrd7FgUir/d6Vr5NOmasx84COqm3xP9f3L/0zjwmmZ3b5uof/j7frtTMCtvWeccQbe9IuzWZfBhAkT+OijjwJ9ql5D+uIFQRjKdOykMTBqRtx1HW7Nr/RLiMDx193tK61jw75yrpqbTbBVppgMRnrcZ2SgIH3xgiAMBWyq1unGy/AY6Zym8ezC6m+XYVxE8HHX3S1/dxebD1aQHhvO+ScMrWj1UEHEiODCoUOH+noJgiD0EO5S0qnRoRyr19v9R9oNzwwMMXKsvpWWdhuhQQ6vIH+jHdfMHXlcUWZN09h1tAaAvOIaESODFIl3CYIgDAE8teCW2g3N4iOCiQx1vT+NjwgmLFi/TJR0OM7oRvRGTJiVWdnxx2WEVlrbQm2zPjj0+9J6H3sLAxWJjAiCIAxANE2jtrmd2PBgn/t6G31h0NBq62T7rigKGbHhHDzWQFF1EyMSHZEToxvxhpe3eX5eDS7/+xfm911pDNhXWmf+//syESODFYmMCIIgDEDu+vcOpt73H3YcqfG5r6/RFwCt7arbFtx0e3uvO6+RhZPTOX1cUqftIUH6paWhxdXIsCtGaM5ipKCigea2zuaIwsBHxIggCMIA4+uCSl7/SndB/qawyuf+xzP6IiPWcxGrpmnsLdGjFb9ZMJ6//M80XrnuJGLC3Afdu2KE5ixGVM1h0CYMLkSMCIIgDCBUVeP+9x1DKasafLfXHs/oC8OF9aibyMqOohpKapuJCLFy7SkjuXBaJhaLYhbEuiNQI7S99joRY3bo92V1XvYWBipSMyIIgjCAeO+7o3xbWG1+X9Xoe/ClUWxaUtPssW4kITLEbQtuhuk10jky8p9dpQCcMS6JsMOfQcFG4otruNbawF51OJ9rU9DlR+duGn+iNaqqsd8eGZk1Ip4vD1VJEesgRSIjQ4Crr76aiy66qK+XIQjCcdLcZuOPuXsByLRHLPwRI95GXxjccuZoty243rxG/pNXAsA5Bx+Bly6EDX9iwvd/497gV3g5ZAXpVAAK11jXcLIlDwuOSd3+RGuKqptoaLURbFWYn5MKuKZthMGDiJE+5Oqrr0ZRFBRFISQkhDFjxnD//ffT3t7e10sTBKEXsakamw9U+GyB/cfGfIqqm8iIDWPpGaMBqGzwLUZALzZ9+ooZpHlox316w0G3haUZHgpYDx1rYF9pPUG0c6bt807HKQokKrUAnGbZyWshD7Ix9BYWWrb6PYDUSMmMSooiJ12f/L5fOmoGJZKmMVBtULAJ6kshKhVGzAWL1fdxx8nChQt5/vnnaWlpYc2aNdx0000EBwezbNkyl/1aW1sJCQnp8fUIgtC7+Dsbq7yuhac+3Q/AnedOINpeJOptUF1HFk5OR1Xhxn92bsctq21h6cvbePryqSyMyjc/C9PTZgNQ19JObXMbMWF6K/FHu3ThcpJlD7GK+6LSGKUBNKhBbwlOo5Knglfy7YxRfhmhGcWx49KiGZuqu8MesnfUhAX3/Oez0HuIGAHIWw25d0LtUce2mAxY+AjkLO7Rpw4NDSUtLQ2ApUuX8vbbb7N69Wr27t1LdXU1J554Ik8++SShoaHk5+dTWFjIr371K/7zn/9gsVg49dRT+ctf/kJ2djagT7r99a9/zXPPPYfVauW6667zOktIEIS+wzAi6/gXarTAPn3FDFOQPP7RPhpabUzNimPRCRlsP1IN+B8ZAT0C88AHeW4f04CFlq1M//cvgApze2RMBrEhf6KmVaG4upmYtGDqW9p598vvATjH8pXH54tFFyk1mi5GLIr+PNN3PQJjRkDjMa83f9/bUzLjUqJIiQ4lJiyI2uZ28o81MDHd89A1YeAhaZq81fDGElchAlBbrG/PW92rywkPD6e1Vf9wWbduHXv37uWjjz7i/fffp62tjQULFhAdHc1nn33G559/TlRUFAsXLjSPeeyxx1i1ahXPPfccGzdupLKykrfffrtXX4MgCL7xZkTm3ALbblN5afMhXv/yMAD3nD8Ri0UhIUKPlFb7UTNi4M1vZIFlK08FryRZq3B9oLaY9Db9uY/WNPFxXinnPP5fdh5TCaGVc6xexIg9YlJLhLlNAagt0mtM/n0dvHABrJzs9rN2ryFG0qJRFIWxqdGA1I0MRoa2GFFtekTE28dB7l36fj2Mpml8/PHHrF27lrPOOguAyMhI/v73vzNp0iQmTZrE66+/jqqq/P3vf2fKlClMnDiR559/nsOHD7N+/XoAVq5cybJly/jRj37ExIkTeeaZZ4iNje3x9QuCEBi+jMiMFtj/+dsW7nl3F6oGl8zKYla2XmsRbxcjDa02Wtr9+4zy3MGisTz4RUCPXnR8LFPRBcryd3fysxe/4mhNM1nRCs8H/4l0xXOLbsfIiEfc3PzZVM2sDxlnFyHj7Kkad3Uj35fWseLD3TS2Ss3dQGRoi5GCTZ0jIi5ouoIv2NRjS3j//feJiooiLCyMc889l0suuYTf//73AEyZMsWlTuTbb79l//79REdHExUVRVRUFAkJCTQ3N3PgwAFqamooLi7mpJNOMo8JCgpi1qxZPbZ+QRC6hr9GZF8VVBFsVbjnghwe/vEUc3t0WJBZd+Fv3YhzB4sFlTR7OmaKcpAMpdKNENFJt4uRw5VNWC0KN5w+mv/86mzmxXn3ComxR0aMmhHPdL75O1zZSEu7SmiQheEJemRlTIrnyMhdb+3g//57kLe/KfLxXEJ/ZGjXjNSXdu9+XeDMM8/k6aefJiQkhIyMDIKCHL+SyEjXP+D6+npmzpzJK6+80uk8ycnJPbZGQRC6H3+NyNJjw3h2ySwmZ7pGOC0WhbjwYCoaWqlsaCU1xvf5DL+RqXUbuDf4Rf7QdgUfqIn8yLrR63HTLft52TafqYkqKy4/nZwMe73GuX+EN670eJzfkRHA5eZv5Kmm4BiTokdDNh+o4Fi9PtSvo9fI0eomvi7QnWjd2dYL/Z+hLUaiUrt3vy4QGRnJmDFj/Np3xowZvP7666SkpBAT4754Kz09nS+++ILTTjsNgPb2dr7++mtmzJjRbWsWBOH48ceILDzYwtrbTiPGwzC8+MgQKhpaqfKziNWKyouj1jEm70kASrV4AFIV75byP7Z+xkmW3WT8+HksGU6fPTmL4eKX4L1boKnzOYyaEf/EiB37zd++El2MRIUGccojn7iktA4ea+C9b4tYNDUTgA++c7Qkl9unEAsDi6GdphkxV++a8WgDpEBMpr5fP+Dyyy8nKSmJCy+8kM8++4z8/HzWr1/PLbfcwpEjRwC49dZbefjhh3nnnXfYs2cPN954I9XV1X27cEEQOuGPEdkDF072KEQAs4i1yp80Td5q+NNoxu5+EkXRfUBKcRUjnvvuFIbFhmLJntf5oZzF8OsDcOW7cNqvYcJiCNUFixkZ8ZmmccJ+87fPXhfyhYfaml+8ut30RXl/h0OMGNETYWAxtMWIxaq37wKdPw7s3y98uFf8RvwhIiKCDRs2MHz4cLNA9brrrqO5udmMlPzqV7/iyiuv5KqrrmLOnDlER0fzwx/+sI9XLgiCO7wZkcVFBPOTWVlej4+L0IVKpa+OmrzVejrFKXqhaVCqxQGQgr7dvSjy47PQYoXRZ8BZv4P/eQnuPARXvU/sWbcBUBueBUtWQ3R6p2fJV9PItc1C01xv/vaW1Hp/TejdRoeONbjY45eLGBmQDO00DdjDjC968Bl5uEd9RlatWhXwY2lpabzwwgsejwsKCmLlypWsXLny+BYnCEKvsHByOvNz0tiaX0lZXTPbC6t5/vNDzBge7/PYhEh7e6+3NI3ZNehKDZG0oh+folR7Pr4rn4UWK4w8lZjoBli7npr2YBh1ur3GZAm6INHjML9p+zlfahNYEfR3Ll14DVistNlUDvgxnbe4ppn/23AQ0H8WlQ2tkqYZoIgYAf2PbML5feLAKgiCYLUozBmdCMCWg3rnysT0aJ/HxdnTNF4jIx66Bo16kXjqCFU6tMMueEj/HDzOz8JYe4qpodVGm00l2M3N32EtBYA/Wq/j3OxziEO3mvdkid+Rz74vB+Cy2cP566f7OVbfgqZpKIpvh1eh/yBixMCu5AVBEPqSvGK9cNOYxeKNhEj9Yu+1tddDN6DH4tWYTDjphm65GYsJc1xiapvaSIwKdbn50+pKqXwtHFSoalF49D97efCiKewLYDLvkSq93fiKk0fw10/302bTqGlqM4WaMDAY2jUjgiAI/Qibqpm1EjkZvu3OzciItzSNh25AQ4ykdBQj3VgnF2S1EBWqC5LaZqfoi/3mr37chbQ5BvnyyheH2VlUYzqvhgdbPRb3AkSF6uucOzqRtNgwMxIjRawDDxEjgiAI/YT8Yw00t6lEhFgZkRDhc3+/LOHNrkFXyugYGbHAT1/o9jo5QyDUNHWO3lQ16NvCg60snpqBpsG97+40Bdn5U/S5XZ4EiZHJueAEfX5PcnQoAGVSNzLgEDEiCILQT8gr1i/CE9Kisfgx1TY+0o9uGpeuQQdmmsbeScNPnodJFwW2YD+I8SJGjHUnRIZw93kTiQixsu1wNR/vLgNg8bRMt91GwVb9Z9PYaiPIorBgki5akqJ0cSZFrAOPQVMzIpNphzby+xcGA3lHdTHi70RaYz5NdYMPnxHTnOxWaNIt3I223tSQVvjpSz3WORgbrl9m3IqRBl00JESGkBYbxi0/GMvDH+4xi1fHpUaTFhvm0m2UEh3G298c4Y2vdG+lU8YmmemqZLur7bF6/4cHCv2DAS9GgoN11d3Y2Eh4eHgfr0boK4ypxVardEAJA5fdxf7Xi4CjtbeupZ3WdpWQIC/BbqNw9NBGyP+M0q3joAZSfvww5HRO43QX3tI0lXYRFW9/HdfOG8kbXxVysLyBmLAgUmP0tIsVlTmWPLCWgiWVXSmO9V5wguP/EhkZuAx4MWK1WomLi6OsTA/rRURESEvXEENVVcrLy4mIiHCZ7SMIAw0jTZPjZ2QkJiwYi6LXTlQ3tpLiaz6Nxar7fYw6nbKt64BmUmN916YcD4YYqXVbM2JP09jN20KCLDxw4WSuem4rp4xN0j/L81Z38oEaG3oG8HNCrBbm5zgKdI2aESlgHXgMik/utDQ9X2gIEmHoYbFYGD58uAhRYcBSXtdCeV0LigLj03x7jIB9WF6EbvZV1djmW4zYUVXNLPJM8/OYruItMlJhiJHIUHPbvDFJbLzzLN1dNm+13STNNQ07p3kjiyyTmTr9ZPP8AElR+nkkMjLwGBRiRFEU0tPTSUlJoa3Nv1HawuAiJCQEi0XqsYWBi5GiGZkUSUSInx/Nqo244HYqgcoDX0HKaX615VY2ttKuaiiKI7XRU8SE2cWIGy8UMzIS6Tp/Jy02zMk5tnM9WIjSzv+GPAmH3wb1PPM1G5ERESMDj0EhRgysVqvUDAiCMCAxUjT+Fq+y6x344Fck1NzEQcZTnfsH+OJGvXPGRzFqaa0+eC4pKpQga8+K+NgI3900Rs2ICx6cYx1oUFuk72c3rEyOkjTNQEVuJQVBEPoBuwOpF/nPPfCvq6DxGHGKbhBWqUXrF+83lujpDS+U1eoXa6NAtCcxa0aa3RWw6mIk0Z0Y8eAc620/IzJS0dCK6qedvNA/EDEiCILQDzDaen2KkZ3vwKYnzG8T7GKkGqPORIPcu/Q0hweMyEhqdM/Wi4B3nxEjTRPvzrrdg3Ost/0SIkNQFN3JtsrXJGOhXyFiRBAEoRexqRqbD1Tw7vYiNh+owKZqNLfZOFCuz2Px2tar2mDN7S6b4tGPq9Scil6N9IUHSu2REX8LXo8Hr629TqZnnTCdYz0VpSv6HJ0Rc80twVaLKWzKJVUzoBhUNSOCIAj9mdydxdz3Xh7FNc3mtvTYMK6eOwJV09MVKdFeUicFm6CxwmVTvD0yUqVFue7rJc1RWmePjPRimqajGGm3qeY2tzUjhnPsG0vQBYlz2sUuUNzM0UmOCqWyoZXyuhYmpHXTixB6HImMCIIg9AK5O4tZ+vI2FyECUFLTzIoP9wJ68arX9nQ3AsOIjFTRoR3YS5qjzEjT9GJkpK653XRWBahuakPTQFEgLjzY/cE5i+HiFyEm3XV7TIa+3U2hblK0LmykiHVgEbAY2bBhA4sWLSIjIwNFUXjnnXf8Pvbzzz8nKCiIadOmBfq0giAIAxabqnHfe3lumlRd7/cnpPvwF3EjMNxGRiKSXNIXHSntgwJWgDqnIlajXiQ2PNh7R0/OYrhtJ1z1Pvz4H/q/t+3w2DGULF4jA5KAxUhDQwNTp07lySefDOi46upqlixZwg9+8INAn1IQBKHf4a72wxNb8ys7RUTcEeKrzdbNBF6jgNUlMnL+Y179RkrskZGUXihgDbZaiAjR1+Kcqqk03Vf98DmxWPX23Sk/0f/18tocLqxSwDqQCLhm5Nxzz+Xcc88N+IluuOEGLrvsMqxWa0DRFEEQhP6Gp9qP5YtyWDg5vdP+ZXW+hQhAdJiPj2SXOgpd/MQZaRqjgHXuLV6n77bbVDOF0RtpGtCjH42tNrdixG29yHEgLqwDk16pGXn++ec5ePAgy5cv92v/lpYWamtrXb4EQRD6A95qP5a+vI3cncWdjvE3AjE5M9b3TmYdhR4hMSIjtUTS/KNVcM4DXg8/Vt+KpoHVorj39+gBTBdWZzHirZPmOBAX1oFJj4uR77//nrvuuouXX37Z7yFmK1asIDY21vzKysrq4VUKgiD4xp/aj/vey+uUspk9MoH02DCPTaoAQRaFuaOT/FtIzmJy53/EjcH3s7z1KvPZT3sv2q0YcqbUTNGEYrH0ziwnx7C8dnNbVSBpmgBIEhfWAUmPihGbzcZll13Gfffdx7hx4/w+btmyZdTU1JhfhYWFPbhKQRAE//BV+6EBxTXNbM2vdNlutSgsX5QDeHbNWDg5Dauf4iB3ZzFLX/mWNXVjeE+ba561rK7FY3TGwBQjvZSiAffGZxU9lKaRyMjApEfFSF1dHV999RU333wzQUFBBAUFcf/99/Ptt98SFBTEJ5984va40NBQYmJiXL4EQRD6Gn9rP9ztt3ByOk9fMUMfAtcBBVh23kS/zu0tOmPgLjpjUGq/SKd68zPpZtx5jVR5s4I/DozISGVjK+02tVvPLfQcPWp6FhMTw44dO1y2PfXUU3zyySe8+eabjBw5siefXhAEoVvxt/bD034LJ6czPyeNrfmVlNU1s35vOW9/U8QpY5PIjAv369yBRGfmjE7s9HhveowYuBMjlY1eDM+Og4TIECwKqJpeJNubESCh6wQsRurr69m/f7/5fX5+Ptu3bychIYHhw4ezbNkyioqKePHFF7FYLEyePNnl+JSUFMLCwjptFwRB6O8YtR8lNc1uIxMKkBYbxuyRCR7PYbUozBmdiE3VePjDPQBccqL/dXGBRGeKqpvI3VnCT2YMIzYiGJuqseNIDQAt7So2VfM7NXQ8uBUjDXqEJiHSg+FZF7FaFBKjQimva6GsrkXEyAAh4DTNV199xfTp05k+fToAt99+O9OnT+fee+8FoLi4mMOHD3fvKgVBEPoB3mo/jO+XL8rx6wK/4ftyimuaiY8IZn6On0PhCCw6s2LNbh54P48fPv05L20+xCmPfML6feUAvPFVIac88onPgtfuIDZcv++tdUnT2CMj3VzAClLEOhAJWIycccYZaJrW6WvVqlUArFq1ivXr13s8/ve//z3bt2/v4nIFQRD6Fk+1H2mxYTx9xQy3PiPueONLvTD/oumZhAZ5NvHqiK/OHAXd8+TE7Hg2H9Dn2Bwsb+Ced3cF1I7cncRGuIuMGDUj3V+7IkWsAw8ZlCcIghAgHWs/UqL11IyviIhN1diaX8nB8nr+k6fPmbl4lj1Fo9r0QXj1pbrt+4i5bp1GjejM0pe3dRofZ7B8UQ4FlY1UNLQSEmRBVTXa3RS0auji5b738pif4383T6B0TNM0tdpoarMBEN/NaRqApCiZ3DvQEDEiCILQBYzaD39x59oabFUoqGhgYtV6yL0Tao86DojJ0N1W3cxgWTg5nScvm8Hv3t1pRhgAQoMs/OV/prFwcjqvbtXT5aOTI9ldXOdxXb4KXruDjqZnhuFZsFUhKrT7L0OmJXydWMIPFGRqryAIQg/jybW1zabxzj+fQXtjiasQAagt1m3f81a7Pd8DH+S5CBGAjLhwM01keJ0MT4jwa43+FsZ2BdP0zD4ozzQ8iwzxPqW4i5jD8iQyMmAQMSIIgtCDePMFUVC5N/hFNG+errl36SkcO56EDUD+sQaz/sMQIzNHeO7scaYnh+Y5HFjbUFXNMZemB4pXwTkyImJkoCBiRBAEoQfx5gtykmUPGUqllw9iDWqL9FoS/Dc8O1zRSFF1E0EWhUtnZ/lV8OqtHfl4MRxYVQ3qW9sdE3t7aDaOREYGHiJGBEEQehBv6Y+zla/9O0m9Xuzqy/AM9PqP177U60UmZcYSHRbcbe3IXSUs2EpokH65qWls67GJvQZJ0k0z4BAxIgiC0IN4Sn8oqPwwaKN/J4nSfUj8rev45nA1ACfZox3d1Y58PDh31FQ19owVvIERGalpaqOl3eZjb6E/IN00giAIPYgn19aTLHtIVDx3uZhEJOltvvhf11FQ0aA/d7Yj9dLVduTuIjY8mLK6Fmqb2hxD8nqoZiQ2PJggi0K7qlFR30qGn1b7Qt8hkRFBEIQexNm11ZkUqv07wQkXm34jvgzPAOIigjla04yiwInZrnUgRjvyhdMymTM6sdeECHSIjPRwzYjFoogL6wBDxIggCEIPY6RJwoMdJmZlxPl38PjzzP96s6M3d0+NNv81nE/7A85ipKcLWAGSou3GZ1I3MiAQMSIIgtALLJyczpiUKACunZfNrddchRaTgWdZoUBMppmicT6Pu/oPo0B0d3EtQI92x3QFdzUjPSlGzI4aESMDAqkZEQRB6AVsqsa+Ur1GZEnWMbKbd8OMq2H9Cuhk7G4XKAsfdmsJ767+442vCnn7myJqm9uB/idGYtxERnqqZgScvEY6pGkMS/6+qJsRPCNiRBAEoRc4VNFAS7tKOK0Mf/tCUOziIzweUKCp0rFzTIYuRNxYwRt0tKNft7vU5fHZ2f1TjFQ3tVHVqDux9miaxk1kxJ0lf3psGMsX5fRKR5HgGREjgiAIvcCeLz8BrIxTDmNRnKIgTdWABmfcDYmjvQ7J84azZ8fIpEhSYnrOUdUbniIPRprmSFUTNvvQvp4YkmfgiIzoURjDubajYZwxubi3WpwF94gYEQRB6GlUG3u3/gc4l4mWwx0etM/O3fYC3LYjYBFi4Jzy6KuoiLfIgyFGDh3T246jQoMIDeraa/UH58iIN+fa3ppcLHhHClgFQRB6mg2Psrs1GYDxSqGbHVxt37tCvFPnzIl9UC/iaWaOEXk4UKbXyxypagR6NioCjshIeX2LT+da58nFQt8gYkQQBKEL2FSNzQcqeHd7EZsPVJiph06oNvjiKfZowwGYoHSMjDhRX+r5MR84p2lO6mUx4ivyAPDGV0cAfT4NQEJkaI+uKcUuRo5WN3G4ssGvY3pycrHgHUnTCIIgBMia747yu3d3UtnQZm7zWAhZsIn6xmYKtRQAJljcRUbs2G3fu8KIxAgUBUYmRjIsvncdR/2JPBiuqwYJPeyBkp0YyajkSA6WN5B31OF0a0FltmUPKVRTRhxb1Qmo9vvynpxcLHhHxIggCEIArFiTx/9tyO+0vdhTIWR9KXu1LADSqCBeqXd/4vCETp4igZAeG867N80jKSoURenduoeuRBR6akiegcWicM3cbO55dxf/3VdGWkwo0+o/497gF8lQHOmYo1oC97ct4dvo0/pdO/RQQtI0giAIfrLmu2K3QsRAQy+EdEnZRKWyR9XFyHhvUZGTbuhy8arBCcPi+mQOS1ciCgk96DFi8KMZw4gOC+JQRSPXjSjjqeCVpOFaF5JGJU8Fr+SpGUekeLUPETEiCILgBzZV43fv7vS5X6dCyBFz2RM8EfBSLxKeAKfd0R3L7BN8zcxRgLSYUEKsjktOQlTPi5HI0CD+50RdCG7YU4KiQEe9YVFAURSm73pEr+/pInXNbRTXNB3Pcoc0IkYEQRD8YGt+pekc6guXtIXFyt5oPf0y0VNkZNFfjjsq0pd4m5ljfP/7xZOICXdUBvRGZARgyZxsLAp81jae/Wqm232UbuhmuvTZLZzxp/UymK+LiBgRBEHwg0DqIpzTFpqmsbtWL9YcH93hHDGZcPFLXp1WBwqeZuakxYaZdTSGCyv0fM2IQVZCBPOH6RGP520LvO/cxW4mVdXYXVxHS7tqWv4b+N11NcSRAlZBEAQ/8LcuIiEy2KUQ8mhNM3XN7QRZFEbfthaKtugXvS46rfZn3M3McZ79EuskRhJ7SYwAXDMtmrWFjbxlO5XfBL1OnOKh1beL3UzVTW2myDha7RCcYj/vPxIZEQRB8AOjLsIXD1442aUQcm+JPkV3TEoUISHBMPJUmPIT/d9BJEQMjJk5F07LZM7oRJefRWwfREYATjr5VCYGFdFMKK/ZznSzh/sJyf7inJoprtbrRnyZwOXuLO7Scw1WRIwIgiD4gVEX4a3fYs6oBM47IcNl2+5iPWw/IS26B1c3MHAWI71VMwKgWIO4ZrYeiXix/RzaNedLn/cJyf7gLEaO1jT5ZQLXqetqiCNiRBAEwU+MuojUGFf30MgQ/SKWV1xHTWOby2N7SnQxMj4txuu5h0JtgSFGLIqrMOkNFp97HolhGkdJ4mN1puOBmAy4+MXjqtsxhvGBnqYR+/nAkZoRQRCEAFg4OZ2xqdH84LH/EhJk4YVrZjNzRDyL/ncje0vrePKd9dw9pcasCdlTrKdpJqR7jowMldoCQ4DER4Rg6WVPj7BgKz+cNYq/b8znv2N+w8IZtd1Wt3OszikyUt3kd7Gz2M87kMiIIAhCgFTY74QzYsOYMzqRkCALd02uBuDv3zWz9NXv2PTcb2j+8zQOluuRkYkeIiNDqbbAFCO9WC/izKzseAC+qQrr1rodlzRNdRPJUf7N3RH7eQciRgRBEALEuKM1JsOSt5ozNi7hYuunqFj4UD2Jy9p+xw/Kf4VNU4gN0TqldsC/AXODqbbAECO9WS/izLQsXYzsK62joaW9285b4ZSmaWi1MTE9xqcJXHpsmNjPOyFiRBAEIUDK7WH5lOgw3bUz904UReOPwc+yNuQ3XG79mAiaKSIZgPHaQRRN7XSeoVZbcPr4ZE4elcAVc0b0yfOnxYaRFhOGqsGOohrXB1Ub5H8GO97U/w3AjbWj0VlpXbNPE7jli3LEft4JqRkRBEEIkDK7GEmODtVdO2uPmo+NtxzhD5bnuDPoVf5tO4316lSu40MomK6nBVzOM7RqC1Kiw3jt53P6dA3TsuLI3VXC9sJqTh6VqG/MWw25d7r8HonJgIWP+FXY2lGMFFc3m8XOHWuB0gZhLVB3IGJEEAQhQMpqncSIB9fOGKWJa4LWcg1r9Q1u9vO3ZkBqC7qPacPtYuRwtb4hbzW8sQQ6Jstqi/XtfnTaGN00SVEhHKtvpcjuNeLLBE5wIGkaQRCEACmvN9I0of67drrZz58Bc1Jb0L1Mz4oDYHthtZli6yREwLEt9y6vKRtN08zIyJTMWACXgXneTOAEByJGBEEQAqSsVg+7p8SE6a2hMRl0rg4w8Ozu6c+AOakt6F6mDIvFalEoqW2mJG+ja2qmE74H6NW3tNPSrtrPHQe4WsIL/hGwGNmwYQOLFi0iIyMDRVF45513vO7/1ltvMX/+fJKTk4mJiWHOnDmsXbu2q+sVBEHoc4wC1uSoUL01dOEj9kc8SAov7p7+DJgTuo+IkCDGpeqeL9sLKvw7yMsAPSNFExFiZXRyJKC39wqBEXDNSENDA1OnTuXaa6/lRz/6kc/9N2zYwPz583nooYeIi4vj+eefZ9GiRXzxxRdMnz69S4sWhL7CpmqS/x3itNlUKhv1C1BK9TdQUa6nYH66Cm3tMhSnO20tJgNl4cM+aw6ktqB3mZYVx+7iWr6pjWahPwd4ScVV2FM0SVGhZMSFA7olvBAYAYuRc889l3PPPdfv/VeuXOny/UMPPcS7777Le++9J2JEGFAMFZdMwTsV9a1oGlixkfD6haDotQVNYanc33Yl+a1hpFBNGXEUNk/lHnWKXxc8o7ZA6HmmZ8Xx6tbDbK+NpCk8jdDGEtzpPlWDlog0wr0M0DtmipEQU4yU1DSjqlqvu8wOZHq9ZkRVVerq6khI8FyQ1dLSQm1trcuXIPQlQ8klU/BO2bf/ASCJGiyKo/AxrKmUP7Q/Siz1rFbnskXN4Whtm7w/+iHThscBsKOoluWtSwBdeDhjfH9f2xJsXi6V5WYnTSip0aFYFGizaZ3afQXv9LoYefTRR6mvr+fiiy/2uM+KFSuIjY01v7KysnpxhYLgylBzyRxq2FSNHz+9iWtXfYmm+fgdqjbK//s3AFKUapeHFEWvEFkR/Hcs6AWN8v7on4xOjiIqNIjGVhtvNExjadttlOB6g1xCIkvbbuO1+mmsWLObv2044PZcxlyaxKhQgqwWUmP02p+jXszshM70qs/IP//5T+677z7effddUlJSPO63bNkybr/9dvP72tpaESRCnxGIS6aE2QcexTVNfF1QBejFiKbFuzvyP6OsRf/Y7ChGQBckCdRzkiWPzepkQN4f/RGrReGEYbFsOqAXsK5VZ/NRyyxmW/aYKbat6gRU+/36PzbmowHnTUlnWHyEy7kqGoxiZt3iPj02jOKaZo5WNzHN3kYs+KbXxMhrr73Gz372M/71r39x9tlne903NDSU0FD/Bg0JQk8z1Fwye4v+Ugxc3dhm/v/7sjrvYuTr5ygjDoBkN2LEYI6Sx2Ymu2yT90f/YlpWnClGAFQsbFFz3O5rxLQOHWvsJEaO1dnTNPb3TUZcONsOV7t01PSX93p/plfEyKuvvsq1117La6+9xvnnn98bTykI3Ya4ZHY//akYuKrRMeRsf1k9c0cnud9RtcH+dZRrPwUghWrPJ3VznZH3R/9i+nB9aF6QRcGmam7TsADhwRaa2vS0W/6xek4Z6/r+OObUTQM4OmrsXiP96b3enwm4ZqS+vp7t27ezfft2APLz89m+fTuHDx8G9BTLkiVLzP3/+c9/smTJEh577DFOOukkSkpKKCkpoaamxt3pBaFL2FSNzQcqeHd7EZsPVHRrfl5cMruX/lYMXOUcGSmt97xjwSZoradMiwO8R0Y2O91hy/ujf2KkUAwh4unv2xAiAA9/uKfT+9MQI4mRepomw+4XU1zT1O/e6/2ZgMXIV199xfTp08223Ntvv53p06dz7733AlBcXGwKE4C//e1vtLe3c9NNN5Genm5+3Xrrrd30EoShTu7OYk555BMufXYLt762nUuf3cIpj3zSbX/o4pLZffTHYuBqp8jI92V1nne0G1/5EiP1WihfqK7vF3l/9D+So0PJjAtHA247e2wn0zkACyohOMRqQ2t7JxFRUe+apkm3R0aKqpv63Xu9PxNwmuaMM87wWnG+atUql+/Xr18f6FMIgt8Ydx4d35HGnUd3OVjKBM7uoT8WA1c1OC42+8u8REbsxlfldjHiroAV4P/aLzALH+X90b+ZNjyOouomgq0WNt55FlvzKympaeKBD3ZzYtNGbgx6lwtb/2DuP0opZpxyhPveC2N+ThptNpW6lnbAKU0Tq4uRwxWNVDe1dX5SO1LY7IpM7RUGLL7ushX0O4/5OWndclcqLpnHT38sBnauGTlW30plQysJ9pC7CyPmokVnUN4cB7gXI1p4AnMvf5gxDW3y/hgATM+K44PvitleWG2azm0+UMGJTRt5OnglH9lmAhBNA3VEclRL5KPgO7ixDrbmTyMrQRceIVYLMWH65TQjTo+weBMizkhhs44MyhMGLIHcZXcXMoHz+PC3iDM5KpQPviumsLKxh1fkmqYBL9ERi5Wasx6hlWBANz1zRUFZ9BfmjE2R98cAYZrTBF8j4l9W28Dy4BcB2KGNAmC+ZRtWbDQTShlxLA9+ibLaBnMuTVJUCIqi/64TIkMIDfL/0iqFzToiRoQBS3+8yxa8428xsKrBTf/cxt1v7+jxNTkXsIL3upHyjDMBiFUaCVOcjovJhItf9DmDRuhfTM6MJTTIQnldC3nFutP3mMYdZCiVWBT4VhsNwAzLPoYp5QAcJo0MpYIxjTvMuTSJUY52cEVRzI6ahMhgKXz3ExEjwoBFWm4HHv4WA+8r1QVBT0w/7dh5ZaRpRiXpE1e9ddSU2d02U5JT4Kr34cf/0P+9bYcIkQFIWLCVM8YnA5C7swSAidF6NE7T4DtVj4xMtRxkuFIGQIGaau7nPJfGmXR7MeziqRmAFL77g4gRYcDS0y23Pdku3BXabSqPf7SPzQf8HHveTzGKgTt2L6TFhpkFx4ft6Zm65vZufW53nVe7jup3xCdm6+8Tb0WsRpQtOToURp4KU36i/2uxdus6hd7jXHtx8ZodeoeMJToNgAItlRqiCKGV8cphshVdrBzS0sz9jjnNpXHGiIwkR4f5fK8LOlLAKgxYjLvspS9vQwGXQtbjvfPoj0ZFX+RX8sS67/lwRzEf3X56n6yhu/BVDFzYA2LEU+eVITLDgvV7M69pGiMy4s2lVRhQnDUxhRCrhQPlDXxfWsfYEXMhJoPtVSMByFEKCFFsjFD01u4CLVVPy42YS/mOPYCjrdfA8Bopqm7ipjPHSOG7H0hkRBjQ+HOXHSj91ajIuCs/eKyBlnZbn6yhO/FWDFxgFyNNbTbabaqnU/iNt84rA+POuLS2hRoPnRBltXYxEiOpv8FCTFgwp9pdVdfsKNGjXAsfMVM00yz6gDwXMbLwYbBYqWjQIyOJHbqvjMhIsT3NKIXvvpHIiDDg0DTNrFyH7m257e124UCotPth2FSN/GMNTEiL6dXn7y1UVXPpoqlvaScuwk2rbQD46rwCfRR8QmQIlQ2t7C+rY+aIzuk9o2YkOUoiI4OJhZPTWLenjA93FnPr2WMhZzHfJligHE6wHAQg2xAjQdloE89HwTGxt+M8o/QOlvCCbyQyIgwo/rR2Dyf+4WP2lriG0rvrzqMv2oX9parB0YK6z5tt+QCnvL6FlnZHNKQ7UjX+dlQZ6RdPRaxmmiZGxMhgYn5OKkEWhT0ldRwsr6fNprKrWq8DmvqjX8OP/0HWlc+gKFDXplBp/1vsOJfGINPuNXK0pvsLsAcrIkaEAUXuzhKO1bfyx9w9PXL+/twuXOlsW17qxbZ8gHO4g7dId4gRfzuqYsN1D5EN+8rdFiy7FLAKg4a4iBDTBfXDnSXsK62juU0lOjSIkVNPhyk/IWzsaaTZ03NGGtFI03QUI+l2F9a65nbqmv0zPxvqiBgRBgyapplRi3V7yvjmcFW3ndvonPH3It8X7cKukZHBK0YKKjqKkeP/MPfVeQVgUfQiYYA1O0vczjeSAtbBy3lT9PqyD3cW890R3dBuyrBYLE5R1hGJEQAUVDTQblPNtvDEDq29kaFBprD1lR4UdESMCAOGupZ2GlsdhZuPf7SvW87r3O75108PeN23L42KKhucIyPdn6bxVLTZ2/REZMSbv4lBx0BIx4Ll5jYbtfa1JIt3zaDjnJxULArsLKrl/e+OAjDV7tBqkJ2oe9EcKq+ncvdnaJouYuPDOrd2pzt11Ai+ETEiDBhK7HcYYcEWgiwKn31/zO/aDU+eIZ46Z9zR10ZFzjNUDlV0b0fNi5sPMfW+//DBd0f73FulowV8fUv3tPd66rzyRMfJqkZUJDTIMYdEGDwkRoVy0kg9VfP5ft3LZ+qwWJd9RtjFyOHP36D8jV8AkKBVY31iCuStdtk30+yokciIP8hflDBgMARDdmIkM0bE888vDvPof/by+s9Pdumu6Ygnz5B7zp/IAx/s9tru6UxfT2CtdJouq2pwsLyBiend01Hz1SE95fWbf39HQ4tD5PSFt0pBRQMAQRaFdlXr1px7x86r178sZJPdRM6CymzLHr5Rx9BCCAoqGhazYDnEPm8kOTrU6/tNGLicNyWNzQcdpoIdIyMjmnYBVg61xlARpP/tJSk1UFsMbyxxGQmQbhSxSmTELyQyIgwYjJ799NgwfnHWGEKCLGzNrzTvYtzhzTPkxn9+41dE5OYzx/Dq9Sez8c6z+kyIaJpmRkaGxet3XN1ZN2Kcy1mIQN94qxyu1H/PY1OjAczUSHfh3HllDEcboxSyNXQpr4U8yEyLnv67O+gVFli2Anrharm9eFXqRQYvCyalYejM5OhQs2AVANXGiO/+AuheI8fQoyZJSi1mHC33LlD1v6EMs71XxIg/iBgRBgyGcEiLDSc9NpzLZg8H4LGP9poXFWd8eYb4y9jUqD43KqptbjdTJka9SnfVjdhUzaMFesdURU/T2Nputkvm2KM+3W0J70x5nS7wllg/IknRBdlYpUh/TIvj6eCVLLBsJSU6zDGXRupFBi0pMWHMGhEPwNRhca4RsIJNjGjcCUAlMeSr+o2JY3qzBrVFULAJcNSX7C4J/Kahv42i6A1EjAgDBqNmxCgMu/HM0YQFW/jmcDXr95Z32t8foyt/6A8XH6OTJjLEyuQM/Y7Mm215IGzNr6Tdy4ddb3qrGMWrkaFW6lv09ExPtUbaVI2aCj3iE49DjI2xi5H9WiYA94W8xOwRsWbNiLT1Dm6uO2UkQRaFi6ZnuD5QX0qU0myKj6+1sYA9TdNhP3DMOtpTUku1U72XL9zNT3LX2TXYEDEiDBiKa43IiC4OUqLDWDInG4A/rt3b6e7heL1A+tOIb8NjJD4yhHH29EV3RUZKav0LI/eGt8o73+hCoKHFxtpd+of6v7cd6fIHsapqLHvrO/6xMb/TY1sPlBOj6UPy4hXHz3Kc5QgA32vDsCiQRgXWws0OK3gRI4OahZPT+f4P53LBCR3ESJQ+rXeEfWDednUM4EaM2PdLjg5lTEoUmgZbDvon5PvrKIreQMSI0CX6IoxYYnczzLAbCgHccPpoYsKC2F1cy+tfFrrs3x0Rjf4y4tuIjCREhjAuNQrQO2qa246/oyYqJNiv/Xo6QpS7s5hn/nuw0/bmNrXLH8R7S+t4dWshf1q7p1Mqz3boc2o13TciTnFEmYw0zREtiUbNLjzqS00xJu6rgx+3Bcr2AXrGjJpG9L+HRGqNo8wBegYnj9JvZLYc9D1p25+0cm+lS/sCESNCwPRVGNFRM+K4KCZEhnDb2eMAePQ/e6lpdIT0fRldGZGPpy6bQWSIq0+ARYG/Xja934z4NjxG4iNCSI4OJSYsyOyoOV6ykyK8Pt4bESLjg9gbXfkgLrFH05rbVHPcu0Ey1VSjR5mcIyMJSh2J1KBh4aBm//1HpVJeL2maIY19gN4IS5nLZj0yYv+UsQ/QM5gzSh/A548Y6c+jKHoDESNCQKz5rpgb+iCMWN/SbhYydvSJuHLOCMamRFHZ0MqfP3YYoXkzunL2DDnvhHTOztFDqxeckE60/UIfFtzZyKivqHSKjCiK4kjVdEPdSFWj55qM3vJW6akP4rJaxzk7mk+lZY2ize5u4FwzAo66kddtZ/Cm9VzeqcqmqEo/vj/UEAl9RM5isk/+kcumZKUGYjJc2noNThpl1I3UuTgou6M/j6LoDUSMCH6z5ruj3PzqNreP9XQY0ShejQ4LIirU1R4n2Gph+aJJALy0pYA3viw000fzc9LcGl2lxYbx9BUzzMhHhf2u+QcTU7h4VhYA//rqSLe/jq5i1ozYp9eO7ca6kcqGFvP/HfVGx59TT9FTH8RGnQfAkSpXM7Xa5BkAhNBKOC0ujxl1Iy/ZzuGOhiu57Y3vTNEmaZqhzYipp7p8n3TxE3Dbjk5CBPSZNWNT9LTqF/neoyP+itzBKobF9Ezwi9ydxdz4z2+87uN892oMneouOnbSdOSUsUlMy4ple2ENv/n3d+Z2w7Rr451nmUZXKdF6ysH5Tt/slIgK46ezYvjHxnzW7Smlor6FxH4wLt5RM6LXdxh1I93hNeKcvogICeLZJbM8/px6ip76IC51Ei9GZAPVBgWbqC4oA8L0qEiHl3iNNZdKLZqG+AmoiePQNA1V05g5PH7QXgwE/8hOdE1rfh+SQzIWPMVRTx6VyPdl9Ww5WOlV1Btp5ZKaZrd1Iwr6zUF/KKjvCUSMCD7xJ5/vTE+EEYvtxatpTsWrzuTuLGZ7YU2n7Ub6yNfdvTkKPDqECWkxnDAslu+O1PDO9qNcd8rIbngFx4fhvhofqUdGHGma7oiMOMRIQ2s7J49K6HWH0dkjE0iJDjW9PNzRlboV18hIk27ZnXsn1B6lyjYFWEa8tQnCE6DJkQIaGdXOk+fPgkkXBfpShEHOloMVKDiiwVc+t9WrU/Gc0Ym8tKXAZ92IkVZe+vI2l/ND34+i6A0kTSP4JFC/Dn/uHDVNo6K+xe+UjhkZiel8bm9iyZ/0UbtNNdMgyfYoyE9nDgPgX18VujVU620M99UEI01jD/0WdENHTUW944KtaXqxZ29jtShccfJwr/t05YO41EncFBUe0i27a/UhaFXoP8M4rQalqRLOuBt+/A+46n2UO/aJEBE6YbTedvxE8FYzZwjoPSV1LsLfHZ7mJ/VWurQvkciI4JNAIh2+7l5b2m2s2VHMqs8P8e2RGm44fTR3nTvB53k7eow4E0jxo7v0UWVDK5qmXxCNmozFUzN54IPd7CmpY9fRWiZnxnY6rjdxbu0FvaMjNjyYmqY2DpY3kJPR9Rk1FR0+IBta2wkP6f3iXSPqFRJkobXdVRCt+NHkLn0QlzsVsB4pKYVgx2WkWrN30lAHKLDtBT33b+k/hctC/8FX660CPLB6B/MjvsfaUKb7jYyYS1JUKONSo9hXWs8XBys4d4r393HH+Um9mS7tS0SMCD4JJEfu6e61or6Fl7YU8PKWw2ZKBOCjvBK/xEiJMZemfhfkl+q9/PaLRlldsznkLIVq9mvp5GnZdCwE8CSqjNRAYmQIFvvaYyOCWTApjfe+Pcq/tx3pczFiRG4MMaJ31ETx5aEqvi+rOz4x0qHltbHFhj1o0KscrtALTH86cxgXnJBBWV0zd7+9g4YWm+lmGQiqqrmkfYpssWhBmLNHzMiIUo+LlffIU92cTRjq+LrpOceyleUtL2J90anjKyYDFj7CyaNGsa+0ni1+iBFwzE8aSkiaRvCJUVjlDYsCT13mOYx4+d+/YOXH33OsvoXUmFCWnjEagIPHGmjwNCJetUH+Z5C7jOL9evFs2rbH4YULYOVkc2T3hKr1bAy9hddCHuSJkL+yJvS3fBJyO6Mpcjmdp2yLWS/SoVB10Qn6a1m7s6RPUzXtNpWaJteaEXB01BxvEWvH0HFDa8/NgvGGYQU/IjHCHGRnRKq6MiyvqrHVxea+gXCqnVRWtab/36Wt127lLQgd8RYhXmDZytPBK0mjQ+u5fZrvnBDdzM9fJ9ahiIgRwSfOfh2e+Oul0znvBPdCpLG1nT32YVF/vmQqG+88izsXTiAlOhRN02c3dCJvtS44XrgAtjxFsU2PTKQr9j9mY2T3f+5h3H9vIk1x/SMfZSnl49Bf84egvxOCfrF99rPO7p7g6KRJ6mBmddq4ZCJCrBytaebbI52LY3uLmqY2U0jFhTvcUo26kX3H2d5b0eBaNNrYx2JkeIKjWyE6TH+9XRmWV2ovXk0K00iiGoAiLcl8vMpI0zi5rxpW3oLQEU8RYgsqy4Nf1P/fKShsH2656wFAdwR+ZUvBkBl+FwgiRgS/WDg5nTvOGddpe3psGM9cMYPzOs5xcOLQMf0iExcRzA+nDyPYqr/tJtlTC7uOOokR1QbrH4E3rjQLDZu0ENMp0yE6NP1r819R0Ny+kRUFLg/6hDUhdwOQd7SaljV369EW1VH0abS2JneIjIQFWzlzQgoAH/bhTAijeDU2PJggq+OVGh01nibu+oOqamZkJClKj0I0tPhfELv05a+56MnPu0XAOMRIpLkt2u4pU98FMWLcySa3H2WYog9SPOIsRow0DfW4s/IWBGc8OTrPtuwhQ6l0I0QMNBLr9xFl0cXxb9/ZOWSG3wWCiBHBbzq21T552Qw23nkWCyene51Vc6hCtyw3RmobGHUYu4rsYiRvNfx5Eqx/yGW/Ek2vF4igmRhcjavQfHd+jFaOEk4zGhaKtvy7U5rHERkJ6XTsuZPTAH2A2zvfHOm2O5rimiZ2FvkXbTHaehMiXdc3NvX4O2qqm9owXk5mvB6R8FdYVNS38OHOErYXVvPWtiLfB3ihrrnNFEVZCY73WXRYkPl4oBhtvalqOZnKMQCOaMnm42aaxqgZ6WDlLQjOeHJ0TrFH3XyRrLpGb4fC8LtAEDEi+E1BhesclBGJEVgtis9ZNfnH9ONGJrmKESMysvNojS4M3lgCdZ3/MIvtYiRNqaQr9heKAln2O+NCTY90UHtUf7681WbNSMfICOj1GqCH/G97/dtuu6O5dtVXXPTk551+pu5wzKVxHWiXHBVKXEQwqgYHyrsWHTHcV2PCgoi1p4D8jYzsLXGkN57/PB/1OERaYaVeoJwQGWKmZsBZjHQlTWMfbKdUmZERlzQNTmmak29066ApCM64a70tI86vY4MV1/fwUBh+FwgiRgS/OVThGpUor2vxa+T1oWPuIyOTMvTIyL7SOlo/vBvcNs1BCboYSVe6XvzlECPJrg/k3sUxI5zfoWYkd2cxv3z9287rOc47mrLaZnYX19KuauwudlMv04GqDp00BoqimHUjXU3VGCmqxKhQc1igv5GRvU6FswfKG/hs/7EurQHgcKX+HnGuFwGIMsSIpyJnLxidNKlUM8xLZCSOehh/XuCLFoYkCyens/HOs3j1+pP5y/9M49ZrrkKLyUDzMJJT1eColsj3Wmanxwb78LtAEDEi+M1h+1280bpbWtvs18hrIzLScTrssPhwYsKCaLNpfF/j+a1oREbSFTcOhop/b+EsRZ+0ecRFjOjtnOVV1YBrZKQnx3lvO1xl/v9IVZOXPXWcJ/Z2xEitfLy7tEspJOPciZEhRIToF/6GVkdkxFv6zYiMhAXrv4PnP88P6LmdcVe8Cs4FrIGnaczISLhmihEjMtKmWalDf674mCipFRECwmi9vXBaJnPGprB90l32kQGu+xnf39d2pYfKNp3BOvwuEESMCH5jREYm29Mr3xyu9stszLAs7xgZURTF9MfYpWZ7PI9RM5LesW0OBebc7NfajYtRp8gIcKxRv/gm1eyEHW9C/mdsPVDeY+O8vy5wiJHCykYve+p0NDwzyN1ZzMd5JQC8921xl1JIhvtqQmQIkaH2yIg9CuEr/WZ0SP3irLEoCqzfW97lCI1nMRJgmsZoB9/xJmXH9N95yqwLO9WMVKO/FxVUYhfeK7UiQpexqRo3bhvG0rbbzCiuQQmJLG27jbXqbK/nkHlHYnom+El1Y6vpdTFjRDzfHqkx58X4wjguu0PNCMDkjFi2HKwkTxvh8XhHzYhTZCQmUy84zFkMw06E926BpioPZ4BhZmQkxWV7m2alqkWP9CSvvhwU/WI6LSyVBZZLfX6IfL6/PGB3RBcx4k9kxJjY6yRGfNlS+2sdbbivJkaFukRGfJ3/ycun8709TXNOTirfHK7m492lrNqUz4MXTfH5vB0psAvd4YnHERlxmjsDUNb8BJBESjhk/ngFvAq1RFKrhZvuqzEhCtbJiwJeryAYGGZoxczmo5ZZpvliGXFsVSegernnH+zD7wIh4MjIhg0bWLRoERkZGSiKwjvvvOPzmPXr1zNjxgxCQ0MZM2YMq1at6sJShb7EiIqkxoSad68t7b47WQwSIkPMAklnJmXai1gt4+k0OtVOiaY7EaaHteuFhle97zqyO2cx/PqAPlskPN7tOdzXjChUhOnzUIJoJxZHMWlYcxlPB69kgWWr19f1108PMPOBj/jLx/v8SpE0t9nYWeSoEwkoMmJP03RnCslwX02MDDFrRupb2n2ef/nqXTS02gixWshOiuTaedkA/PvrImoaA0+pGOmqrPgOYsRo7fVVM2IUQNuFiKoplNsLC1M/uY3IYEcBcNEPnqRq4ZMAxEd3FsiCEAjOKRYVC1vUHFarc9mi5qBiwYLKyZY8Fls2mTdFMDSG3wVCwGKkoaGBqVOn8uSTT/q1f35+Pueffz5nnnkm27dv57bbbuNnP/sZa9euDXixQt9hdH2MSIw0Cz1VTXPbd2+g4DDp6jh228AoYt2tZaNqCu4EiZGmSbvmRVi4Qrfr7hhWt1jhjDt1UXLV+7poiXDYKRs1I5XE0KCF2p9Ho1zVxVAitVgUx+VXQQMF/hD8HBdaNjJT2YunAtvqpjb+/PH3zHzwI58pkp1FNbTaVILsHz5Hqpp8urtWNrq6rwYyi8cXhuFZYlQIEfYLf2Flo8/zl9fpImZUciTBVgtzRicyIS2apjYbr3152OfzupxP0zhqt/vPjHNtH/crTaPa9IiI0++niija7IHfJGog9y6GxevnLko6harYiQDEuanDEYRA8JZiWWDZ6uIOfYv1bQCSqB4Sw+8CIWAxcu655/Lggw/ywx/+0K/9n3nmGUaOHMljjz3GxIkTufnmm/nJT37Cn//854AXK/QdhnFZdmKEWeh5rL7Vbd+98/enjdMLBt2laABGJUUSGmShoV3h0LkvQIzrH2ZL9HCOYXdfjfPjLtZi1cXKwhVwx/emMImJjCDWbvt9REvWZ0accTfHmu0pGqWz54cFSFJq+UvIU/w79D5OVPbaX5v7iFB1Y5vPLhsjRXPK2CQUBZrabJ0G1XXEUTOiCzt/i9382c+IjCQ4RUZqm/yPbExI09MdiqJw7byRALyw6ZDZEu0PlQ2ttLSrKAqkxrp2NPnlwFqwyYyIGJRpcQAkUkOI0g61RWSG6O/hI1WNVBupr4jO0TpBCARPZmjuLOKNIvwEpY6Ni+tFiDjR4wWsmzdv5uyzz3bZtmDBAjZv3uzxmJaWFmpra12+hL7FOTJi2KaX17X4HHkdbNUvcCMT3QuJIKuFien2ItbwWXDbTl1A2Ee5l121CYDQIAtxgV44OgiTYUn68xSe+b96midxNOWaLnSS3IiRjiyy6u/ZKUq+x/SNhvcUiSFG5oxKJC1G/5n5StVUdeim8bfYzZ/9Kkz31VAzMhJIQ874NMeAvsXTMkiIDOFoTTP/yfN/xosRhUmKCiU0yDXi5VdkxI03Tammp+tSFEd9zrBQPfpSVN1ElRFtksiIcJy4M0PzZBFv2BMUa4lY37/NxQl6qNPjYqSkpITUVNd5D6mpqdTW1tLU5L54b8WKFcTGxppfWVlZPb1MwQfOLqpGmqa+pZ3G1vZOffevXn+y6cxqHuchMgIdbOENATHlJzDyVIrr9ItGemwYSlcczwwsVrJS9eLVwpCR+vNEpVJuj7okK9U+T7HA+iUA32mjuT/oOZ4MWskcy04sHSIlnlIkmqaZbb0zR8Sb9RHeilhb21XTY8PopvF0J2agoP+8/CmKM1t7oxyRkSCr4vP8RpppfJpj8FxYsJVLTtT/VnN3lvh8bgMjRZPhZhhjVKgPB9a81ZC7rNPmMlOMVJvbMhP0tR6pajK9WyRNI3QHHW/KPFnEG5GROiKoa2yCDY/29lL7Lf2ytXfZsmXU1NSYX4WFhX29pCGP0e0wIjGC6NAgQoP0t84xe+2AS9/96ESzIOuQB/dVZ4y6kV1HO0cnjI6djpGXrmDYjBtun4yYS3mwbkSUhO/ISKpSzSRF99LYrE3h/KCtvBryEN+FXscvrP92ESXuUiSHKxs5Vt9KsFVhcmYsw+zrOVLlOTJipBMsCsTYUxaebKmdv/enKM6mai6GakY3TWOrzev5NfR6IXCNjADk2KNcJV5qTjpiipEO9SLgeM0t7SqtHQumjaLVxs5ma4YrZqpShTF3JnOU/pqKqpuobjAiI5KmEboH55uyO+bGut0nUmkhxl4oX6IlwKYnJDpip8fFSFpaGqWlriHb0tJSYmJiCA/v/OEDEBoaSkxMjMuX0HfUNbeZ4fwRiREoimJGR8rrPV90ajsc5wnnyEjHYk4jhJ8e6/69EghZCUYkwn7xt1g5ljoPcF8z4o5TLTsA2GBztK9GKS38KvjffBt6PedavgDcp0iMFM3kzFjCgq0MMyIjlY7ISEeTMcOqPj4iBIuTuPCVHvMnF13V2GpOA06IcPUZ8Xb+e86fiKrpnS4doxmp9tRTSa3/YsTb79hwYIUO0RE3RavOmGkaY27IwocZ5i4yEimREaH7MG7KZk2a6HEfIzpSrCVAa71ER+z0uM/InDlzWLNmjcu2jz76iDlz5vT0UwvdhBEVSYpyzA1Jjg7lSFWT2VXhgmqDgk0cKigDwkjqMG+kI+PTorFaFCobWimpbXa5KBl32N0SGTEv/o5IxDFLElBJUoQFvNeRAroYeca2mI3qFDQNl1k50UoTTwX/hZetFzF7ZGd7cUOMzBweb1+Pa2Qkd2cx972X59LJYhStxru5aC6cnM78nDTufnsHr39ZyGljk3j+mtl+twkaxatxEfo04I4OrMb5t+ZXUlbXTEq0nvp5/zu9WHRcWnSn1FmakxjRNM2v1FqRGRnp/Du2WhQiQqw0ttqob2kn0XDJdVO06oxRwJoa2gY/eRFyFpNpL8ytbGjlqD3iJpERoUcYMRfC46CputND6Uole7XhFNstC/jiaTjtjiFvvBdwZKS+vp7t27ezfft2QG/d3b59O4cP6+18y5YtY8mSJeb+N9xwAwcPHuQ3v/kNe/bs4amnnuKNN97gl7/8Zfe8AqHHcaRoHKkWo6Om3H7nbpK3Wp+I+8IF5K97FoDs1r3mhFx3hAVbzRkru4pci5WNNE16N4gRs7XTqZ3WmNibfPFf9MLZHz0LEUkezzHTso8wWigjnn3aMLf7XKG+g3XtXboTqFMI1hQjI+xiJMEhjjzN+DEm9nrCalGYM0r/UGuzaQH5FZhtvXahY0ZGnGbTuEu/GTbw4+2dNM6kxOjvi9Z21TS784Xxmt2lacCpiLWxxXRXJf+/Xs9pREaSZy42/Whiw4PNc+0r0TurpIBV6BEsVjjpRrcPGZGRo4YYaarSxfUQJ2Ax8tVXXzF9+nSmT58OwO2338706dO59957ASguLjaFCcDIkSP54IMP+Oijj5g6dSqPPfYYf//731mwYEE3vQShpzlkdtI4Ui3JTh01Jh2Mpwq0NACy1cPmhFxP5DhP8LVjUzXTXrymse24J1saaZG6lnbzQmkMikuOCdcLZ0+4GC74M54M2MKUNk6y7AbgM7Wz06ii2I/84hl44QL48yRY/wh12940L+IdxUhRdRO/X73LQ8JBp7Cy0ePrNy7iR/10xDVwGJ7pv0sjMtJm0zrXZzhhvI4JbsRIWLDV7HryN1VTXO1dcBpRtdpXlug/039fBxv+5PWc5UZkJNG1iNfwMWm1tx4H3KElCP5y2h0Q0rlWzuiocbGOr/e/+2ywErAYOeOMM9A0rdOX4aq6atUq1q9f3+mYb775hpaWFg4cOMDVV1/dDUsXeguzrTfBKTLSUYy4yeEfUnUxMlKxd1bk3uWxWMsoYt1ZVMvmAxXc/94uTvzDxxwo15/7sY/2BTx3pSPhIVaS7BGdwsomWtptpihJchqSR85iuPhFCHffjXKqZSfgXox0oq4Y1j/E9rf/jAZkWSpIOfIfQE9pBFkU2mwaJbUtXk/T0q56NDEzLuLFNc2oAQg2504agIgQR5jYOTrSsY7FmEkzLrWzGAGnVI0fRaztNtUULR4jI6r+fPUNvt1qATQNyrDXjIw70eWxYR0cXiUyIvQYFivMvbXT5nQ6REYAolI77TfUkNk0gk8MK3jnqbudxIibHH6+ERlRSjAm5FKwSY9AdMAoYv10Tykf73Z/lxDo3BV3ZCWEc6y+hcKqRvMiHGxVOlvV5yyGCefrxWVbnoLmavOhUy3fAfCFOpEWLYhQxfcQt6+1cQDMZDe88TRc/CLWnMVkxIVzuLIRBZWTfMy08GRilhYbhqLoqZGKhlbzd+ML5yF5+s/BQkiQhdZ2lYZWG3ER7utYDNxFRkAvYt1TUkeZD4Glv6YWVE3/HThPTTZRbUTV7gPGm1N2fVFFtOm+mhzTeVK0MyJGhB7ltDv0mhCnuVlmZERLQO/0ypCp0fTT1l6hf+FseGbQqWZk75pOxx1yESN2PIQjjVC9zcuNfaBzV9zhXMRqCKmkqFD3hZaGxfxvDupzb+yMU46QQhXNhPK1Os6v5zX2m2nZp2+wR4mMduPfBb1sWka/FvIgX4fewC3Wf5Nk7wY5XdnOmPptbiNLwVYLqfbuHaNN1h+ch+QZGF4jjS3tHutYDLYcrHC7PdVeN+JPmsaoCUqNCXPpFjIp2ERMu/5BXqf511FVGjke0EVWSJDrR5yzGAkNshAeMrSLBoUexmKFRU+4bHJ009gjIwsfHvLFqyBiRPBBU6uNUvsdbrabmpFjdS36BfK7112Oq9EiqUK/c3YRI27CkTZV449r9/q1nkDmrrjD9BqpajTbZn1GEgxRcvFLEB6PosAp9hZff1I1Nk1huzoGgBmW73GOEmWhD/Cro8Mdu1LP7cH/ZqJFr7+6MGgTkz6+Av402rX2RrVB/mek263Oj1Y14C/OQ/IMjLqRumbPw/IMPInCtADae4uq7Skao4NKtcGB9fDJg7DuQTi4nmhFf231eBEjp/7a4dq7+BUAUtz8Xp1n30hUROgVchbrnx0xGYAjMlJPOLUXvegY+DnEkTSN4JXD9jbY2PBgF7dKo8aivK4F7b+PojS63iUbKZoUqohU7NGTiCS34Uhfg9/c4e98lo4YNQN6W7IjMuIXRuom/zNOffdN3iqDz9QTuJPXvR72vTaMOiKIpInxipOBX10xw4o3AOdyREtxe2ylfdR9PHrdBE1V8MaV+ocb6HU6tUfJaP0F3zCHo6vvg6AL/PqA61gzAo6Omq8Lqnz+TgxROGd0osv2VHsNS5k/kRGzrTcU1j8Cm/4Cra6CKorLAajTXFMu1VokP2y9nzmWXTw06nQz/Vf6lf4zNjxPnHGuGZHiVaHXMD47CjYRUV9K7JtQ0wIl6WciLlo6EhkRvOKwgXe9EBjRhFabSu36v3Q+zl2K5oSL3YYjuyIs/J3P0hHnNI0ZGfFXjIC+/tFnMO963aholzaCCs197YTBdnU0AFMtBwhSnLpUGsrJaj2gr0dNdntslf3cCUqd6wOrb9FFib1OJ9NoF2wK9tm5ZHCswbVmBByRkdLjGMbnd2REtVFceBCA9LznYP1DnYQIYEZGajvUjHyhTiRfS+dV21mUxM0wtxsi021kJF4iI0If4TTqIj1e/7sOJK062BExInjEpmps2KenESJDg1xC8mHBVtOzwRg250y+0UljcRIj4zsbgUFgwiKQuSvuyDIt2JsoMyIj0YFflFKiw5iQFo2Ghdcn/R/7Ry9Bw70faJGmC41RitEJpNuTE5nMMEX/+R7R3IuRSnuqK4EOYqS5yuXbTt4FXjqXzHM7DckzMGpGkqq2c7IljyDamWPZye1Bb/BLyxsE4Vqs6+53Z7qw1rgpYLWnlchdBo+OpShP91fIUD13SUWjf2B3jIzka3oRs4aF/11/0Oz2Mbp43EVG4iOCza6h+EiJjAh9g9EBF8jYhMGOpGkEt3Tsoth0oIJTHvmE5YtyzE6W5FAbdc262+UYXDtpOkVGYjI9Vowbg99Kapq91igEMnfFExlx4VgUvVV2T7F+gQ8oMuJEVnw4e0rq+OM2+CMLWWBJ4P6Ql0jFNWVVYm8zTVMqHa9i4cMQHk+WUgZAMYm0aVaCFYeAaNJCaEZfW3zHyEjH1+UiRrx3LgG02VSq7ZNrzchI3moiCncDk4nZ8y9eC/kEm6ZgVfTfSpkWx59bLsaCyg2Wd3k36mJmj4jVxUV9qV4PNGKuKQIqGlpoa2sj+MgWvcX5wHrY94GLK6VRxGes3x3RuK8ZyQ8ahaGNXvniMK98odfXBFv1n3FDSzs21dUITlEUMuPC+b6sXobkCX1GuukNJGLEQMSI0Amji6KjMHBprbV8SXLDAQ4yzpx864yzGNEAxUvFuDH4benL28xBbO5Iiw1zEUNdIdhqIT02nKLqJr4rqgYgyc9WWGdydxbz0e4yl21r1dl83DyLEy17WHZKHFMjKmHbKkqO6VGcVKr0IraFD+s5ZNVGckwkoeWttBBCsZbIcMVxTiMqEkIbkXj/0MpU9GFxLt4FXoyUjNksimJPV9gN6yLblwLQiC4oLE6/jb2q7jibrZTwm5B/cbu6ButjIS5ti8RkkLjgEYIsQbSrGuUrTyWjYbfHdRRr+s8m3ZsYUYzISLheqJoyAaJS+fotGzR3Tuu02Vuynt90iNxdJZ3eM8PidTEiVvBCX2HMdCqWNI2JpGkEF2yq5rGLwti2/p3n0N64kmRVv4Acc5OmOaTpXTPZSgmPt/2EXPXETvs442kwW0JkMNfNy+bV609m451nHZcQMTDqBprb9PqNQCMjxs/I7WNY+ELN4YZvR2E77TfYbtlBQcQJALTMugHbLd85ikstVpRzHzFTNYUdUjVVTsWrzp3HmptfjhFZKCeeFs1+j+HFSMnopImPCMGKahrWRSi66GmwR2Scn3evNhzQW5sBgtobXIUIQG0xln8tISVYP09JnWdL+GYtmAq7kPUnMlJHBIw6Hab8BNuIUzh4zHfnULFdQDub5c3K1gXQ5Az3k1UFoadJs3ePBTJQcrAjkRHBBV+dLQoqv2l7ChRIVqoBh/W2QZUWRQ36rJlQWnnKdhEp7+UxPyfNa3rF02C2rqZkPJEVH+HSGhxoZMTXz8hoP/7rJ/t57cvDFOuO9vxuCzy5+7+ud+o5i8nKeJ8DRZ3FiNlJ45Si0TT9/DVEEUsDil0ixlNHKHqEpURLZERskFcjJZe2XifDOiMC06h1rrcoskddRjgXJbt99QqprYc5ylhzRow7jBRNBM3E4llYmK29SpT5mtbvLSMQq5n73svjrAmpfF1QRWZcGE9eNoNzJqX5fwJB6EaMyEinAlb7kFHntOdQ8SARMSK44Kuz5SbrOyQo+tXVIUZc7zCNtt40Knik/VJsWDy2gXbEGMzWkxhFrAZ+t/ba8bf7588f7+u0zZ2LbFZWNhQVcGT4RVC13aypMHxanDtpqohiWdvPAHgm5C9gT2wpip6qOahlcFRLZMTCZV4/xMwheVEhUF9kbo9A395AZzFSoelNiMlKbafHXNH0+hgNH2LEkaLxNtw3yihgtcaZrymv2NcanFeji8OTV6wzi3ZBLyI83rSfIHSFNKcRDuZ067zVZqu+SUwGLHxkSHiRSJpGcMFbZ4sFlWuDcs3vk9GH2pUT57KfUS/SQjBr1dnm9q56g0Dn+SjHMzQvy8lrIiTIQkxYYJq8q23F4N5F1nAFLYyZBr8+yMZ5q7il9Wb+3P4jAI5pMTzRdhGXtt7NrJZnWKvOZq06my9nr4QYx4XULGKdfbfPDy+XIXlO6ZxIxXNkpNLuiJDgU4xAqqKnb0o0z11PRVqSy7o9ER2ui8X6dsWcvdPS5nmQnyechQg4hOHxzDsShK6Qbk/TNLbaqG1u7zRk1KS22O9W/YGOREYEF7x1tsy27CHeHhUBz5GRr+zW51Ud7Hy6ehF3Nx/leO5qjWm5oNeLuLWC94K/3T+ecHaRnTM60VxPYWUjWKxYR53G6nWOTo992nAetw3vdB7b+EWw8EozrJv+VQzsbeNoxASfa3AxPBsxVb8Dqy0mAteaEWeO2SMjifgvRrxGRvDSSRMSBaN/ACdeR3TmHFj+EZoGDa3tRIcF0x2ZOz2hpAtDXylEQehOwkOsxEcEU9XYRnFVA7Edhow6sL9Lc+/STdMGccpGIiOCC0ZnizvOtnzl8n2yYo+MONWM2DSFXNtsl/2OxxvE03yU47mrdZ5P0pVOGm8/o0AuZ0akyDRiq9LTEYbY8YTLz9PJSCljWDYAR2t8V+hXOBueWax6KBhMt9xGL2maRPvv3TMKaXahWopnMWJ0/hidNM0h8XDyjXDV+3DXYbjkRRh1OmGhIYRY9Y+quma9l9cY3qg/W9c53vECgtBVjCLW4u+3dY6IuODUqj+IETEidGLh5HSeuny6y4f8AstWrnNK0YBDjFQSg03T9/5KG2+G8+H4vEH86ezpytC81Jgw04siOaprXhNm90+Mq5hJiw3jl2eP9escRqTIqGEpr2uhuc3ml9hx9/M05q4crfadDjPTNEa9TM5iuPhFIiL0czSYaRr9OVRNMWtYEr16nuj7p04+HfCepjHEyH5bBv/T+ju++elWWLhCF1cd7gCjwhwzcwDy7Z00N5w+qlMHVlc4nhSiIHQFs723wpe4t+NmGOlgQsSI4JbJmXFoQJBF4bGfTOKJuNc67ZNALQoqKhYqiEED3rHNc9knLTbMpVgzEPztWgn0rtZqUcwLt88heV5YODmdz+/6gWl/fs/5E9l451ncfNZY0mPDPN6xd4wUxYYHExWqX2xf3HyIzQcqmJ+TxtiUqE7Hevt5ZphixJ/ISOcheeQsJvLHTwLQGDtGj1D8rgyWrKZ23E9ot2d1E+xpGi08AcI7RD5iMuDiF0k9S/crKcW9GKnSotipjgTgfW0uBdEzmD3avQstYLr91jW3oWmaKUZ+MnMYG+88i1evP5mLpmV0Oi7BT5fV46kDEoSukB5nd2Ft7/x37pYtTw3q2hGpGRHcsuuofsEZnxbNjxMLobFzO2eQopJIHceIpVyLI4laPg09Cxrh+lNHctaE1ONqzfX3brUrd7VZCREcqmgMuJOmI1aLwtjUKEpqm4mNCDFfq2Hi1hF3kY21u0pobtOdVx9aswfQbdkbWvVtD140meiwIJ+tzsaH29HqJkeFvgcq3YkRICJM/77BEulwbx11Ou8UD4cdeVix8eu2GygjjsKQqdyzKIeFUfmdWhHTWvQIRoMWRt2l73Fw/27e3fQdlVoMJSTwhToBzeleyFfkzBQjLe2U17dQ39KORdF/j0YH1smjEth1tJbvy+r56cxh/GjGMGaOiOf0P33qsb5HQRd4XR0vIAhdxShiPUqyvWbLW6oGBnvtiERGBLcYrZM56TFenTyTnIpYt+f8hpJGhcgQK786ZzxzRiceV1Ggv3erXbmrnW03vpqWFRfwsR0xoixHqhx1DEYax0gHGXSMbBg1Me0dUk2GEDlvShpXnDyCC6dl+vx5Ztg/3BqMCn0vGEMCEzukqSLtg/IaWxy29Lk7i/m93eTNhpXV6ly2qDkcrW1j6SvfktswBqb8xCW9EhkaRLQ92lMaP4Op5/8/Zl/6O76IPpstao6LEHnif6b5jJxFh+oRjrrmdg6W61GRYfERhAY5PpQVReHhH0/hpzOHcc+iHOaMTiQkyGKmvDr+5LpjvIAgdBWjLqy4ttms2fLO4K4dkciI4JY8e2RkUkaMVyfPZKWGPZpexLrJdiLQyg8mphIWfPzK3VfXiq+7WpuqeTRQu/msMVx60vDjjoyAQ4wUVbmmRxZOTic+YhdldS3ccc44Zo5IcFmDt5oYg28OV3ear+KJ8BArCZEhVDa0crS6idhw9ymK1nbVrL1IjHR9/cYQuYbWdpc1usNXN0pqbBh1ZfWU1jYzJiXKxdRue2EVj+TuJT4imMXTMr3+rsC5ZqSNBnvUZWRSZKc1zRyRwMwRru8HQxh27MjqjvECgtBVnL1GyFmsF29vecrncWrN0UEZRRAxIrhltxEZyYiFEcPN1s+O7WfJVANQFjqcNYX6hezcyd3jbOltZo2vu1pf7cCKonSLEAEY5jQJ2Jk2m0q5PQJx8YlZnSI4vmpiQP+g+vNH+5g3JsmvlFd6bJgpRiamOwqJW9tVvjpUySd7yvhkrz7/xmpROgmWSHs0o7lNNQWCv3U7Hc3qUmNC2V9W7zKZ1EipNLW129cb7lfrtpGm2VVUS0mt/nPOTuwsRjzRW+6+guAvRiSzuNpufDb+PL/ESPU7d1BQ2sz0BVf19BJ7lcEosITjpLqxlSJ7EeSElp2w622YcTWOe2EHRkfNf6PO5UhVE+HBVs4Yn9Jta/E0s8ZbIWdPtAN7IzNOb80t6lA4Wl7XgqbpRcBJkZ2Fj7+1Ln/9dD+XPruFUx75xOfaOxaxqqrGU+v3M/OBj7js71/w9435HCxvIMiicOXJI7B0uBgbkRGAxtb246rbMab3lrp5zOj4CbIobn9XxTXN3PDyNtZ8p+fRq+w1Lv/cephP9uizfN7+5khAv0tDCPmT8hKEnsb4TGtqs1HT1AYj5qLFZKD5aFaP02qZuukWvln7Qm8ss9eQyIjQCaNeZLjlGDGvXeZ4IDwB0FyGoyWHa1APW0v1P6AzxicTHtK9xVWB3NX6agfuCZMrw7fkaHWTS0rFGIKVGhPW6aIPgde6uLOS70im02jyqoZWbn9jO5/u1S/eiZEhnDE+hbMmpHDquCRiwjqncUKDLFgtCjZVo7HVdlx1O0aXUambyEqx3Qtlf3m91zTVza9+w3WF1eZrcKa2ud3nz0MQ+ithwY60anFNM1sONrC+8Qoe0v6IBi7GfmVaHDE0EKa0YVFA1SB9833YfnA51qDBcRkfHK9C6FbyvtkMWMjhoOsDhgg5425IHA1RqSRXZ8Pr35m7nDulZy4K/s6sOZ60QldJjQkjyKLQrmqU1TWbVfLGRTg1xn06KFAnV3/EVIa9o2bT/mOs3n6UouomQoMs3H/hJH46M8utKHJGURQiQqzUNbfT0NJurtHTz9Rb3Y4RGXE3mdSIjDS22jo95oyqwbOf5XvdRxxUhYGKkVZ9/9ujPLX+ABrTqLLcxkPB/yBYa+c92xzesJ3Bt9oYzrZ8zd9DHgN0oZJGBbu+WMukeef38avoHiRNI7ii2sjbqbek5lgKOjxov2RuewEm/RBGnkpyjMPNNCTIwlkTui9F0xV6sh3YE1aLYrbVOhexGhdwQ5y4O85Tp4cnfHmrGM/17ZEaiqqbyE6M4O0b53HJicN9ChEDs6OmtesGbOCUpqlt6fSYP14o/iAOqsJAxuioeWlLgXlDsladzYUtDzC75Sl+2/4zvtXGALBBPYE2zTXq3FRVxGBBxIjgSsEm8lp0QZGjdBQj0LG9LMXJNOy0scmmeVdf0ZPtwN5wtPc6LrKlTmkaT3iqifGFJzHlPHfn3MlprP7FKeRkxLjd1xMRofaOGnvXysLJ6aZbpDO+DO2M11TqJjLiq3A3UMRBVRiIGDcPHVvxj5BCM6GMVY7wu6CXiaKRVoI5qLn+rYXHZ/baWnsaSdMILjTXlLJf050scyyHPO9o9x5x7kjpri6a4+F424G7yrD4CKDSpYjVSE+kxXrv2nGuifl8fzl//fSAz+fzJKZOyIzl5jPHkJUQzsWzsgIeAgiukRGDlnZ9Su7DP5pCeIjVr24UIz1VVtfiUkujqppZM5IcHUp5XefISaCIg6owEDEiqp3ReDb4Uc5SvsFqgVzbiXyljWe3NoLxHEHVoExJZMJJC3p1vT2JREYEF/a3JtFOEHHUkY6X0LfdeyQ2PJhRyZEkRYVy9kTPfiS9hbfUR0+aXLkzPjPu/tM8pGmcMWpifjl/fEBW8h2xWBTuWDCeS04c3iUhAu69Riob9W6Wsyam+N2NkhwVikXRjzcG8wEca2ihzaahKPB7DykgfzmeIYyC0Nd4Hoip8KbtdBR7saqRMs9TR2D4IxbPWT5oildBxIjQgTz0eSE5lgLcX8sUiMnUbb/RCx7fvWke//nlacRG+DcHpKfpSjvw8ZIZ7zlNk+YlTdORvhJTzhheI4YLa3VjK5r9AzAhwv/BgkFWixk5K61xiBGjeDU1OozzT8jgqcum05WXIw6qwkBn3ugkJmXEEBbc+VK8Vp3N0rbbKCGBifaU+W5tOGVKIt/OfWLQ+YwMHlkldAt5JfUATFIKwJPV2MKHXWYjRLtpEe1retvkymjvNQpYNU0zzb4CESPQ946hHSMjxlC9uIhggqyB3b+kxYZRVtdCSW0zU4gFoKBCt3M3QtTnnZDBX1G48Z+eZ/lcNjuLV7YWdjq3OKgKA5mUmDA+uOVU0xsJXD9x/6PO5qOWWdw8sRF2w3dBJ5C0LI+0o1/Cjjdd5kENdESMCC4YNvA5c86FfZ+6Dm+KydCFSM7iPlpdYPjbDtwdDHMyPtM0jerGNrPOIsVDa683+tIxtGPNiDnHJtL/qIiBXstRY9bP2FSNZ/6rt4zPHO6Y+HveCek8Y/EswOaNSXIRI/93xUzOzkmViIgwKPB1A3LG+BT+em8uNa1Q+cRppDTsdRwck6HPthkgn8ueEDEimKiq5hiQN+sMOG+n3jXTYSKr0Jm02DAsil7oWV7fQkW9Hk1IiAzp8pye3hRTznTspjEn/HbBPt8o3i2zi5E3vipkd3EtMWFB3HjmGJd9vQkwVdVrTDQNYsKCOGdSapdrYgShP+LrBmRUjMb+GoVdtWGkOH+k1BbDG0vg4hcHtCARMSKYFFY1Ut/STkiQhVHJkWCxOMbIC14JCbKQGqObgxVVNVHd1AYEnqLpD3SMjBjCqiuREeP1l9Q0U9vcxqNr9Tu6W88eR4Kb83kSYBaLQlRoEHXN7YxMjhIhIgxKPN6AqDYmNm9nP9PZrQ3nTL51etBuh5h7F0w4f8DeMEoBq2BipGjGp0YTHGBtgOBUN1LdZLqvBuof0h/oGBmpMNI0UYGLkWS7D82OohrufmsHFQ2tjEqOZMmcEQGfK9peWDvKzbReQRjUFGwix7YHgDw1280Ouv+T7dDnvbqs7kSuOILJLqNeJD0wkyxBx9n4rNi0gh94YqRTZMRI07gZ9ueN3J3FPPKh/gG6p6SO97/Th9qdOzmtS2LXKJQeKWJEGGrUl7p01Hjivn/6HqbZXxExIph8tv8YAFOz4vp2IQMU3fhM76gx2no9+wj0Xzp10xhpmgAiI0Z3QGVjW6fHnvz0QJc+MJOi9ecflxoV8LGCMKCJSiXHchiAfC2dJs393+K+xsgemUzeG3RJjDz55JNkZ2cTFhbGSSedxNatW73uv3LlSsaPH094eDhZWVn88pe/pLlZ7Ju7i4Pl9by29TCq6nncWmVDK2t2FHvc52h1E98WVqMocHZO386XGag4vEYaHe6rAzEy0sFnpDLAyIi3ycngGPZn8/J+dcfd503krnMn9AtzPUHoVUbMJTkmgiRqULGwV8tyeVjT4JgWw1fqOKBrf199TcBi5PXXX+f2229n+fLlbNu2jalTp7JgwQLKysrc7v/Pf/6Tu+66i+XLl7N7927+8Y9/8Prrr3P33Xcf9+IFnbvf3sFdb+3gtS8LPe7z6399y42vbOOFzYfcPr52VwkAs0bEH7e1tk3V2Hyggne3F7H5QMWA+6PoKkaapqi6yfQYSR0EkZFjdvdUdwWn7ghkcnIgTMqI5YbTRwfsdSIIAx6LFeXcR5hoj47sVl1TNYoCSUotG0Jv4xzL1gE5PDLgv+rHH3+c66+/nmuuuYacnByeeeYZIiIieO6559zuv2nTJubNm8dll11GdnY255xzDpdeeqnPaIrgH202lW8OVwPw2peH3e5zpKqRT/bqYvGfXxxG0zqLg9yduhhZMOn45svk7izmlEc+4dJnt3Dra9u59NktnPLIwM1jBsIwJxfWkgGcpjEjIx26aZL8TNP0xeRkQRj05CwmZ+IkAPI09wXgaVTydPBKFli28kV+BT9/8SuXeVn9mYDESGtrK19//TVnn3224wQWC2effTabN292e8zcuXP5+uuvTfFx8OBB1qxZw3nnnefxeVpaWqitrXX5Etyzt6TONNf67kgNu47WdNrnja+OmHbe35fVs80uXgyO1bfw5SFdRS88jmF3Rp1Ax7vikprmAZvHDIQMe2SksdVGtb1WYiAWsJqRkZZ22mwqNfY2ZX99RvpqcrIgDHYmTp4BwHfqKNwFnA0PwOXBL/HJ7lL+k1fK3/7re/BmfyAgMXLs2DFsNhupqa4529TUVEpKStwec9lll3H//fdzyimnEBwczOjRoznjjDO8pmlWrFhBbGys+ZWVleVx36HOd0dcxccbHVI1NlXjX1/p24y79Nc7RFA+yitF1WBKZqxZhBko3uoEjG0DMY8ZCGHBVrOVFSA82EpM2MCz8nHupqmy14tYFIgL98/235ic3NVhf4IguCcnQ+903K9l0nl6lY5FgVQqOVim38Sv21PmNhre3+jx5Ov69et56KGHeOqpp9i2bRtvvfUWH3zwAQ888IDHY5YtW0ZNTY35VVjouRZiqPNtYTUAU4fpcz/e/qaI5jbH6PcN+8oprmkmLiKYP/1kKgDvfVtMXbOjy8FI0QQaFXGuDVn1eX6P1AkMNIy6EdAvuAPRnMv0GWltp7zeUS9i8dN6vT8M+xOEwciopEhCLBoNhFOoJXvcb6+WRb39I/5IVRP7y+p7aYVdJyAxkpSUhNVqpbS01GV7aWkpaWnuL2T33HMPV155JT/72c+YMmUKP/zhD3nooYdYsWIFqqq6PSY0NJSYmBiXL8E93x6pBmDpGaPJjAuntrndFBcAr27VoyA/mj6MeWMSGZUcSVObzfR8qGlqY9MBvaU3kHqRjrUhD3yw26/jBnudgFE3AgMzRQOOyIimOSbsBuox0heTkwVhsBNktTA+Qb9Z8FQ3AvC1vavGYN0e9w0m/YmAxEhISAgzZ85k3bp15jZVVVm3bh1z5sxxe0xjYyMWi+vTWK36D3MghI76M42t7ewrrQNg+vB4fjpzGAB//XQ/mw9UUFzdZL4J/2d2Foqi8D8n6ikvo/Pmkz2ltNk0xqZEMSbFP/8GT7Uh/jDY6wQynCIjVosyINNS4U6zdA5XNgL+d9I4s3ByOhvvPItXrz+Zv/zPNF69/mQ23nmWCBFBOA4mDNf/fvJU92JE1WCDegLgqCH5ZHf/FyMBJ7Rvv/12rrrqKmbNmsXs2bNZuXIlDQ0NXHPNNQAsWbKEzMxMVqxYAcCiRYt4/PHHmT59OieddBL79+/nnnvuYdGiRaYoEbrGrqO1qBqkxoTyzeEq/mmPguwvq+fSZ7cQFmTBpmpMHx7HuNRoAH40Yxh/zN3Lt4XV7C6uDThF48tDwhMK+l3xYK4TyN1ZzGtbHfU4G/cf45RHPhlwY+4tFoWIECuNrTYK7WKkK1bw0HfD/gRhMJK7s5i1eXpmIk8bgao5BAdgFrV+pk5x+f6rgkqqG1uJi+ja33FvELAYueSSSygvL+fee++lpKSEadOmkZubaxa1Hj582CUS8rvf/Q5FUfjd735HUVERycnJLFq0iD/84Q/d9yqGKEa9SFpsGEtf3tZJIDTbu2z2lNSRu7OYhZPTSYoKZX5OKh/uLGHV54f4775ywP8UjS8PCXcMhToBI1rU8XdgdBINtNREREiQixhJ6sLEXkEQuo+OnzGfq5MpIYEMHHV4JSRyV+t1NOP696pq8Onecn44PbMXVxwYijYAciW1tbXExsZSU1Mj9SNO/OLVb3jv26NEhwZRZx9q5o1n7BfE9XvLuPr5L83tWQnhbPj1mX4VW767vYhbX9se0DrTY8MGXHQgEGyqximPfOJRpBlRoY13njVgxNjpf/qUgopGxqZE8X1ZPbfPH8ctPxjb18sShCGJp88YBZWTLHtIoZoy4tiqTkD1UH0xb3Qir1x/cm8s1wV/r98Dr+9QMDEiI/4IEdBba+fnpHHq2GQyYsM4an9jL5yU5nfXh781H/ecP5Gk6FBSovXUzEC5CHeFQBxHB0rKIsJexFpYdXxpGkEQjh9PnzEaFraoOeb3FlRSqaSUBNKooIx4U5x8U1hNu001HYxtqsbW/ErK6pr7xee0iJEBSmVDq1lc6C/OF8SfzsriL+u+BwJr6TU8JEpqmt3WjRhRgKvnjRzUAsSZweg4Gmk3Pmtu01N9gXbTCILQffjz2bHAspXlwS9yXesdlGoJ3Bv8EtMs+1neuoSPtNk0ttr4prCaE7MTyN1ZzH3v5bkInL6OYMuQhwHKd/aWXnd24woqVmwkUc3JljwsOFqojTf1xSdmERUaxOjkSKZnxfv9vOIh0ZnB6DgaEep6nyKREUHoO3x9diywbOXp4JVEaE3s0fS5NbMs+0ijkv8LWcmIIL2uZN3usn7rlC1iZIDybaHuvHqSPVJhsMCylc9Db2Fb6P/j89BbeC3kQTaG3sICi27Hb7ypM+PC+fj20/n30rl+m1kZiIeEK4PRcdSIjBgkdqG115mhOjxRELoDb58xCirLg18E4FttLBoWhiulpCjVZqfNL0I/AHQrh/7qlC1pmgGKERmZmhXHwslpLH15G+fY1TG4tnsZw5PuDv4Ns0c6ZgJ1FBOBsHByOvNz0vpVzrGvMKJFS1/ehgIuf+gDNVpk1IwY+DuXxh39MSQsCAMJb58xIbSTShUWBb5SxwMwS9lnPm5R4Oz2DViVK9lX6t2JtS/r2yQyMgDRNM10XtXFSDpPXz6V+0J0ddzxmucYnvQiVty73nYFw0PiwmmZzBmdOKAutt3NYIsWRYY6IiPBVqXLM3b6a0hYEAYanj5jWgjhE3U6AF9puvPqLMtel33ilAZmJtnwl76ob5PIyACgY9XzsPhwjtW3EmRRyEnXW6UWVrwCVHqanYRFgfCmEijYBCNP7b3FDyEGU7TIOTKSEBnSpRk7voYnKjg6vAbiz0gQepuOnzEf5ZXy/nfFPG9byBmWb/lGHQPAiR3ECMBZoyLYWt7i1/P0RX2biJF+jrsQd1yEPj11Qno0YcFWyFsN6x/y74T1pb73EbrMYHEcda4ZSehiJ81gbHkWhL7G+TNmVnYCH+4sYZM6mbdsp9JMKLHUM1o56nSEAjEZnHXyLB7+4nOv5+5Lp2xJ0/RjPIW4qxv1cYzxESGg2iD3Tv9PGpXanUsUBinO3TRJXeykGYwtz4LQn8iMC2fBJP0z/cH2KwC9i8aiGPFIe8Rx4cOMTo0lxOq45Pe3bkgRI/0Uf2bAfHekGtuhz6H2qJe9nIjJhBFzu2V9wuDGOTLS1U6awdjyLAj9jWvnjQSgjggAZjqnaGIy4OIXIWcxVovCsAR9kOdtPxjT7+rbJE3TT/FnBkxNUzsHDh5gnNe9nFj4MFhkOKHgG+fISFfTNP4a5A2klmdB6G/MHBHPlMxYdhTpdg8nnncdRF+kR8FHzHX5zB+eEMHB8gZSY8PZeOdZ/aq+TcRIP8XvELcW558YOeNuyFl8XGsShg4ukREvaRpvltKDseVZEPobiqJwzbxsbn/jW0KsFqaceBoEu7/pHJGgR08KKhr7XX2biJF+ir+ha2v2PNiRAbXF4CmpE5MJp93RfYsTBj3O3TSeakb88Q8x2hE77pcmPiOC0G0smprBd0dqGJ0SpTc1eGB4YiQAhysbemtpfiNipJ/iK8QNdlfP0cmw8BF4Ywl4uv+U9IwQIM4+I+7SNB3HmRsY/iHOuefB1PIsCP2RYKuF3y+e5HO/4fbISKBzzXoDKWDtp3ibAWNghrhzFutFSjEd7jKdipcEIRCcIyMd0zS+/EOgs6W0GOQJQt8zItGRptG0/jWSQSIj/RhPIe7IECuPXTzVNcSdsxgmnK+bmtWXui1eEgR/cY6MJHWIjIh/iCAMTLLidTFS19xOdWMb8cc5c6o7ETHSzzFC3Gt2FHPLa9+gafDOTfMYmxrdeWeLVdxVhW4hKtRzZET8QwRhYBIeYiUlOpSyuhYOVzaKGBECw2pR+L60Dk2DOaMS3QsRQehGosOCueOccQRZLUSGun5MiH+IIAxcRiRGUFbXQkFlI1Oz4vp6OSYiRgYAbTaV174sBODyk4f38WqEocLNZ411u138QwRh4JKVEMGXh6o4XNG/OmqkgHUAsG53GWV1LSRFhXBOTlpfL0cY4ngrrhb/EEHoZ6g2yP8MdrwJ+Z8xIl53Ye1vHTUSGRkA/POLAgB+OryBkMLPpTBV6HPEP0QQBgB5q9Fy70RxGhkyPOR84HIKKkSMCF6oqG8hOMhCTJg+mffwF6vZ8L0uPC7d/2s4WKa37C58RFp2hT5F/EMEoR+TtxrtjSVoaC4RzKzmfQAcLq3om3V5QMRIP+Ld7UX88vXtqBpEhwWRGd6GWn0UyOJUy3cMt5TpO9YW6yZn4iEi9DH9zVJaEARAtdH03q8J1TQ63htkK6UAlDRqNLe0EhbaPzpqRIz0ER1nelgtCr/+13cYPlF1ze3saVaALACusH7sdLQGKJB7l+4tIikbQRAEwY7t0OeEN5W4dcxMpJZImmggnMO7PmfcjDN7f4FuEDHSB7ib6WFRQNVgfk4qj188lZK8zzny9r0UaUlEKC2cY/mqw1k0qC3STc7EW0QQBEGw422au6JAllLGHm0EW/cdZdyMXl2aR0SM9DKeZnoYEZELTkgjOiyY6OBjjLV+6/uE9aXdvkZBEARh4OJrmvsIpZQ92gj2NUb12pp8Ia29vYi3mR4GD3+4V5/pEZXq30n93U8QBEEYEliz53FUS0D1cLEZruj1h2XBmb24Ku+IGOlFfM30ACitaWTP5jVQVwwRSXgek6dATKbe5isIgiAIdmaPTuaJ4J8BdBIkqqanaQDabP1nWJ6kaXoRX7M6Fli2sjz4RTI+qvRxJrtAWfiwFK8KgiAILlgtCmdcdC03/rOVe4NfJAPHNaWERFbb9JvY/mR8JmKkF/E2q2OBZStPB6/070QxGboQkbZeQRAEwQ0LJ6fDZTfw09XzyKr/lhSqKSOOwqip/L+FY/nq3TwOVzaiqhqWfuANJGKkF/E008OCyvLgF/X/e3pPRCTBwhUQnS4OrIIgCIJPHMaEM12MCVVN4773dtPSrlJe30JqTN8PtZSakV7EeaaHM7Mte8hQKj0LEYDGY7oQGXmqCBFBEATBLwxjwgunZTJndCJWi0Kw1UJGnC5A+ostvIiRXsaY6REe7PjRp1Dt38HSxisIgiB0A8MTIgAo6CfTe0WM9AELJ6czOkXv7772lGz+3/l+dsRIG68gCILQDQxPiASgsJ8UsYoY6QNUVWN/WT0AV56czaQ5C/WiVGnjFQRBEHoYW3s7YXWHAfhu735s7e19vCIRI31CYVUjzW0qoUEWPVRmsepTeIHOgkTaeAVBEITu4Zu1L3DswXGcuH8lANVHv+fYg+P4Zu0LfbquLomRJ598kuzsbMLCwjjppJPYunWr1/2rq6u56aabSE9PJzQ0lHHjxrFmzZouLbi7sakamw9U8O72IjYfqNDdT3uYfaV6VGR0cpRj3HrOYn0Kb0y6684xGTKdVxAEQThuvln7AlM33UKyVsFw+/TeQi2FZK2CqZtu6VNBEnBr7+uvv87tt9/OM888w0knncTKlStZsGABe/fuJSUlpdP+ra2tzJ8/n5SUFN58800yMzMpKCggLi6uO9Z/XLgbWJceG8byRTl6j3YPsa+0DoDxadGuD+Qs1qfwFmzSi1WjUqWNVxAEQThubO3tZGy+D9AtJIaju7BWEEsjYUTSTPbm32L7weVYg3rf9SPgyMjjjz/O9ddfzzXXXENOTg7PPPMMERERPPfcc273f+6556isrOSdd95h3rx5ZGdnc/rppzN16tTjXvzxYAys62jPXlLTzNKXt5G7s7jHntsQI2ODj8GONyH/M1Bt+oMWq96+O+Un0sYrCIIgdAt7vlhLKhWmhUSM0kQ8+rWoQEtFUSCeOra+cHefrC8gMdLa2srXX3/N2Wef7TiBxcLZZ5/N5s2b3R6zevVq5syZw0033URqaiqTJ0/moYcewmazeXyelpYWamtrXb66E28D64xt972X12Mpm30FRQCM++YP8O/r4IULYOVkyFvdI88nCIIgDG2aqoo6bXNO1RhMKHylTwpaAxIjx44dw2azkZrq2mKamppKSUmJ22MOHjzIm2++ic1mY82aNdxzzz089thjPPjggx6fZ8WKFcTGxppfWVlZgSzTJ74G1mlAcU0zW/N9zYgJnPadqzlQpf+ixyuFjgdqi+GNJSJIBEEQhG4nPL7zhF5jem+B5rimx1PPni/W9tq6DHq8m0ZVVVJSUvjb3/7GzJkzueSSS/jtb3/LM8884/GYZcuWUVNTY34VFhZ63Lcr+BpYF+h+fqPaKFjzKK0EE04zmcoxpwftUZjcuxwpG0EQBEHoBiactIBqIl22jbBHRgo013rP0AO932ASUJVKUlISVquV0lJXJ9DS0lLS0tLcHpOenk5wcDBWq6P2YeLEiZSUlNDa2kpISEinY0JDQwkNDQ1kaQHhbWBdV/bzm4JNfF+nv96xShEWpWMaSIPaIr2AdeSp3fvcgiAIwpDFGhTEkeSziCt/z9x2edA6LrJ+zjCl3GXf0QdfhrwFvdrFGVBkJCQkhJkzZ7Ju3Tpzm6qqrFu3jjlz5rg9Zt68eezfvx9VVc1t+/btIz093a0Q6Q2MgXVeLMZIj9UHCnUr9aXs1YYBMM5yxONu+w7s79VWY0EQBGHwkzNvkcv36UolYyxHCVPaOu/cy1H6gNM0t99+O88++ywvvPACu3fvZunSpTQ0NHDNNdcAsGTJEpYtW2buv3TpUiorK7n11lvZt28fH3zwAQ899BA33XRT972KAHEeWOfBYozli3IcHiDdRVQq+1S7GFE8i5F7PznGra9t59Jnt3DKI5/0aGePIAiCMDSwxGb4tZ8Cjih9LxGwGLnkkkt49NFHuffee5k2bRrbt28nNzfXLGo9fPgwxcWOi2dWVhZr167lyy+/5IQTTuCWW27h1ltv5a677uq+V9EFjIF1abGuqZi02DCevmJGz/iMjJjL98pIAMa6ESOqBke1RLaqE8xtvdFqLAiCIAwBRsyFmAy3naRu6cXhrIqmaf0+D1BbW0tsbCw1NTXExMR067ltqsbW/ErK6ppJidZTM94iIqqqce0LX9Ju01h1zYkEWf3Xc63tKjn3rKFdU/g89BaXAlYVQIOlbbexVp3tcpyCLpI23nlW90drBEEQhKFD3mp440r/9r3q/eOuX/T3+j3kZ9NYLQpzRidy4bRM5oxO9HmxP1Bez/q95Wzcf4z/5AWmGg9VNNCuKUQFa2TEuNbLlGiJboUI9GyrsSAIgjCEyFkMP30B1cvlX9WgKTytV4ezDnkxEijbDleZ/1+16VBAx5rOq+nxKL/cqavOH/+DjfNWcUrLX9wKEWe6vdVYEARBGHLYJl7Ib623o2q68HDG+P6+tiXYelEiiBgJkG8OV5v/35pfye5i/91h95XoYmRcSrSL7bt11GleVapBt7caC4IgCEOOrfmVvNowg6Vtt1GCa9doCXqU/rX6ab0aje/9aTgDHEOMJEWFcqy+hRc2HeLhH5/g17HGtN5xHQbkGa3GJTXNbguLjJqRbm81FgRBEIYcRpR9rTqbj1pmMduyhxSqKSOOreoE8+a4N6PxEhkJgLrmNvaV6dGN+y+cBMA724uobmz163jj2HGpUS7b+6zVWBAEQRhyOEfZVSxsUXNYrc5li5rjEqXvzWi8iJEA+LawBk2DYfHhnDs5jYnpMTS3qbz+pW+7+uY2G4eONQAwLjW60+N90mosCIIgDDn6zPjTC5KmCYBv7MWr04fHoygKV88dwZ3/3sGLmwv42amjvEYuDpY3oGoQGx5MSrR7q/uFk9OZn5MWUKuxIAiCIASCEY1f+vI2FHApD+iraLyIkQD4prAagBnD4wC4cFomKz7cQ1F1Ex/vLmXBJH0+z7eF1Tz84R52FNWgahqqppm27uNSo1AUz79go9VYEARBEHoKIxp/33t5LlPs02LDWL4op9ej8SJG/ETTNJfICEBYsJVLTszi//57kBc2HWLqsDj+mLubt7456vE8P5iY6vExQRAEQegt+lM0XsSInxRUNFLV2EZIkIWcdIeL3JUnj+DZDQfZdKCCM//0MU3t+i/xx5b/cn3QGiKjY+H0O7GMm09okIWkqJ6bRiwIgiAIgdBfovEiRvzEMDubnBFDSJCj7ndYfARnT0zlP3mlNLUrzFT2cm/wS0y1HARAaziCsmYJRL3Yq+OYBUEQBGGgIGLETwx/ESNF48w9540n6uAHnGHbzCLLZpxLQhQ0NBSU3Ltgwvm62ZkgCIIgCCYiRvzkm0KjXiSu02NZddt5nMfBg85Q0BzjmI9z6JAgCIIgDDbEZ8QPmlpt7C7WDctmuImMqHUlfp3H3/0EQRAEYSghYsQPvjtSjU3VSI0JJd3ZlEy1Qf5nFO37xq/z7K6L6KEVCoIgCMLARdI0TthUzW2Lk+EvMj1LNztDtcF//wib/wqt9WTZj9c0cGchomr68KH9EVOY1GuvRhAEQRAGBiJG7OTuLO5k/pJuN39x+IvEQd5qeOcGaG1we56OgsQxjvlKro6J7KnlC4IgCMKARcQIuhBZ+vK2ThNzS2qaueHlbcSE6T+m6eoueONKj+dRFF2MuJyDRO5vu5Lvok+TqbuCIAiC4IYhL0ZsqsZ97+V1EiLg8OuvbW4nyKIw5evf+jyfERV5ov0iNqmT+dI+jvlpmborCIIgCG4Z8gWsW/MrXVIznhgV3kh4/WG/z7tfHcYWNYeU2AiZuisIgiAIXhjykZGyOt9CBOCk5s8g2P/zXnzmLC4ddbJM3RUEQRAEHwx5MZISHebxsQlKAdOUA1QSxbXWXP9PGpHEKT9YLG6rgiAIguAHQ16MzB6ZQHpsGCU1zS51IxZUngv5E2lUEnBg47zHRIgIgiAIgp8M+ZoRq0Vh+aKcTttnW/aQoXRBiMy9BSZf1C1rEwRBEIShwJAXIwALJ6fz9BUzCLE6fhwpVAd0Di00Gn76ApzzQDevThAEQRAGNyJG7CycnE5iVAgAt509lv93/ly/jvt3+zwubb2bU7TnyNVO6sklCoIgCMKgRMSInZZ2GyW1emfNFSePYNKchRCTAbjP06gaHNUS+XX7Ujarkzla28bSl7eRu7O4F1ctCIIgCAMfESN2Ciub0DSIDLGSGBmiF6AufMT+qKsgcbZ4V+0/QqP49b738rCp7izUBEEQBEFwh4gRO4WVjQBkJUTow/AAchbDxS9CjKthWQmJLG27jbXqbJftGlBc08zW/MreWLIgCIIgDAqGfGuvQUGFPvhuRGKE6wM5i2HC+VCwia927ebRTTVstVu8e8JfIzVBEARBEESMmBTYIyMjEt1M1rVYYeSptKk5bNm4xee5vBmpCYIgCILgiqRp7Byu0MXI8IQIj/sYBmmerEcUID02TKbzCoIgCEIAiBix44iMeBYjzgZpHQWJ8f1ymc4rCIIgCAEhYgRQVY3DdjEyvCEPdrwJ+Z+Bauu0r2GQlhbrmopJiw2T6byCIAiC0AWkZgQoq2uhtV3Fio2Mt38Iil2ExGTo7b05i132Xzg5nfk5aWzNr6SsrpmU6DCZzisIgiAIXaRLkZEnn3yS7OxswsLCOOmkk9i6datfx7322msoisJFF13UlaftMQq2/QeATOUYwYpTNKS2GN5YAnmrOx1jtSjMGZ3IhdMymTM6UYSIIAiCIHSRgMXI66+/zu23387y5cvZtm0bU6dOZcGCBZSVlXk97tChQ9xxxx2ceuqpXV5sj6DaKNj0JgAjlNIOD9rNy3LvcpuyEQRBEATh+AlYjDz++ONcf/31XHPNNeTk5PDMM88QERHBc8895/EYm83G5Zdfzn333ceoUaOOa8HdTsEmDjfqM2mGK+4ElQa1RVCwqXfXJQiCIAhDhIDESGtrK19//TVnn3224wQWC2effTabN2/2eNz9999PSkoK1113nV/P09LSQm1trctXj1FfSoGWCngSI479BEEQBEHofgISI8eOHcNms5GamuqyPTU1lZKSErfHbNy4kX/84x88++yzfj/PihUriI2NNb+ysrICWWZgRKVyWEsB3KVpXPcTBEEQBKH76dHW3rq6Oq688kqeffZZkpKS/D5u2bJl1NTUmF+FhYU9t8gRczmM3o473K0YUSAmE0bM7fSITdXYfKCCd7cXsflAhQzIEwRBEIQuEFBrb1JSElarldJS14t2aWkpaWlpnfY/cOAAhw4dYtGiReY2VVX1Jw4KYu/evYwePbrTcaGhoYSGhgaytC5T26pSpekW8MOV8g6P2jtkFj6sW8I7kbuzmPvey6O4xjGHJj02jOWLcsRrRBAEQRACIKDISEhICDNnzmTdunXmNlVVWbduHXPmzOm0/4QJE9ixYwfbt283vxYvXsyZZ57J9u3bezb94ieGDXxSmEZUbLzrgzEZ+tTeDj4juTuLWfryNhchAlBS08zSl7eRu7O4R9csCIIgCIOJgE3Pbr/9dq666ipmzZrF7NmzWblyJQ0NDVxzzTUALFmyhMzMTFasWEFYWBiTJ092OT4uLg6g0/a+osAuRrJS4uGGnXrXTH2pXiMyYm6niIhN1bjvvTzcJWQ09FjKfe/lMT8nTbxHBEEQBMEPAhYjl1xyCeXl5dx7772UlJQwbdo0cnNzzaLWw4cPY7EMHJf5gsoGAEYkRJjTeb2xNb+yU0TEGQ0ormlma34lc0YndudSBUEQBGFQ0iU7+Jtvvpmbb77Z7WPr16/3euyqVau68pQ9RqExkyYx0q/9y+o8C5Gu7CcIgiAIQ52BE8LoIYw0zYgEz9N6nUmJDvO9UwD7CYIgCMJQR8SIIUYS/RMjs0cmkBbjWWgo6F01s0cmdMfyBEEQBGHQM2Sn9tpUjU37j3G0pgmAzLhwv477KK+E5nb3c2qMctXli3KkePX/t3f3UVGV+x7AvzPoDJoOL0cF5kqIWpCv+AYLOr6Uk7hydeTeVRp5jMqyXNrSY8sc/0iyc12iufJWctSVK1l1u2GZaKcSUxRcGoIiLBGMpcZF8jKQmoBvYDO/+weHqQFmmBlltjPz/ay1/2DP8wy/3zxu58fe+3k2ERGRk/zyzEjumTr8ef0hzP+4GPKvaTH//o9j3U7JbZ/Se+3mnS5fD+7bG1v+Op7rjBAREbnA74qRrtYI6YPbiL9+GFn/89/ILf+5y36OpvS20/ZS44kRnRd/IyIiIvv8qhjpWFA8ovpfAMCf1WfwgWYzsjX/iXFfTYG5Ym+nvt1N6QUAU1MLiquv3uOoiYiIfJtfFSN/LCiS1cVIVFcCsH1A3kC5AvWXaUDl1zZ9OaWXiIioZ/hVMdJeKKhhQXrvT6xP631Q1WBtY73vNNcIWH6/UZVTeomIiHqGXxUj7YVCvPpH6FVX8bdeX+G93v/AZHW5TTsVBGi61LY0/L/ER4ciIigQ9ubIcEovERGRe/yqGGkvKAbhGgBgpLoG/xFwFNFqU9cdrv9++SZArUL6UyMAoFNBwim9RERE7vOrYqS9oGhAsHMd+rU9b8dsERReuIKW3yxYZngYYR0WPQsPCuSUXiIiIjf53aJnM0dFAKmpqP9qS9vNql2eyFABOj0QlYTcM3VY889Km5k04Tot/mZ4CEMGPIBB/dsuzfCMCBERkXv86sxIu5mjB2PAM5ugUqkg9i66zMxAbmVDpzVJAKC+qQX/dfActL3USBz2JxYiREREd8EvixEACBg5G6o5n0Cl63BpRacH5nwCc+xTdhc5a9+35p+VMFscLYNGRERE3fG7yzQ2RvwFiJ3VNmvmen3bPSJRSYA6AMUXrjhc5EwA1DXeRnH1VSQO+5PnYiYiIvIx/l2MAIA6AIie3Gk3FzkjIiLyDL+9TNMdLnJGRETkGSxG7OAiZ0RERJ7BYsQOLnJGRETkGSxGHJg5KgJb/joe4UFc5IyIiKin8AbWbswcFYEnRoSjuPoqGppvc5EzIiKie4zFiBMC1CpO3yUiIuoh/luMWMxdri9CREREnuWfxUjl10DuSqDp/37fp9MDM9e3LYRGREREHuN/N7BWfg188bxtIQIATXVt+yu/ViYuIiIiP+VfxYjF3HZGxNETZ3KNbe2IiIjII/yrGKn5ofMZERsCNF1qa0dEREQe4V/FyPX6e9uOiIiI7pp/FSP9wu5tOyIiIrpr/lWMRCW1zZpx9MQZ3b+1tSMiIiKP8K9iRB3QNn0XgN0nzszM4HojREREHuRfxQjQto7InE8AXYfnyuj0bfu5zggREZFH+eeiZyP+AsTO4gqsRERE9wH/LEaAtsIjerLSURAREfk9/7tMQ0RERPcVFiNERESkKLeKkczMTAwZMgSBgYFISEhAcXGx3bYfffQRJk+ejJCQEISEhMBgMDhsT0RERP7F5WJk586dWL58OdLT03Hq1CmMHTsWycnJaGho6LJ9fn4+UlNTcfjwYRQWFiIyMhIzZszApUuX7jp4IiIi8n4qEenqqXF2JSQkYNKkSdi8eTMAwGKxIDIyEq+//jqMRmO3/c1mM0JCQrB582Y8//zzTv3OpqYmBAUFobGxETqdzpVwiYiISCHOfn+7dGaktbUVJSUlMBgMv7+BWg2DwYDCwkKn3uPmzZu4c+cOQkND7bZpaWlBU1OTzUZERES+yaVi5PLlyzCbzQgLs312S1hYGEwmk1PvsXLlSuj1epuCpqN169YhKCjIukVGRroSJhEREXkRj86mycjIQHZ2NnJychAYGGi33apVq9DY2GjdamtrPRglEREReZJLi54NGDAAAQEBqK+vt9lfX1+P8PBwh303btyIjIwMHDx4EGPGjHHYVqvVQqvVuhIaEREReSmXihGNRoMJEyYgLy8PKSkpANpuYM3Ly8OSJUvs9tuwYQPWrl2L/fv3Y+LEiS4H2X6PLe8dISIi8h7t39vdzpURF2VnZ4tWq5WsrCyprKyUhQsXSnBwsJhMJhERmT9/vhiNRmv7jIwM0Wg0smvXLqmrq7Nuzc3NTv/O2tpaAcCNGzdu3Lhx88KttrbW4fe8y8+mmTt3Ln755ResXr0aJpMJcXFxyM3Ntd7UevHiRajVv9+KsmXLFrS2tuLpp5+2eZ/09HS8/fbbTv1OvV6P2tpa9O/fHyqVytWQ7WpqakJkZCRqa2t9dsowc/R+vp4f4Ps5+np+AHP0BT2Rn4igubkZer3eYTuX1xnxJf6wfglz9H6+nh/g+zn6en4Ac/QFSubHZ9MQERGRoliMEBERkaL8uhjRarVIT0/36WnEzNH7+Xp+gO/n6Ov5AczRFyiZn1/fM0JERETK8+szI0RERKQ8FiNERESkKBYjREREpCgWI0RERKQovytG1q5di6SkJPTt2xfBwcFO9RERrF69GhEREejTpw8MBgPOnTvXs4HehatXr2LevHnQ6XQIDg7GggULcP36dYd9pk2bBpVKZbO99tprHoq4e5mZmRgyZAgCAwORkJCA4uJih+2//PJLxMbGIjAwEKNHj8Z3333noUjd40p+WVlZncbK0VOwlXbkyBE89dRT0Ov1UKlU2LNnT7d98vPzMX78eGi1WgwfPhxZWVk9HufdcDXH/Pz8TmOoUqlgMpk8E7CL1q1bh0mTJqF///4YNGgQUlJSUFVV1W0/bzoO3cnRm47FLVu2YMyYMdDpdNDpdEhMTMS+ffsc9vHk+PldMdLa2opnnnkGixYtcrrPhg0b8MEHH2Dr1q0oKirCAw88gOTkZNy+fbsHI3XfvHnzUFFRgQMHDuCbb77BkSNHsHDhwm77vfLKK6irq7NuGzZs8EC03du5cyeWL1+O9PR0nDp1CmPHjkVycjIaGhq6bP/DDz8gNTUVCxYsQGlpKVJSUpCSkoIzZ854OHLnuJofAOh0Opuxqqmp8WDErrlx4wbGjh2LzMxMp9pXV1dj1qxZeOyxx1BWVoZly5bh5Zdfxv79+3s4Uve5mmO7qqoqm3EcNGhQD0V4dwoKCrB48WIcP34cBw4cwJ07dzBjxgzcuHHDbh9vOw7dyRHwnmNx8ODByMjIQElJCU6ePInHH38cs2fPRkVFRZftPT5+rj4oz1fs2LFDgoKCum1nsVgkPDxc3n33Xeu+a9euiVarlc8//7wHI3RPZWWlAJATJ05Y9+3bt09UKpVcunTJbr+pU6fK0qVLPRCh6+Lj42Xx4sXWn81ms+j1elm3bl2X7efMmSOzZs2y2ZeQkCCvvvpqj8bpLlfzc/bf7v0IgOTk5Dhs8+abb8rIkSNt9s2dO1eSk5N7MLJ7x5kcDx8+LADk119/9UhM91pDQ4MAkIKCArttvO047MiZHL35WBQRCQkJke3bt3f5mqfHz+/OjLiquroaJpMJBoPBui8oKAgJCQkoLCxUMLKuFRYWIjg4GBMnTrTuMxgMUKvVKCoqctj3s88+w4ABAzBq1CisWrUKN2/e7Olwu9Xa2oqSkhKbz1+tVsNgMNj9/AsLC23aA0BycvJ9OV7u5AcA169fR1RUFCIjIx3+deONvGn87lZcXBwiIiLwxBNP4NixY0qH47TGxkYAQGhoqN023j6OzuQIeOexaDabkZ2djRs3biAxMbHLNp4eP5ef2utv2q/htj+VuF1YWNh9eX3XZDJ1OtXbq1cvhIaGOoz3ueeeQ1RUFPR6PU6fPo2VK1eiqqoKu3fv7umQHbp8+TLMZnOXn/+PP/7YZR+TyeQ14+VOfjExMfj4448xZswYNDY2YuPGjUhKSkJFRQUGDx7sibB7lL3xa2pqwq1bt9CnTx+FIrt3IiIisHXrVkycOBEtLS3Yvn07pk2bhqKiIowfP17p8ByyWCxYtmwZHn30UYwaNcpuO286DjtyNkdvOxbLy8uRmJiI27dvo1+/fsjJycGIESO6bOvp8fOJYsRoNGL9+vUO25w9exaxsbEeiujeczZHd/3xnpLRo0cjIiIC06dPx4ULFzBs2DC335fuvcTERJu/ZpKSkvDII49g27Zt+Pvf/65gZOSsmJgYxMTEWH9OSkrChQsXsGnTJnz66acKRta9xYsX48yZMzh69KjSofQYZ3P0tmMxJiYGZWVlaGxsxK5du5CWloaCggK7BYkn+UQx8sYbb+CFF15w2Gbo0KFuvXd4eDgAoL6+HhEREdb99fX1iIuLc+s93eFsjuHh4Z1ufPztt99w9epVay7OSEhIAACcP39e0WJkwIABCAgIQH19vc3++vp6u/mEh4e71F5J7uTXUe/evTFu3DicP3++J0L0OHvjp9PpfOKsiD3x8fH3/Rf8kiVLrDfFd/eXvzcdh3/kSo4d3e/HokajwfDhwwEAEyZMwIkTJ/D+++9j27Ztndp6evx84p6RgQMHIjY21uGm0Wjceu/o6GiEh4cjLy/Puq+pqQlFRUV2r7X1BGdzTExMxLVr11BSUmLte+jQIVgsFmuB4YyysjIAsCnAlKDRaDBhwgSbz99isSAvL8/u55+YmGjTHgAOHDjg0fFyljv5dWQ2m1FeXq74WN0r3jR+91JZWdl9O4YigiVLliAnJweHDh1CdHR0t328bRzdybEjbzsWLRYLWlpaunzN4+PXI7fF3sdqamqktLRU1qxZI/369ZPS0lIpLS2V5uZma5uYmBjZvXu39eeMjAwJDg6WvXv3yunTp2X27NkSHR0tt27dUiKFbs2cOVPGjRsnRUVFcvToUXnooYckNTXV+vrPP/8sMTExUlRUJCIi58+fl3feeUdOnjwp1dXVsnfvXhk6dKhMmTJFqRRsZGdni1arlaysLKmsrJSFCxdKcHCwmEwmERGZP3++GI1Ga/tjx45Jr169ZOPGjXL27FlJT0+X3r17S3l5uVIpOORqfmvWrJH9+/fLhQsXpKSkRJ599lkJDAyUiooKpVJwqLm52XqcAZD33ntPSktLpaamRkREjEajzJ8/39r+p59+kr59+8qKFSvk7NmzkpmZKQEBAZKbm6tUCt1yNcdNmzbJnj175Ny5c1JeXi5Lly4VtVotBw8eVCoFhxYtWiRBQUGSn58vdXV11u3mzZvWNt5+HLqTozcdi0ajUQoKCqS6ulpOnz4tRqNRVCqVfP/99yKi/Pj5XTGSlpYmADpthw8ftrYBIDt27LD+bLFY5K233pKwsDDRarUyffp0qaqq8nzwTrpy5YqkpqZKv379RKfTyYsvvmhTbFVXV9vkfPHiRZkyZYqEhoaKVquV4cOHy4oVK6SxsVGhDDr78MMP5cEHHxSNRiPx8fFy/Phx62tTp06VtLQ0m/ZffPGFPPzww6LRaGTkyJHy7bffejhi17iS37Jly6xtw8LC5Mknn5RTp04pELVz2qexdtzac0pLS5OpU6d26hMXFycajUaGDh1qczzej1zNcf369TJs2DAJDAyU0NBQmTZtmhw6dEiZ4J3QVW4d/5/09uPQnRy96Vh86aWXJCoqSjQajQwcOFCmT59uLURElB8/lYhIz5xzISIiIuqeT9wzQkRERN6LxQgREREpisUIERERKYrFCBERESmKxQgREREpisUIERERKYrFCBERESmKxQgREREpisUIERERKYrFCBERESmKxQgREREpisUIERERKer/AbOONjxIDpSkAAAAAElFTkSuQmCC",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"filenames": {
|
||
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week37_137_1.png"
|
||
}
|
||
},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import numpy as np\n",
|
||
"from sklearn.linear_model import LinearRegression, Ridge, Lasso\n",
|
||
"from sklearn.preprocessing import PolynomialFeatures\n",
|
||
"from sklearn.model_selection import train_test_split\n",
|
||
"from sklearn.pipeline import make_pipeline\n",
|
||
"from sklearn.utils import resample\n",
|
||
"\n",
|
||
"np.random.seed(2018)\n",
|
||
"\n",
|
||
"n = 500\n",
|
||
"n_boostraps = 100\n",
|
||
"degree = 18 # A quite high value, just to show.\n",
|
||
"noise = 0.1\n",
|
||
"\n",
|
||
"# Make data set.\n",
|
||
"x = np.linspace(-1, 3, n).reshape(-1, 1)\n",
|
||
"y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2) + np.random.normal(0, 0.1, x.shape)\n",
|
||
"\n",
|
||
"# Hold out some test data that is never used in training.\n",
|
||
"x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)\n",
|
||
"\n",
|
||
"# Combine x transformation and model into one operation.\n",
|
||
"# Not neccesary, but convenient.\n",
|
||
"model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))\n",
|
||
"\n",
|
||
"# The following (m x n_bootstraps) matrix holds the column vectors y_pred\n",
|
||
"# for each bootstrap iteration.\n",
|
||
"y_pred = np.empty((y_test.shape[0], n_boostraps))\n",
|
||
"for i in range(n_boostraps):\n",
|
||
" x_, y_ = resample(x_train, y_train)\n",
|
||
"\n",
|
||
" # Evaluate the new model on the same test data each time.\n",
|
||
" y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel()\n",
|
||
"\n",
|
||
"# Note: Expectations and variances taken w.r.t. different training\n",
|
||
"# data sets, hence the axis=1. Subsequent means are taken across the test data\n",
|
||
"# set in order to obtain a total value, but before this we have error/bias/variance\n",
|
||
"# calculated per data point in the test set.\n",
|
||
"# Note 2: The use of keepdims=True is important in the calculation of bias as this \n",
|
||
"# maintains the column vector form. Dropping this yields very unexpected results.\n",
|
||
"error = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) )\n",
|
||
"bias = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 )\n",
|
||
"variance = np.mean( np.var(y_pred, axis=1, keepdims=True) )\n",
|
||
"print('Error:', error)\n",
|
||
"print('Bias^2:', bias)\n",
|
||
"print('Var:', variance)\n",
|
||
"print('{} >= {} + {} = {}'.format(error, bias, variance, bias+variance))\n",
|
||
"\n",
|
||
"plt.plot(x[::5, :], y[::5, :], label='f(x)')\n",
|
||
"plt.scatter(x_test, y_test, label='Data points')\n",
|
||
"plt.scatter(x_test, np.mean(y_pred, axis=1), label='Pred')\n",
|
||
"plt.legend()\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b05eafde",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Understanding what happens"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"id": "23e711c6",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Polynomial degree: 0\n",
|
||
"Error: 0.32149601703519115\n",
|
||
"Bias^2: 0.3123314713548606\n",
|
||
"Var: 0.009164545680330616\n",
|
||
"0.32149601703519115 >= 0.3123314713548606 + 0.009164545680330616 = 0.3214960170351912\n",
|
||
"Polynomial degree: 1\n",
|
||
"Error: 0.08426840630693411\n",
|
||
"Bias^2: 0.0796891867672603\n",
|
||
"Var: 0.004579219539673834\n",
|
||
"0.08426840630693411 >= 0.0796891867672603 + 0.004579219539673834 = 0.08426840630693413\n",
|
||
"Polynomial degree: 2\n",
|
||
"Error: 0.10398646080125035\n",
|
||
"Bias^2: 0.1007711427354898\n",
|
||
"Var: 0.0032153180657605116\n",
|
||
"0.10398646080125035 >= 0.1007711427354898 + 0.0032153180657605116 = 0.10398646080125032\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Polynomial degree: 3\n",
|
||
"Error: 0.06547790180152355\n",
|
||
"Bias^2: 0.06208238634231949\n",
|
||
"Var: 0.0033955154592040936\n",
|
||
"0.06547790180152355 >= 0.06208238634231949 + 0.0033955154592040936 = 0.06547790180152359\n",
|
||
"Polynomial degree: 4\n",
|
||
"Error: 0.06844519414009445\n",
|
||
"Bias^2: 0.06453579006728324\n",
|
||
"Var: 0.003909404072811226\n",
|
||
"0.06844519414009445 >= 0.06453579006728324 + 0.003909404072811226 = 0.06844519414009446\n",
|
||
"Polynomial degree: 5\n",
|
||
"Error: 0.05227921801205686\n",
|
||
"Bias^2: 0.0481872773043029\n",
|
||
"Var: 0.004091940707753939\n",
|
||
"0.05227921801205686 >= 0.0481872773043029 + 0.004091940707753939 = 0.052279218012056844\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Polynomial degree: 6\n",
|
||
"Error: 0.037813671417389005\n",
|
||
"Bias^2: 0.033657685071527665\n",
|
||
"Var: 0.00415598634586135\n",
|
||
"0.037813671417389005 >= 0.033657685071527665 + 0.00415598634586135 = 0.03781367141738902\n",
|
||
"Polynomial degree: 7\n",
|
||
"Error: 0.02760977349102253\n",
|
||
"Bias^2: 0.022999498260366312\n",
|
||
"Var: 0.004610275230656212\n",
|
||
"0.02760977349102253 >= 0.022999498260366312 + 0.004610275230656212 = 0.027609773491022525\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Polynomial degree: 8\n",
|
||
"Error: 0.017355848195593347\n",
|
||
"Bias^2: 0.010331721306655127\n",
|
||
"Var: 0.007024126888938232\n",
|
||
"0.017355848195593347 >= 0.010331721306655127 + 0.007024126888938232 = 0.01735584819559336\n",
|
||
"Polynomial degree: 9\n",
|
||
"Error: 0.02660572763718093\n",
|
||
"Bias^2: 0.010018312644137363\n",
|
||
"Var: 0.016587414993043573\n",
|
||
"0.02660572763718093 >= 0.010018312644137363 + 0.016587414993043573 = 0.026605727637180936\n",
|
||
"Polynomial degree: 10\n",
|
||
"Error: 0.021592704588025025\n",
|
||
"Bias^2: 0.010516485576645508\n",
|
||
"Var: 0.011076219011379514\n",
|
||
"0.021592704588025025 >= 0.010516485576645508 + 0.011076219011379514 = 0.021592704588025022\n",
|
||
"Polynomial degree: 11\n",
|
||
"Error: 0.07160048164233104\n",
|
||
"Bias^2: 0.014436800088904942\n",
|
||
"Var: 0.05716368155342608\n",
|
||
"0.07160048164233104 >= 0.014436800088904942 + 0.05716368155342608 = 0.07160048164233102\n",
|
||
"Polynomial degree: 12\n",
|
||
"Error: 0.11547777218872497\n",
|
||
"Bias^2: 0.01628578269596628\n",
|
||
"Var: 0.09919198949275869\n",
|
||
"0.11547777218872497 >= 0.01628578269596628 + 0.09919198949275869 = 0.11547777218872497\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Polynomial degree: 13\n",
|
||
"Error: 0.22842468702219465\n",
|
||
"Bias^2: 0.01975416527185249\n",
|
||
"Var: 0.20867052175034223\n",
|
||
"0.22842468702219465 >= 0.01975416527185249 + 0.20867052175034223 = 0.2284246870221947\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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pWjH0uZkU656sYiIyAmprq7mjjvuIDw8nJiYGKZNm0btdn6H3xKaM2cO/fr1Izg4mKSkJG677TZKSkqcz2dkZHDhhRcSGRlJcHAwffv25fPPP2/pH6lFNTqwzJkzh1tuuYVJkybRp08fFixYQFBQEK+88kqD548dO5bf//739O7dm27dunH33XfTv39/Vq1aBThGV+bOnctDDz3ExRdfTP/+/XnjjTfYu3cvn3zyyUn9cE2mdoTFlEPWwXJs9la/X6SISNtgGGAt9cyjkXsHv/766/j4+LBu3Tqee+455syZwz//+c8GzzWbzTz//PP8+uuvvP7663zzzTfcd999zudvv/12KisrWbFiBT///DOzZ88mJCTkpH6V3q5Rc1isVivr169n6tSpzmNms5nU1FTWrFlzzNcbhsE333zDtm3bmD17NgC7d+8mJyeH1NRU53nh4eEMGzaMNWvWcMUVV9S7TmVlJZWVlc6vi4qKGvNjNF5NYOlqzsVaZSenqIKOEYHN+z1FROTYqsrgiUTPfO8H94Lf8c87SUpK4tlnn8VkMnHKKafw888/8+yzz3LLLbfUO9d1gm5ycjKPPfYYf/7zn/n73/8OQGZmJpdccgn9+vUDoGvXrif3s7QCjRphyc/Px2azERcX53Y8Li6OnJycI76usLCQkJAQ/Pz8OP/883nhhRc499xzAZyva8w1Z86cSXh4uPORlJTUmB+j8Vyax4GhlUIiItJoZ5xxBiaTyfn18OHD2b59Ozabrd65X3/9Neeccw4dO3YkNDSUa6+9lgMHDlBW5phHedddd/HYY48xYsQIZsyYwaZNm1rs5/CUFlklFBoaysaNGykpKWHJkiVMmTKFrl27Mnbs2BO63tSpU5kyZYrz66KiouYNLRGdwWQm0KgglkIyDpZxZvN9NxEROV6+QY6RDk9972aQnp7OBRdcwK233srjjz9OVFQUq1at4qabbsJqtRIUFMTNN99MWloan332GV999RUzZ87kmWee4c4772yWmrxBowJLTEwMFouF3Nxct+O5ubnEx8cf8XVms5nu3bsDMHDgQLZs2cLMmTMZO3as83W5ubkkJCS4XXPgwIENXs/f3x9/f//GlH5yfPwhvBMUZNLFlEO6Jt6KiHgHk6lRt2U8ae3atW5ff/fdd/To0QOLxeJ2fP369djtdp555hnMZseNkPfff7/e9ZKSkvjzn//Mn//8Z6ZOncrLL7/cpgNLo24J+fn5MWjQIJYsWeI8ZrfbWbJkCcOHDz/u69jtducclJSUFOLj492uWVRUxNq1axt1zWZXswlisjmXTC1tFhGRRsrMzGTKlCls27aNd999lxdeeIG777673nndu3enqqqKF154gV27dvHmm2+yYMECt3MmT57Ml19+ye7du9mwYQNLly6ld+/eLfWjeESjbwlNmTKF66+/nsGDBzN06FDmzp1LaWkpkyZNAuC6666jY8eOzJw5E3DMNxk8eDDdunWjsrKSzz//nDfffJP58+cDYDKZmDx5Mo899hg9evQgJSWFadOmkZiYyIQJE5ruJz1ZUV1h11K6mHL5XIFFREQa6brrrqO8vJyhQ4disVi4++67+eMf/1jvvAEDBjBnzhxmz57N1KlTGT16NDNnzuS6665znmOz2bj99tvZs2cPYWFhjB8/nmeffbYlf5wW1+jAMnHiRPLy8pg+fTo5OTkMHDiQRYsWOSfNZmZmOoewAEpLS7ntttvYs2cPgYGB9OrVi7feeouJEyc6z7nvvvsoLS3lj3/8IwUFBYwcOZJFixYREBDQBD9iE3FOvM0h80AphmG4TZ4SERE5kmXLljk/r/0Hu6v09HS3r++55x7uuecet2PXXnut8/MXXnihSetrDUyG0ciF5F6oqKiI8PBwCgsLCQsLa55vsvVzeO9KfrYnc6H1CX54KJWYkBacRyMi0s5VVFSwe/duUlJSvOsftHJMR/pv15j3b21+eLxqRlhSzPsBQx1vRUREWpACy/GKTAZMhFBGFMXaU0hERKQFKbAcL98ACOsIOOaxpCuwiIiItBgFlsaIrt1TKJdM3RISERFpMQosjVG7UsicqxEWERGRFqTA0hiuS5sPKrCIiIi0FAWWxoiqvSWUw8FSK0UVVR4uSEREpH1QYGkMt6XNqEW/iIhIC1FgaYzIFADCKSGcEm2CKCIiHmUymfjkk088XUaLUGBpDL8gCE0EHPNY1ItFRESO5cILL2T8+PENPrdy5UpMJhObNm06oWvv27eP884772TKazUUWBorynVpswKLiIgc3U033cTixYvZs2dPvedeffVVBg8eTP/+/Rt1TavVCkB8fDz+/u1jmxgFlsaKctwWSjHl6JaQiIgc0wUXXEBsbCyvvfaa2/GSkhI++OADJkyYwJVXXknHjh0JCgqiX79+vPvuu27njh07ljvuuIPJkycTExNDWloaUP+W0P3330/Pnj0JCgqia9euTJs2jaqqugUiDz/8MAMHDuTNN98kOTmZ8PBwrrjiCoqLi53n2O12nnzySbp3746/vz+dO3fm8ccfdz6flZXF5ZdfTkREBFFRUVx88cX1Nm9sDgosjVU7wmLO1dJmEREPMwyDsqoyjzyOd+9gHx8frrvuOl577TW313zwwQfYbDauueYaBg0axGeffcYvv/zCH//4R6699lrWrVvndp3XX38dPz8/vv32WxYsWNDg9woNDeW1115j8+bNPPfcc7z88ss8++yzbufs3LmTTz75hE8//ZRPP/2U5cuXM2vWLOfzU6dOZdasWUybNo3NmzfzzjvvEBcXB0BVVRVpaWmEhoaycuVKvv32W0JCQhg/frxz1Ke5aLfmxvr1E/jgejbYu/MH6yNsfXQ8Ab6W5v2eIiLS4I6/ZVVlDHtnmEfqWXvVWoJ8g47r3K1bt9K7d2+WLl3K2LFjARg9ejRdunThzTffrHf+BRdcQK9evXj66acBxwhLUVERGzZscDvPZDLx8ccfM2HChAa/79NPP817773HDz/8ADhGWJ566ilycnIIDQ0F4L777mPFihV89913FBcXExsby4svvsjNN99c73pvvfUWjz32GFu2bMFkMgGO21MRERF88sknjBs3rsE6mmK3Zp+jPiv1uXS7Bcg6WEaPuFBPViQiIl6uV69enHnmmbzyyiuMHTuWHTt2sHLlSh555BFsNhtPPPEE77//PtnZ2VitViorKwkKcg9DgwYNOub3WbhwIc8//zw7d+6kpKSE6urqekEgOTnZGVYAEhIS2L/f0a5jy5YtVFZWcs455zR4/Z9++okdO3a4vR4cgWTnzp3H9bs4UQosjVUTWKIoJoxS0g8osIiIeEqgTyBrr1rrse/dGDfddBN33nkn8+bN49VXX6Vbt26MGTOG2bNn89xzzzF37lz69etHcHAwkydPrneLJTg4+KjXX7NmDVdffTV/+9vfSEtLIzw8nPfee49nnnnG7TxfX1+3r00mE3a73fEzBR79ZyopKWHQoEG8/fbb9Z6LjY096mtPlgJLY/mHQEgclOTS2ZRLhibeioh4jMlkOu7bMp52+eWXc/fdd/POO+/wxhtvcOutt2Iymfj222+5+OKL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mQDcfffdjBkzhmeeeYbzzz+f9957jx9++IGXXnoJcCxjnTx5Mo899hg9evRwLmtOTExkwoQJTfeTioiISKvV6MAyceJE8vLymD59Ojk5OQwcOJBFixY5J81mZmZiNtcN3Jx55pm88847PPTQQzz44IP06NGDTz75xNmDBeC+++6jtLSUP/7xjxQUFDBy5EgWLVqkHiwiIiICaC8hERER8ZBm68MiIiIi4gkKLCIiIuL1FFhERETE6ymwiIiIiNdTYBERERGv1+hlzd6odqGTNkEUERFpPWrft49nwXKbCCzFxcUA2gRRRESkFSouLiY8PPyo57SJPix2u529e/cSGhqKyWRq0msXFRWRlJREVlaWerzU0O+kYfq91KffScP0e6lPv5P62sPvxDAMiouLSUxMdGs625A2McJiNpvp1KlTs34PbbJYn34nDdPvpT79Thqm30t9+p3U19Z/J8caWamlSbciIiLi9RRYRERExOspsByDv78/M2bMwN/f39OleA39Thqm30t9+p00TL+X+vQ7qU+/E3dtYtKtiIiItG0aYRERERGvp8AiIiIiXk+BRURERLyeAouIiIh4PQWWY5g3bx7JyckEBAQwbNgw1q1b5+mSPGbmzJkMGTKE0NBQOnTowIQJE9i2bZuny/Iqs2bNwmQyMXnyZE+X4nHZ2dlcc801REdHExgYSL9+/fjhhx88XZbH2Gw2pk2bRkpKCoGBgXTr1o1HH330uPZQaUtWrFjBhRdeSGJiIiaTiU8++cTtecMwmD59OgkJCQQGBpKamsr27ds9U2wLOdrvpKqqivvvv59+/foRHBxMYmIi1113HXv37vVcwR6iwHIUCxcuZMqUKcyYMYMNGzYwYMAA0tLS2L9/v6dL84jly5dz++23891337F48WKqqqoYN24cpaWlni7NK3z//ff84x//oH///p4uxeMOHTrEiBEj8PX15YsvvmDz5s0888wzREZGero0j5k9ezbz58/nxRdfZMuWLcyePZsnn3ySF154wdOltajS0lIGDBjAvHnzGnz+ySef5Pnnn2fBggWsXbuW4OBg0tLSqKioaOFKW87RfidlZWVs2LCBadOmsWHDBj766CO2bdvGRRdd5IFKPcyQIxo6dKhx++23O7+22WxGYmKiMXPmTA9W5T32799vAMby5cs9XYrHFRcXGz169DAWL15sjBkzxrj77rs9XZJH3X///cbIkSM9XYZXOf/8840bb7zR7dgf/vAH4+qrr/ZQRZ4HGB9//LHza7vdbsTHxxtPPfWU81hBQYHh7+9vvPvuux6osOUd/jtpyLp16wzAyMjIaJmivIRGWI7AarWyfv16UlNTncfMZjOpqamsWbPGg5V5j8LCQgCioqI8XInn3X777Zx//vlu/3tpz/773/8yePBgLrvsMjp06MBpp53Gyy+/7OmyPOrMM89kyZIl/PbbbwD89NNPrFq1ivPOO8/DlXmP3bt3k5OT4/b/o/DwcIYNG6a/uy4KCwsxmUxERER4upQW1SY2P2wO+fn52Gw24uLi3I7HxcWxdetWD1XlPex2O5MnT2bEiBGceuqpni7Ho9577z02bNjA999/7+lSvMauXbuYP38+U6ZM4cEHH+T777/nrrvuws/Pj+uvv97T5XnEAw88QFFREb169cJisWCz2Xj88ce5+uqrPV2a18jJyQFo8O9u7XPtXUVFBffffz9XXnllm94QsSEKLHJCbr/9dn755RdWrVrl6VI8Kisri7vvvpvFixcTEBDg6XK8ht1uZ/DgwTzxxBMAnHbaafzyyy8sWLCg3QaW999/n7fffpt33nmHvn37snHjRiZPnkxiYmK7/Z1I41RVVXH55ZdjGAbz58/3dDktTreEjiAmJgaLxUJubq7b8dzcXOLj4z1UlXe44447+PTTT1m6dCmdOnXydDketX79evbv38/pp5+Oj48PPj4+LF++nOeffx4fHx9sNpunS/SIhIQE+vTp43asd+/eZGZmeqgiz/u///s/HnjgAa644gr69evHtddeyz333MPMmTM9XZrXqP3bqr+79dWGlYyMDBYvXtzuRldAgeWI/Pz8GDRoEEuWLHEes9vtLFmyhOHDh3uwMs8xDIM77riDjz/+mG+++YaUlBRPl+Rx55xzDj///DMbN250PgYPHszVV1/Nxo0bsVgsni7RI0aMGFFvyftvv/1Gly5dPFSR55WVlWE2u//JtVgs2O12D1XkfVJSUoiPj3f7u1tUVMTatWvb7d9dqAsr27dv5+uvvyY6OtrTJXmEbgkdxZQpU7j++usZPHgwQ4cOZe7cuZSWljJp0iRPl+YRt99+O++88w7/+c9/CA0Ndd5TDg8PJzAw0MPVeUZoaGi9OTzBwcFER0e367k999xzD2eeeSZPPPEEl19+OevWreOll17ipZde8nRpHnPhhRfy+OOP07lzZ/r27cuPP/7InDlzuPHGGz1dWosqKSlhx44dzq93797Nxo0biYqKonPnzkyePJnHHnuMHj16kJKSwrRp00hMTGTChAmeK7qZHe13kpCQwKWXXsqGDRv49NNPsdlszr+9UVFR+Pn5earslufpZUre7oUXXjA6d+5s+Pn5GUOHDjW+++47T5fkMUCDj1dffdXTpXkVLWt2+N///meceuqphr+/v9GrVy/jpZde8nRJHlVUVGTcfffdRufOnY2AgACja9euxl//+lejsrLS06W1qKVLlzb4d+T66683DMOxtHnatGlGXFyc4e/vb5xzzjnGtm3bPFt0Mzva72T37t1H/Nu7dOlST5feokyG0c7aLIqIiEirozksIiIi4vUUWERERMTrKbCIiIiI11NgEREREa+nwCIiIiJeT4FFREREvJ4Ci4iIiHg9BRYRERHxegosIiIi4vUUWERERMTrKbCIiIiI11NgEREREa/3/2JvAyYaPDiIAAAAAElFTkSuQmCC",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"filenames": {
|
||
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week37_139_5.png"
|
||
}
|
||
},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import numpy as np\n",
|
||
"from sklearn.linear_model import LinearRegression, Ridge, Lasso\n",
|
||
"from sklearn.preprocessing import PolynomialFeatures\n",
|
||
"from sklearn.model_selection import train_test_split\n",
|
||
"from sklearn.pipeline import make_pipeline\n",
|
||
"from sklearn.utils import resample\n",
|
||
"\n",
|
||
"np.random.seed(2018)\n",
|
||
"\n",
|
||
"n = 40\n",
|
||
"n_boostraps = 100\n",
|
||
"maxdegree = 14\n",
|
||
"\n",
|
||
"\n",
|
||
"# Make data set.\n",
|
||
"x = np.linspace(-3, 3, n).reshape(-1, 1)\n",
|
||
"y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)\n",
|
||
"error = np.zeros(maxdegree)\n",
|
||
"bias = np.zeros(maxdegree)\n",
|
||
"variance = np.zeros(maxdegree)\n",
|
||
"polydegree = np.zeros(maxdegree)\n",
|
||
"x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)\n",
|
||
"\n",
|
||
"for degree in range(maxdegree):\n",
|
||
" model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))\n",
|
||
" y_pred = np.empty((y_test.shape[0], n_boostraps))\n",
|
||
" for i in range(n_boostraps):\n",
|
||
" x_, y_ = resample(x_train, y_train)\n",
|
||
" y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel()\n",
|
||
"\n",
|
||
" polydegree[degree] = degree\n",
|
||
" error[degree] = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) )\n",
|
||
" bias[degree] = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 )\n",
|
||
" variance[degree] = np.mean( np.var(y_pred, axis=1, keepdims=True) )\n",
|
||
" print('Polynomial degree:', degree)\n",
|
||
" print('Error:', error[degree])\n",
|
||
" print('Bias^2:', bias[degree])\n",
|
||
" print('Var:', variance[degree])\n",
|
||
" print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree]))\n",
|
||
"\n",
|
||
"plt.plot(polydegree, error, label='Error')\n",
|
||
"plt.plot(polydegree, bias, label='bias')\n",
|
||
"plt.plot(polydegree, variance, label='Variance')\n",
|
||
"plt.legend()\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "d638746f",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Summing up\n",
|
||
"\n",
|
||
"The bias-variance tradeoff summarizes the fundamental tension in\n",
|
||
"machine learning, particularly supervised learning, between the\n",
|
||
"complexity of a model and the amount of training data needed to train\n",
|
||
"it. Since data is often limited, in practice it is often useful to\n",
|
||
"use a less-complex model with higher bias, that is a model whose asymptotic\n",
|
||
"performance is worse than another model because it is easier to\n",
|
||
"train and less sensitive to sampling noise arising from having a\n",
|
||
"finite-sized training dataset (smaller variance). \n",
|
||
"\n",
|
||
"The above equations tell us that in\n",
|
||
"order to minimize the expected test error, we need to select a\n",
|
||
"statistical learning method that simultaneously achieves low variance\n",
|
||
"and low bias. Note that variance is inherently a nonnegative quantity,\n",
|
||
"and squared bias is also nonnegative. Hence, we see that the expected\n",
|
||
"test MSE can never lie below $Var(\\epsilon)$, the irreducible error.\n",
|
||
"\n",
|
||
"What do we mean by the variance and bias of a statistical learning\n",
|
||
"method? The variance refers to the amount by which our model would change if we\n",
|
||
"estimated it using a different training data set. Since the training\n",
|
||
"data are used to fit the statistical learning method, different\n",
|
||
"training data sets will result in a different estimate. But ideally the\n",
|
||
"estimate for our model should not vary too much between training\n",
|
||
"sets. However, if a method has high variance then small changes in\n",
|
||
"the training data can result in large changes in the model. In general, more\n",
|
||
"flexible statistical methods have higher variance.\n",
|
||
"\n",
|
||
"You may also find this recent [article](https://www.pnas.org/content/116/32/15849) of interest."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "6fe999c4",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Another Example from Scikit-Learn's Repository\n",
|
||
"\n",
|
||
"This example demonstrates the problems of underfitting and overfitting and\n",
|
||
"how we can use linear regression with polynomial features to approximate\n",
|
||
"nonlinear functions. The plot shows the function that we want to approximate,\n",
|
||
"which is a part of the cosine function. In addition, the samples from the\n",
|
||
"real function and the approximations of different models are displayed. The\n",
|
||
"models have polynomial features of different degrees. We can see that a\n",
|
||
"linear function (polynomial with degree 1) is not sufficient to fit the\n",
|
||
"training samples. This is called **underfitting**. A polynomial of degree 4\n",
|
||
"approximates the true function almost perfectly. However, for higher degrees\n",
|
||
"the model will **overfit** the training data, i.e. it learns the noise of the\n",
|
||
"training data.\n",
|
||
"We evaluate quantitatively overfitting and underfitting by using\n",
|
||
"cross-validation. We calculate the mean squared error (MSE) on the validation\n",
|
||
"set, the higher, the less likely the model generalizes correctly from the\n",
|
||
"training data."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"id": "8289e153",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAABGQAAAHTCAYAAABhg86vAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAD5mElEQVR4nOzdd3iT5ffH8Xe692QUSimr7A2C7C2gCIiIItOBKCLiTwVRceBWxC3iBBFQlsgXGYKATEUQUGbZexZaKKUzz++PkEBoC01XOj6v6+pF++QZJ005SU7u+9wmwzAMREREREREREQk37g4OwARERERERERkeJGBRkRERERERERkXymgoyIiIiIiIiISD5TQUZEREREREREJJ+pICMiIiIiIiIiks9UkBERERERERERyWcqyIiIiIiIiIiI5DMVZERERERERERE8pkKMiIiIiIiIiIi+UwFGRERERERERGRfKaCjOSpyZMnYzKZbF9eXl6ULVuWzp078/HHH3Px4kVnh5gvTpw4wXPPPUe7du3w9/fHZDKxcuVKZ4clIpInlPszNmTIEEwmE926dXN2KCIi2aYcb+HI6/u2bdva/c6sX126dMnfoKXAcXN2AFI8jBs3jooVK5KSksLJkydZuXIlI0eOZMKECcyfP5+6des6O8Q8tXv3bt555x2ioqKoU6cO69evd3ZIIiJ5rrjn/mtt3LiRyZMn4+Xl5exQRERyRXHP8Y6+vi9XrhxvvfWW3bayZcvmZYhSCKggI/mia9euNG7c2PbzmDFjWL58Od26daN79+7s3LkTb2/vfIvHMAwSExPz7ZqNGjUiJiaGkJAQZs+ezT333JMv1xURcabinvuvve6IESMYOHAgv//+e75eW0QkrxT3HO/o6/vAwED69++fL7FJ4aEpS+I07du3Z+zYsRw6dIgffvjB7rZdu3bRu3dvQkJC8PLyonHjxsyfPz/dOf7991/atGmDt7c35cqV4/XXX+e7777DZDJx8OBB234VKlSgW7duLFmyhMaNG+Pt7c2kSZMAiI2NZeTIkURERODp6UmVKlV45513MJvNdtcym818+OGH1KpVCy8vL0qXLs3QoUM5f/78Te+rv78/ISEh2fgtiYgULcUp91tNnTqVbdu28cYbbzjwmxIRKXyKU47Pzuv71NRU4uPjHTpGijaNkBGnGjBgAM8//zy/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0Lp1a3bt2sWgQYN44okniI+PZ/v27UyfPp277rqLsmXL2h0zceJE/Pz80l07KCgo1+9PVnzyyScZJqQbWbRoET179qRt27Z88skn/Pfff7z++uucPn2aiRMn2vbbtGkTzZs3JyoqitGjR+Pj48OiRYt48skn2bdvHx999FGu3Y8tW7bQoUMHatSowYQJEzh69Cjjx49nz549LFq0yLbf2bNnGTduHOXLl6devXqsXLnyhud97733uO+++wgMDMy1WJcsWYLJZOK2227L0XkcfezWr1/PCy+8wO23386LL76Im5sbc+bM4b777mPHjh28+uqr6Y4ZMWIEt9xyi922KlWq5Cju6x09epTWrVsTGBjIm2++SXx8POPHj+e///5jw4YNeHh42PZ98cUXCQsLo0GDBixZsiTTczZo0IDGjRvz/vvv8/333+dqvFL0KPdnzd9//02rVq144IEH8PLyYvPmzbz99tssW7aMVatW4eJi+XznnXfeYe3atdxzzz3UrVuXkydP8umnn9KwYUP+/PNPateunWv3Iz4+nnbt2hEXF8fzzz+Pu7s7H3zwAW3atGHLli2EhoYC8Msvv/DOO+/Qs2dPBg0aRGpqKt9//z2dOnXi22+/5YEHHrA770cffUTFihVp165drsV64sQJNm/ezLhx4xw+9oUXXuDhhx+223bp0iUeffTRLD2XZDXPxsfH06xZMy5dusSwYcOIiIhg69atfPrpp6xYsYJNmzbZHuecyovHLiwsjB49ejB+/Hi6d++eK3FK4VVccvvChQv5+uuvqVu3LpUqVXK4+P3ss88yYcIE+vfvz7Bhw4iNjWXSpEm0adOGtWvX0qRJEwAOHTrExYsXGTRoEGXLliUhIYE5c+bQvXt3Jk2axCOPPJIXdy9DWc0fZrOZTp06sWPHDoYNG0bVqlXZu3cvn3/+OUuWLGHnzp34+/vbzvvee+/RoUOHXH2tu2HDBs6ePcsdd9yR7XNc/3fm6urq8DleeumlTIsrR44coUmTJgQGBjJ8+HBCQkJYv349L7/8Mps2beKXX37JduyOyovnqx49ehAQEMDnn3+erefgfGEUc999950BGL169TJKlChhpKSk2N0+ZMgQo1GjRkZkZKRxxx132LbPnDnTAIxp06alO+fly5eNuLg4288vv/yyARhnzpzJuzvioFOnThmBgYHGuHHjDMB47733snRczZo1jXr16tn9nl544QXDZDIZO3futG0bMmSI4eHhYcTExNgd37p1ayMgICB37sQVXbt2NcqUKWP3O//qq68MwFiyZIltW2JionHixAnDMAzj77//NgDju+++y/Cc//zzjwEYy5Ytu+n127RpYwwaNChLsQ4YMMBo06ZNlvbNTHYeu/379xsHDx6022Y2m4327dsbnp6eRnx8vG37ihUrDMCYNWtWjuLMiscee8zw9vY2Dh06ZNu2dOlSAzAmTZpkt++BAwcMwzCMM2fOGIDx8ssvZ3re8ePHG76+vsbFixfzImwpApT7Hcv9GRk/frwBGOvXr7dtW7t2rZGUlGS3X3R0tOHp6Wn069cv29fKyDvvvGMAxoYNG2zbdu7cabi6uhpjxoyxbdu2bVu6xyAxMdGoXr26Ua5cObvtycnJRokSJYwXX3zxptd/+eWXjcjIyCzF+s033xje3t5GQkJClva/malTp2b6d3i9rObZadOmGYCxYMECu+NfeuklAzD++eefXIndMPLmsTMMw5g9e7ZhMpmMffv25VqsUrgUt9x+8uRJW155/PHHDUfe2qWkpBje3t5G79697bbv37/fAIwRI0bc8PjU1FSjXr16RrVq1RwPPBORkZE3fH1nGFnPH2vXrjUA49NPP7U7/ttvvzUAY+7cubZtp06dMtzc3Iyvv/76pjEOGjQoy6/lx44dm+Xnievl1t/Zf//9Z7i5udme969/ff/GG28YgLFt2za77QMHDjQA49y5czm6vtWN3ndZ5dXz1fDhw43IyEjDbDbn/I7kgWI/Zcmqb9++xMTEsHTpUtu25ORkZs+ezf33359u/3379gHQokWLdLd5eXkREBCQd8Hmgueee45q1arRv3//LB+zY8cOduzYwSOPPIKb29XBVcOGDcMwDLshcBcuXMDLyyvdpwRlypTB29vbbpvZbObDDz+kVq1aeHl5Ubp0aYYOHcr58+dvGtOFCxdYunQp/fv3t/udDxw4ED8/P7upQZ6enoSFhWXpvs6bNw8PDw9at26dpf2zwmw2s3jx4hxVySF7j13FihWJjIy022YymejZsydJSUkZDvMEuHjxYobT0a71ww8/0KhRI7y9vQkJCeG+++7jyJEjWYprzpw5dOvWjfLly9u2dezYkapVq6ab1lWhQoUsnROgU6dOXLp0ye7/s0hGlPuzz/p/MjY21ratefPmdiPbAKKioqhVqxY7d+5Md45FixbRqlUrfH198ff354477mD79u1Zuv7s2bO55ZZb7EbyVa9enQ4dOtjlj1q1alGiRAm7Yz09Pbn99ts5evQoFy9etG1fs2YNZ8+epWPHjlmKIat+/fVX2rVrl+75L7umT5+Or68vPXr0uOm+Wc2zFy5cAKB06dJ2x5cpUwYgXewF7bGz3i8gXz/RlYKpuOT20qVLZzuvpKSkcPny5XT/50uVKoWLi8tNz+vq6kpERITdc4BVTvLDzWQ1fziS03799VdSU1PzJPfn9HW/YRhcuHABwzCydfyTTz7JXXfdRatWrTK8/Ua/JxcXl3TP6Tl53X8zefV81alTJw4dOsSWLVtyJc7cpoLMFRUqVKBZs2bMmDHDtm3RokXExcVx3333pdvf+ub2+++/z/J/kHPnznH27Fm7r4yS2PXi4uLSHZfR1/Vz+TOzYcMGpkyZwocffujQXNPNmzcD0LhxY7vtZcuWpVy5crbbwTLn/cKFCwwdOpSdO3dy6NAhvvjiC+bOncuYMWPsjh86dCjPPvssLVq04KOPPuKBBx5g2rRpdO7cmZSUlBvG9N9//5GampouJg8PD+rXr28XkyPWrVtH7dq1szw/Pyv+/vtvzpw5w+23357tc2T3scuMdT7l9S94AR544AECAgLw8vKiXbt2bNy4Md0+b7zxBgMHDiQqKooJEyYwcuRIfv/9d1q3bn3Tv+1jx45x+vTpdI8dQJMmTbL92AHUrFkTb29v1q5dm+1zSPGg3J91qampnD17luPHj/Pbb7/x4osv4u/vbxvSnhnDMDh16lS6PDN16lTuuOMO/Pz8eOeddxg7diw7duygZcuWHDx48IbnNJvN/Pvvv5nmj3379qV7s369kydP4uPjg4+Pj23bunXrMJlMNGjQ4IbHOiIlJYVly5blKPdf68yZMyxdupSePXvi6+t7w30dybOtW7fGxcWFJ598kj///JOjR4+ycOFC3njjDXr27En16tVt+xbExw4gMDCQypUrK/dLscrt2eXt7U3Tpk2ZPHky06ZN4/Dhw/z7778MHjyY4ODgDKchXbp0ibNnz7Jv3z4++OADFi1aRIcOHez2yUl+uBlH8kfjxo3x9fVl7NixLF++nGPHjvHHH38watQobrnlFrviy7p16wgNDU334WVOnDx5ks2bN+c491eqVInAwED8/f3p378/p06dyvKxs2bNYt26dTfsYdO2bVsAHnroIbZs2cKRI0f46aefmDhxIiNGjLB7nsnJ6/6byavnK7D0cAMK7nODE0fnFAjWoY1///238emnnxr+/v62oX/33HOP0a5dO8MwjHRDGxMSEoxq1aoZgBEZGWkMHjzY+Oabb4xTp06lu4Z1yFlGX1kZ5temTZtMj7/2KyvTZsxms9GkSROjb9++hmFYpoGQxWHr7733ngEYhw8fTnfbLbfcYtx66622n1NTU43hw4cb7u7utvhcXV2NiRMn2h23evXqDIeILl68OEvDsWfNmmUAxqpVq9Ldds899xhhYWEZHnezKUvlypUz7r777hte2yqrU5ZyMmzRMHL22GUkJibGKFWqlNGqVSu77WvXrjXuvvtu45tvvjF++eUX46233jJCQ0MNLy8vuyGABw8eNFxdXY033njD7njr0Mjrt1/P+hh8//336W579tlnDcBITExMd1tWpiwZhmFUrVrV6Nq16w33keJLud/x/LF+/fp092HFihU3Pc46veabb76xbbt48aIRFBRkDBkyxG7fkydPGoGBgem2X8+aB8aNG5futs8++8wAjF27dmV6/J49ewwvLy9jwIABdtv79+9vhIaG3vQ+GUbWpyz9/vvvBmCbdplTn3zyiQEYCxcuvOm+jubZr7/+2ggKCkr393XttI+C+thZ3XbbbUaNGjVuGIMUXcUtt1/L0SlLhmH5/9SwYUO761aqVCnT/4NDhw617efi4mL07t3bbkpLTvPDzaYsOZo/FixYYJQpU8bu/nXu3DndlPaWLVsajRo1umFsVlmdspTTqaoffvihMXz4cGPatGnG7NmzjSeffNJwc3MzoqKi7KbQZSYhIcEoX768bRrXjVoSvPbaa4a3t7fd7+mFF16w2yenr/tv9L7LMPLm+epaHh4exmOPPXbDGJ1FTX2v0adPH0aOHMmCBQvo0qULCxYs4OOPP85wX29vb/766y/eeOMNZs6cyeTJk5k8eTIuLi4MGzaM8ePHp2sYNmfOnHRDHm/26RbA+++/n6XpO9c3G8vI5MmT+e+//zLssH0zly9fBkh3v8AynNM6fAwswxgrV65M586dueeee/Dy8mLGjBk88cQThIWF0bNnT8BSuQ0MDKRTp06cPXvWdnyjRo3w8/Nj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vPfee9SpUyfdUPepU6dy6NAhW5OwVatW2YYPDxgwwG6pwqVLl+Lj45OlppciVsr9GeePlStXMmLECHr37k1UVBTJycmsXr2auXPn0rhxY7tP/J5++mnmz5/PnXfeyblz59JN57HuGxAQwMSJExkwYAANGzbkvvvuo2TJkhw+fJhff/2VFi1a8Omnn97wfg0bNoyvvvqKO+64g2eeeQZ3d3cmTJhA6dKlefrpp237/fzzz4waNco2DP/6mK59HFq2bEloaCjLli3LcUHm8uXLrFixgi+++CJH57Gy5u0bTVeyLj977RSorObZ4cOH891333HnnXfyxBNPEBkZyR9//MGMGTPo1KkTTZs2BQruYwewbNkyDMOgR48eN/ltSnFSVHM7WApGU6dOBbCNLLC+NoqMjLSbml6jRg27aTKNGjWiU6dOTJkyhQsXLnDbbbdx4sQJPvnkE7y9vRk5cqTt2KFDh3LhwgVat25NeHg4J0+eZNq0aezatYv333/f9nvIjfxwM1nNH4MHD2b8+PEMHTqUzZs3U6tWLf755x++/vpratWqxV133WXb94477sDNzY1ly5ZluNy3Iw4cOMDOnTvtpqpmR2RkJPfeey916tTBy8uLNWvW8OOPP1K/fn2GDh1qt+/1j+3104UA23S9W265xe55/9lnn2XRokW0atWK4cOHExoayoIFC1i0aBEPP/ywrTCYG6/7bya3n6+sli5dSvny5W86sshpnNS7psC4vvlXZq5v/rV//37jpZdeMm699VajVKlShpubm1GyZEnjjjvuMJYvX2537M0aG2Vl2dC8klljR+v2jJbc+/nnn4369esbnp6eRrly5YwXX3zRSE5OTrff4sWLjTZt2hglSpQwPDw8jDp16hhffPFFhnF8+eWXRqNGjQxvb2/D39/fqFOnjjFq1Cjj+PHjWbofq1evNpo3b254eXkZJUuWNB5//HHjwoUL6faLjIzM9HG4fknSunXrZtjY93o3W/b6mWeeMWrWrJml++EIRx67mzVOu7YJ5UcffWQ0adLECAkJMdzc3IwyZcoY/fv3N/bs2ZNhHHPmzDFatmxp+Pr6Gr6+vkb16tWNxx9/3Ni9e3eW7se2bduM2267zfDx8TGCgoKMfv36GSdPnky3342Wibz+/1DTpk2N/v37Z+n6Ujwp92c9f+zdu9cYOHCgUalSJcPb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spRPy5KnVacqIlK5KcqJiIiIiIhT5NeylK4KGRFxEUrIiIiIiIiIU1iyz0byVMjYcmbI6FRFRCo3RTkREREREXGK/Le9VoWMiLgGJWRERERERMQpLPnusqSEjIi4BiVkRERERETEKSz5VsgYLUseGuorIpWcopyIiIiIiDhF7lDf/HZZUoWMiFRySsiIiIiIiIhT5G57bc9vqK8SMiJSuSkhIyIiIiIiTmG5aIWMTlVEpHJTlBMREREREafIbVmyn7stPSchY1WFjIhUbkrIiIiIiIiIU+TbspSpliURcQ1KyIiIiIiIiFOYs89G8rQs2dSyJCKuQVFOREREREScIv8KGe2yJCKuQQkZERERERFxivyH+ua0LOlURUQqN0U5ERERERFxinNDfS+skPHQUF8RqeSUkBEREREREaf4d8uSw+Eg3aahviLiGpSQERERERERp/h3y1JOMgbUsiQilZ+inIiIiIiIOEVuQiY7D5PTrgSqkBGRyk8JGRERERERcYqchIw9u0ImZ6CvxWzCzaJTFRGp3BTlRERERETEKcymvEN9c7e8tuo0RUQqP0U6ERERERFxitwKmZyEjC07IaN2JRFxAUrIiIiIiIiIU+TssmSz521ZUkJGRFyBEjIiIiIiIuIU5uyzkSxH3pYlD+2wJCIuQJFORERERESc4oKWpdwZMqqQEZHKTwkZERERERFxipyWpSzHv1uWdJoiIpWfIp2IiIiIiDiFObtCxuEAh8NBuob6iogLUUJGREREREScIqdCBoytr3NblpSQEREXoISMiIiIiIg4RU6FDBhtS2pZEhFXokgnIiIiIiJOYTkvIWO3a6iviLgWJWRERERERMQp8rQsnVch46GWJRFxAUrIiIiIiIiIU5jPOxvJsjtIyx3qq9MUEan8FOlERERERMQpzq+QsWuor4i4GCVkRERERETEKSwFDfXVDBkRcQFKyIiIiIiIiFOYTCZyimTsdgfpmWpZEhHXoUgnIiIiIiJOY82ukslynD9DRhUyIlL5KSEjIiIiIiJOY84ukVl/IJ6NB88AqpAREddgdfYCRERERETEdeXMkRk9eSMAwT7udKoX7MwliYiUCSVkRERERETEac7faenmdqG8dG0zAn3cnbgiEZGyoYSMiIiIiIg4zYCWNdl86AwvDmhKz0bVnL0cEZEyo4SMiIiIiIg4zTu3tHL2EkREnELTskREREREREREypgSMiIiIiIiIiIiZUwJGRERERERERGRMqaEjIiIiIiIiIhIGVNCRkRERERERESkjCkhIyIiIiIiIiJSxpSQEREREREREREpY0rIiIiIiIiIiIiUMSVkRERERERERETKmBIyIiIiIiIiIiJlTAkZEREREREREZEypoSMiIiIiIiIiEgZU0JGRERERERERKSMKSEjIiIiIiIiIlLGlJARERERERERESljSsiIiIiIiIiIiJQxJWRERERERERERMqYEjIiIiIiIiIiImVMCRkRERERERERkTKmhIyIiIiIiIiISBlTQkZEREREREREpIwpISMiIiIiIiIiUsaUkBERERERERERKWNKyIiIiIiIiIiIlDGrM97U4XAAkJCQ4Iy3FxFxipyYlxMDXYnivoi4KsV+xX4RcT1Fjf1OScgkJiYCEBYW5oy3FxFxqsTERAICApy9jDKluC8irk6xX0TE9RQW+00OJ6Tr7XY7R44cwc/PD5PJVNZvLyLiFA6Hg8TERGrVqoXZ7Fodo4r7IuKqFPsV+0XE9RQ19jslISMiIiIiIiIi4spcK00vIiIiIiIiIlIOKCEjIiIiIiIiIlLGlJARERERERERESljSsiIiIiIiIiIiJQxJWRERERERERERMqYEjIiIiIiIiIiImVMCRkRERERERERkTKmhIxUeidPnqRGjRq8+eabubetWLECd3d3FixY4MSViYhIaVHsFxFxPYr9UtGYHA6Hw9mLEClts2bN4sYbb2TFihU0btyYNm3acMMNNzBmzBhnL01EREqJYr+IiOtR7JeKRAkZcRmjRo3i77//pkOHDmzZsoW1a9fi4eHh7GWJiEgpUuwXEXE9iv1SUSghIy4jNTWVFi1aEBsby/r162nZsqWzlyQiIqVMsV9ExPUo9ktFoRky4jJiYmI4cuQIdrud/fv3O3s5IiJSBhT7RURcj2K/VBSqkBGXkJGRQceOHWnTpg2NGzfmo48+YsuWLYSEhDh7aSIiUkoU+0VEXI9iv1QkSsiIS3jmmWf45Zdf2Lx5M76+vvTq1YuAgABmzpzp7KWJiEgpUewXEXE9iv1SkahlSSq9RYsW8dFHHzFp0iT8/f0xm81MmjSJpUuXMnbsWGcvT0RESoFiv4iI61Hsl4pGFTIiIiIiIiIiImVMFTIiIiIiIiIiImVMCRkRERERERERkTKmhIyIiIiIiIiISBlTQkZEREREREREpIwpISMiIiIiIiIiUsaUkBERERERERERKWNKyIiIiIiIiIiIlDElZEREREREREREypgSMiIiIiIiIiIiZUwJGRERERERERGRMqaEjIiIiIiIiIhIGft/SaVhB3+4hlcAAAAASUVORK5CYII=",
|
||
"text/plain": [
|
||
"<Figure size 1400x500 with 3 Axes>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"filenames": {
|
||
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week37_142_0.png"
|
||
}
|
||
},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"\n",
|
||
"\n",
|
||
"#print(__doc__)\n",
|
||
"\n",
|
||
"import numpy as np\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"from sklearn.pipeline import Pipeline\n",
|
||
"from sklearn.preprocessing import PolynomialFeatures\n",
|
||
"from sklearn.linear_model import LinearRegression\n",
|
||
"from sklearn.model_selection import cross_val_score\n",
|
||
"\n",
|
||
"\n",
|
||
"def true_fun(X):\n",
|
||
" return np.cos(1.5 * np.pi * X)\n",
|
||
"\n",
|
||
"np.random.seed(0)\n",
|
||
"\n",
|
||
"n_samples = 30\n",
|
||
"degrees = [1, 4, 15]\n",
|
||
"\n",
|
||
"X = np.sort(np.random.rand(n_samples))\n",
|
||
"y = true_fun(X) + np.random.randn(n_samples) * 0.1\n",
|
||
"\n",
|
||
"plt.figure(figsize=(14, 5))\n",
|
||
"for i in range(len(degrees)):\n",
|
||
" ax = plt.subplot(1, len(degrees), i + 1)\n",
|
||
" plt.setp(ax, xticks=(), yticks=())\n",
|
||
"\n",
|
||
" polynomial_features = PolynomialFeatures(degree=degrees[i],\n",
|
||
" include_bias=False)\n",
|
||
" linear_regression = LinearRegression()\n",
|
||
" pipeline = Pipeline([(\"polynomial_features\", polynomial_features),\n",
|
||
" (\"linear_regression\", linear_regression)])\n",
|
||
" pipeline.fit(X[:, np.newaxis], y)\n",
|
||
"\n",
|
||
" # Evaluate the models using crossvalidation\n",
|
||
" scores = cross_val_score(pipeline, X[:, np.newaxis], y,\n",
|
||
" scoring=\"neg_mean_squared_error\", cv=10)\n",
|
||
"\n",
|
||
" X_test = np.linspace(0, 1, 100)\n",
|
||
" plt.plot(X_test, pipeline.predict(X_test[:, np.newaxis]), label=\"Model\")\n",
|
||
" plt.plot(X_test, true_fun(X_test), label=\"True function\")\n",
|
||
" plt.scatter(X, y, edgecolor='b', s=20, label=\"Samples\")\n",
|
||
" plt.xlabel(\"x\")\n",
|
||
" plt.ylabel(\"y\")\n",
|
||
" plt.xlim((0, 1))\n",
|
||
" plt.ylim((-2, 2))\n",
|
||
" plt.legend(loc=\"best\")\n",
|
||
" plt.title(\"Degree {}\\nMSE = {:.2e}(+/- {:.2e})\".format(\n",
|
||
" degrees[i], -scores.mean(), scores.std()))\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "3a9dffce",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Various steps in cross-validation\n",
|
||
"\n",
|
||
"When the repetitive splitting of the data set is done randomly,\n",
|
||
"samples may accidently end up in a fast majority of the splits in\n",
|
||
"either training or test set. Such samples may have an unbalanced\n",
|
||
"influence on either model building or prediction evaluation. To avoid\n",
|
||
"this $k$-fold cross-validation structures the data splitting. The\n",
|
||
"samples are divided into $k$ more or less equally sized exhaustive and\n",
|
||
"mutually exclusive subsets. In turn (at each split) one of these\n",
|
||
"subsets plays the role of the test set while the union of the\n",
|
||
"remaining subsets constitutes the training set. Such a splitting\n",
|
||
"warrants a balanced representation of each sample in both training and\n",
|
||
"test set over the splits. Still the division into the $k$ subsets\n",
|
||
"involves a degree of randomness. This may be fully excluded when\n",
|
||
"choosing $k=n$. This particular case is referred to as leave-one-out\n",
|
||
"cross-validation (LOOCV)."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "2ee67263",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Cross-validation in brief\n",
|
||
"\n",
|
||
"For the various values of $k$\n",
|
||
"\n",
|
||
"1. shuffle the dataset randomly.\n",
|
||
"\n",
|
||
"2. Split the dataset into $k$ groups.\n",
|
||
"\n",
|
||
"3. For each unique group:\n",
|
||
"\n",
|
||
"a. Decide which group to use as set for test data\n",
|
||
"\n",
|
||
"b. Take the remaining groups as a training data set\n",
|
||
"\n",
|
||
"c. Fit a model on the training set and evaluate it on the test set\n",
|
||
"\n",
|
||
"d. Retain the evaluation score and discard the model\n",
|
||
"\n",
|
||
"5. Summarize the model using the sample of model evaluation scores"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "c44868f2",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Code Example for Cross-validation and $k$-fold Cross-validation\n",
|
||
"\n",
|
||
"The code here uses Ridge regression with cross-validation (CV) resampling and $k$-fold CV in order to fit a specific polynomial."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"id": "df0c5466",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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Wi+//LIVGxtreXt7WzExMdarr75q7dy50wKslStXntR+2LBhVo0aNSxvb2+rSZMm1pQpU4pf/+STT6ymTZtaAQEBVnBwsHX55ZdbK1assCzLsiZMmGC1adPGCg4OtgICAqy2bdtaM2fOPOusR48etex2u+Xv729lZmaWeG3FihVWy5YtLV9fX6tOnTrWDz/8YMXGxlpvv/12cRvAmjBhwr8e50znYFmWdfjwYev222+3qlSpYvn6+loNGza0Jk2aVPz6+PHjrfr16xd/nv/5z39K7P+fuf6yZMkSq3PnzlZgYKAVEBBgNW7c2HrllVdOm9OVf+5ELMuyUo4ct27q+5o1N7aptemnqef8/q/veMbK8/C0lre6rAzSibs40/f3Pxm966dPnz6sW7eOkSNHEhkZyTfffMPbb7/Nhg0bqFGjxr++/1zv+hEpa/q5E1f3/C/r+O/C3bSrVYVv7257zu/fOXsxsZcm4YHF9mlzqdXlojJIKa7uXO76MTZGJScnhx9//JE33niDiy++mNq1azNs2DBq167NyJEjTcUSEamw0jJPMHZp0fxED15a+7z2EX9JG1YmFd2RlzHk+VLLJhWXsUKloKCAwsLCk37r9PPzY968ead8T25uLhkZGSUeUjb+/PNPAgMDT/soba+++uppj9W9e/dSP56InGzDkFcYNOsLugTkkFSrynnvp+obLwPQZMUc9i5fX1rxpIIyNpg2KCiIpKQkXnrpJRITE6lWrRrfffcdCxcupHbtU1fyw4cP54UXXijnpBVTy5YtWbVqVbkd77777uOGG2445WuldfuxiJxeYX4BCd+M4pL0gyy7quNJEyuei9gOLVnToA2N1y8m5ZU3qfGTZnKW82d0jMr27du54447mDt3Lp6enjRv3py6deuyfPlyNm7ceFL73NxccnNzi59nZGQQHR2tMSriNPRzJ65q9aff0eSemznmF4TvgX34Bp3bfE3/tGrk1zR94DYyfAPxSt2Df6WQUkoq7sAlxqgA1KpVizlz5pCVlUVKSgpLliwhPz+fmjVrnrK93W4nODi4xENERC5c4ahPANjU+eoLLlIAGt91E3srR+BZWMD8cTMveH9ScTnFPCoBAQEEBARw9OhRpk2bxhtvvGE6kohIhXFoezKNV8wFIOKxgaWyTw9vL5a8MYrn1+VQs6A6nUtlr1IRGe1RmTZtGlOnTmXnzp3MmDGDSy+9lISEBG6//XaTsUREKpTtH47Gy3KwJTaR2Itbldp+L+rThWy/QFanHGNbWlap7VcqFqOFSnp6OgMGDCAhIYHbbruNDh06MG3atHNexVdERM5f8MSfADjS89pS3W/VQDuX1A0DYMrva0p131JxGL30c8MNN5z2Tg8RESl7+49mszyoBmH+u4m/v1+p7//WsHweGzyQKrlZFF6Xiqe3U4w4EBeiRQkroEsuuYRBgwadsU1cXBzvvPNOueQREXN+W3+AZ7sOYMB/fqVa/Tqlvv+kjk2IyjhItfSDbBjzS6nvX9yfChUn1L9/f66++uoS28aPH4+vry9vvfUW/fv3x2aznfTYtm2bmcAi4rImrUkFoHuTqDLZvz0wgI0XF03amDPmuzI5hrg3FSou4LPPPqNv376MHDmSxx57DIBu3bqxb9++Eo/4+HjDSUXElRzclUrh4iXYLAc9GkWU2XEC+t4IQJ0FMynIzSuz44h7qpiFyvHjp3+cOHH2bXNy/r3tBXrjjTcYOHAgY8eOLXE3lN1up3r16iUenp6eAMyZM4fWrVtjt9uJiIjgqaeeoqCg4LTHSEtLo2fPnvj5+REfH8+YMWMuOLeIOL+dn33DxP8+yg+TXiU8uOwmKEzocyVH/YOplJ3Opu8nldlxxD1VzEIlMPD0j+uuK9k2PPz0bf+5Bk1c3MltLsDgwYN56aWXmDRpEtdcc81ZvWfv3r306NGDVq1asXr1akaOHMnnn3/Oyy+/fNr39O/fn5SUFP744w/Gjx/PRx99RFpa2gVlFxHn5z1lCgD5rduU6XG87D5sTeoEwPFvx5bpscT9aPi1k5oyZQq//PILs2bN4rLLLjvp9UmTJpVYHLB79+788MMPfPTRR0RHR/PBBx9gs9lISEggNTWVwYMH8/zzz+PhUbI23bJlC1OmTGHJkiW0alU0f8Lnn39OYmJi2Z6giBh1IvM49dYuAiDsxtK9LflUfG+6AWb9RO15MyjML9DdP3LWKuZPStYZJh763+WTYmfqWfjHlz67dp13pH9q3Lgxhw4dYujQobRu3fqkFYsvvfRSRo4cWfw8IKBoyuuNGzeSlJRUYkGx9u3bk5WVxZ49e4iJiSmxn40bN+Ll5UWLFi2KtyUkJBAaGlpq5yIizmfLuEk0zj9BWlAVanXuUObHS+x7NT9+1I1psS24c+dh2tStVubHFPdQMQuVgHNYx6Ks2v6LGjVqMH78eC699FK6devGlClTCAoK+tuhAk67yrSIyL/J+anoVuGdbS8l/J+/dJUBb187fz7xKtNXpRK//YgKFTlrFXOMiouIjY1lzpw57N+/n27dupGZmfmv70lMTGThwoX8fVHs+fPnExQURFTUybcfJiQkUFBQwPLly4u3bd68mWPHjpXKOYiIc6qxeA4A9qt6ltsxL00IB+CPTRoDJ2dPhYqTi46OZvbs2aSlpdG1a1cyMjLO2P6BBx4gJSWFgQMHsmnTJn755ReGDh3Ko48+etL4FIB69erRrVs37r33XhYvXszy5cu566678PPzK6tTEhHDUlduIOpwKgU2D2rfWH6FSse6YTQ6sI3uP37CvrVbyu244tpUqLiAqKgoZs+ezaFDh/61WKlRowaTJ09myZIlNGnShPvuu48777yTZ5999rTvGT16NJGRkXTs2JFrr72We+65h/Dw8LI4FRFxAvOyfehz03A+v/ExAqtWKrfjhvr78MafX/DI/G9J/ur7cjuuuLaKOUbFyX355ZcnbatRowZbtpzdbyAdO3ZkyZIlp3199uzZJZ5Xr16dSZNKzm1w6623ntWxRMT1zN2dweKYRrS9vPSnzP83xy7rAtvX4Dd9CvBcuR9fXI96VEREKhCHw2LB9sMAdKhTtdyPX/3m3gDU3bicnGP/Pu5ORIWKiEgFsmPuEgb+8j5dk1fSNDq03I8fd3Er9oeG41uQx+bvfi7344vrUaEiIlKBHBr3M7cv/5UHNkzF27P8vwJsHh7sbnsJALm//FruxxfX4/aFyt9v0xUpa/p5E2fnt+BPAHI6dDSWwbdX0Z1GsYvnYDkcxnKIa3DbQsXb2xuA7Oxsw0mkIvnr5+2vnz8RZ+IoKCR+82oAKne73FiOujf2Is/Ti4DsTJI37DCWQ1yD29714+npSWhoaPHiev7+/iWmlRcpTZZlkZ2dTVpaGqGhocUrWYs4k91/LiH+RBbZ3r7ULIdp80/HLzSIx5/9kgnZQQzL8kb3GMqZuG2hAkW33QJaCVjKTWhoaPHPnYizSZsyi3hge+1GNLL7GM0Sd3FrCqdvYf7WQ9zaNtZoFnFubl2o2Gw2IiIiCA8PJz8/33QccXPe3t7qSRGn5jl/PgBZrdoaTgLta1flzelbWLD9EIWFDjwNDOwV1+DWhcpfPD099QUiIhWeb8ouAII6XWo2CNCoRgjP//kll22Yz/aW31D3ystMRxInpRJWRKQC2HM0mytv+g8d7/+Cmr06m46Dl6cHzU4cIu7YPg7/Mtl0HHFiKlRERCqAZbuOgs1GaIO6+AcHmo4DQF7HSwAImjfbaA5xbipUREQqgCW7jgDQKrb8FiH8N9WvuxKAOlvXcCIjy3AacVYqVEREKoA+T9zKJz+9zMWep199vbzFJDUjLbgq9sJ8tv40zXQc+YcDGSeYs+UgR47nGc2hQkVExM0dS95Hk+2r6bJ1EQ0TokzHKWbz8GB3syQAsiZPNZxG/mnZ5Hm889J/eeyrhUZzqFAREXFzu36bCUByWDSV452nUAHg0qK7fSotNftlKCer+sUoJnzzOPfM/sZoDhUqIiJu7sS8oiJgf4PmhpOcLOqabmyrHMXSyvEcP6H5rpxJ5U1rAbC3aW00R4WYR0VEpCLzX70CAKtVK8NJThbROIH2T3zF3mM5xKek06FOVdORBMjNy4ecHACqX9beaBb1qIiIuDHL4SBu+3oAqlxmbn2fM2kdXxmAxTsPG04if9mSlk3nOz/ioqfGE9EkwWgWFSoiIm5sz9K1BJ/IItfTm9hLzE+dfypt4ivjVVjA3vnLTEeR/1mz9xgAcbWjsHmYLRV06UdExI1t276P/TXq4xPoRxNfu+k4p5Tke4I17/bB0+HgxONX4xsUYDpShbd2TzpQtNSBaepRERFxY3MCo7n+ljf4+Y0vTUc5rZiGtcm2+2MvzGfH5D9MxxHg5qf68+13T9MuZ5/pKGYLlcLCQp577jni4+Px8/OjVq1avPTSS1iWZTKWiIjbWL3nGABNY5xnRtp/snl4sLtBSwDSp84ynEZOZB4nccca2iWvoVbtSNNxzF76ef311xk5ciRfffUVDRo0YNmyZdx+++2EhITw0EMPmYwmIuLy8nLz2bVzP3j60iQq1HScMyro0AEWzyBwyQLTUSq85DmLqeso5Kh/CNUb1DEdx2yPyoIFC+jVqxdXXHEFcXFx9O7dmy5durBkyRKTsURE3MLuWQtY/ub1jB87hNgq/qbjnFH4FUUrOtfauob8E7mG01RsR3//E4DkWvWND6QFw4VKu3btmDVrFlu2bAFg9erVzJs3j+7du5+yfW5uLhkZGSUeIiJyakdm/4kHFj5BgdhsNtNxzij2otYc8wvCP/8EO6bNNR2nQvNYthSA7GYtDScpYrRQeeqpp7jxxhtJSEjA29ubZs2aMWjQIPr27XvK9sOHDyckJKT4ER0dXc6JRURch8fSoi+c402db0baf/Lw8mRnYlHOoxqnYlT1TWsA8O+QZDhJEaOFyrhx4xgzZgzffvstK1as4KuvvuLNN9/kq6++OmX7IUOGkJ6eXvxISUkp58QiIq4jbOP/vnDaO+f8Kf906No+vHHxbfxWo6npKBVW+t40og8WfbfGduloOE0Ro4Npn3jiieJeFYBGjRqxe/duhg8fTr9+/U5qb7fbsdudcx4AERFnknXoKDEHdgMQ1dU5vnD+TfV+N/NRZgxBBV4Mc1h4ejj35Sp3tHnTbrLjW1CtIIvEWPN3/IDhHpXs7Gw8/jFQx9PTE4fDYSiRiIh7SPljIR5YHAgJo0q8a1wmT4wIItDuReaJAjbu0xhEExYRSv8bXuDjN74zHaWY0UKlZ8+evPLKK/z222/s2rWLCRMmMGLECK655hqTsUREXF76/MUA7Is3u07LufDy9ODSUAdXbpzLnl+mmo5TIa1OOQbgVLezG7308/777/Pcc8/xwAMPkJaWRmRkJPfeey/PP/+8yVgiIi5vdVAEexpeTujFF5uOck76rp5K24nvsexQN3igj+k4FYrlcLB7406wBdA0JtR0nGI2y4Wngc3IyCAkJIT09HSCg4NNxxERcRrd3pnLpv2ZfHJrC7o0qG46zllb99+faNjvOvaHhlP96AHTcSqU1FUbiWxWn52VI4nYuxNfX58yO9a5fH+bn8lFRERKVW5BIdvSsgBo6ASLyp2L+Csuo8DmQfVjaRzYsNV0nApl3/TZABQEBpdpkXKuVKiIiLiZ7et3UevATqraPYgI8TUd55wEVAllV43aAOyZNNNwmoolf8EiAI40aGI4SUkqVERE3EzW9+OZ9sWDfP7TS04/I+2pHG7cAoCCufMMJ6lYQtatAsCjjXPNu6NCRUTEzVgrlgOQnVDfcJLz43nxRQBUWb3McJKKIy/7BPG7NwFQrYtzDcBWoSIi4mZCN68HwKdVC8NJzk/UFZ0AiNu7jeOHj5kNU0HsmjUf34I8jvkFEd1al35ERKSMFOTmEbtnGwDhFztXF/7Zqt6wDkNuHspF933O6qMFpuNUCEem/wHArrpNsHl6Gk5TkgoVERE3smfRKnwL8jju40eNlo1NxzlvmVdcxb7gMJbvPmo6SoUwPzSO/za7gsPdrjQd5SQqVERE3MihuQsBSI6ug4eXc/1mfC5axlYCYJkKlTJnWRbf+8bxfJf7CbznLtNxTmJ0ZloRESldBctXAJCR0NBwkgvTqpov9y/6gaa/7sBx2x8uXXQ5uz1Hc0jLzMXLw0aT6FDTcU6iQkVExI38lnAR8444aHGl83Xhn4t60VWIX/A9/vkn2DFvKTUvcc3xNq5gyx+LabFnA7aWLfD1dr6CUJd+RETchGVZTPKP4YN2NxLWs5vpOBfEy+7DjlpFvUIHp/5uOI17C/hsFD+OeZLHZ39lOsopqVAREXETaZm5HM3Ox8MGtcMDTce5YFnNWwPgsWCB4STuLWxN0bw7Phd1MJzk1FSoiIi4iV2LVtNly0LaemY5ZRf+ufK/rGjiscj1KwwncV+ZaYeJ27cDgOgrLzec5tRUqIiIuAlrwgQ+mfAKj8383HSUUhF35eU4sFHjyD4ObdtlOo5b2jX5dzwtB6mVqhNWr6bpOKekQkVExE14rVsHQF4D177j5y/B1aqyK7LoyzPlVy1QWBayZs0FILV+M8NJTk+FioiIm6i8o2itFr/mzvulc64ONmrOCS8fDmzaaTqKWwpaXrRicmHbJMNJTk+3J4uIuIH8E7lE7d8NQLUOLQ2nKT0Hn3qORo1upkFcGK59H5Pzycs+Qa2tawGodmUXw2lOTz0qIiJuYM+iVfg4Csjy8ad6o3qm45Saxo1qke/pzfrUdE7kF5qO41bW7s/kppte5a2u9xB7kfMWtypURETcwOGFSwFIia6NzcN9/muPruxHWJCd/EKLNSnHTMdxK4t2p7Mqsh5b+97jdAsR/p37/DSLiFRg+StXA5BR2316UwBsNhuDtv/BtM8foPD110zHcSuLdx4BoE3NyoaTnJnGqIiIuIEfW13BmNzKXHGV8w6KPF+1AmzUO5TMqsWLTEdxGwW5eXQf+RKVqtejzf3OvTyBelRERNzA/IIgJiVeTNjlF5uOUuoqdeoIQNyW1TgKNE6lNOyY/ic3LZvESzNHkRAZYjrOGalQERFxccey89iXfgKAutWDDKcpffGdL+KElw+hOZmkLFppOo5bODJ5BgA7Eprh4e3cF1dUqIiIuLhd85Zz9+Kf6H5sG8G+3qbjlDoff192xNcH4MCUWYbTuAe/hfMAONH+IsNJ/p0KFRERF5c7dTrPzP6Cexf/aDpKmUn/3wKFNi1QeMEK8wuouamoZ6pKD+edP+UvKlRERFycbW3RpF05CQ0MJyk7/pcU/eZffZ0WKLxQO2fNJyg3m0y7PzU7tzcd51+pUBERcXEh2zYC4NOsseEkZSeuZ2e2V67BwogEDh07bjqOSzv86zQAdtRriqeTj08B3Z4sIuLSHAWFRO/dAUDVdq0Mpyk7ITWq0fuZMWxNy2LU3ky6hgaYjuSystcXFbY5F19qOMnZUY+KiIgL27dqA/75J8j19KZGK/ftUQFoGVcJgOW7jxpO4rpyCwp54KJ7af3AV1S+/y7Tcc6KChURERd2YP7/ps6PiMPL7mM4TdlqEVsZD0chqUtWm47islYmHyMnvxBHRAR1EmNNxzkruvQjIuLCctesA+BofF3DScpeG3sua969EZ/CfE481hPfIF3+OVfztx4EoH3tqthsNsNpzo4KFRERFzbhot68UhhL34vr4r4jVIpE1Y/niLedwLwcNk2dQ8L1PUxHcjmdH7qFlvkWOU1fNx3lrOnSj4iIC1ufUci66rWp0qaZ6ShlzubhQXJCUwCOzZpjNowLyjhwiAZbV9Jx5wqaNogxHeesGS1U4uLisNlsJz0GDBhgMpaIiEtwOCy2H8wCoHZ4oOE05SO3TdGii/YlWqDwXG0fNwlPy0FKWDTVG7nOpUKjhcrSpUvZt29f8WPGjKK1B66//nqTsUREXML+Ddt55rcPuHX1VGIq+5uOUy5CO18CQNzm1VgOh9kwLiZv6nQA9rZ0/kne/s7oGJWwsLASz1977TVq1apFx44dT9k+NzeX3Nzc4ucZGRllmk9ExJkdmreYW1dOZmf1eLw83zcdp1zU7HIxJ7x8qJSdTvLiVcQkNTcdyWVELC1a38fezfmnzf87pxmjkpeXxzfffMMdd9xx2pHIw4cPJyQkpPgRHR1dzilFRJxH9v/u+DkSW9twkvLj4+/LjrhEAA5M/t1wGtexf+0WYg6mUGjzoOb1V5qOc06cplD5+eefOXbsGP379z9tmyFDhpCenl78SElJKb+AIiJOxmPTJgDy6iYYTlK+dl7VhxEd+jK3crzpKC5j95jxAGyp2ZCQiLB/ae1cnOb25M8//5zu3bsTGRl52jZ2ux273V6OqUREnFfIrq0AeDesbzhJ+fK96w7e815GTUcAj5kO4yKWnPAlL7YpHp26mo5yzpyiUNm9ezczZ87kp59+Mh1FRMQlWA4HEam7AKjcuqnRLOWtRWzRVPo7Dh7nyPE8Kge494y8Fyq3oJCRwfXJvvFlJg3sYDrOOXOKSz+jR48mPDycK664wnQUERGXcGjrLoJzj1No83D7NX7+KdTfh5Z+eXTdvIBNMxeYjuP0lu48SnZeIeFBdhpEBpuOc86MFyoOh4PRo0fTr18/vLycooNHRMTp7V+2FoC9VWtgD6gYtyb/3ZN/fsOon1/F9s03pqM4vU2/ziIs6wgd64a5zLT5f2e8UJk5cybJycnccccdpqOIiLiMFfFNaPzwWEY9OsJ0FDPaF80FErpyqeEgzq/z60+y9MPbuP7wBtNRzovxQqVLly5YlkXduq4zS56IiGlb0zLJ8A0kuGlD01GMiOh+KQA1d20k93i24TTOa+/y9cSmJVNg8yDhms6m45wX44WKiIicu21p/5s6P6xiTJ3/T1Gtm3A4IBR7YT47Js82Hcdp7fnuRwA2125CcLWqhtOcHxUqIiIu6K73BjN05igSvHP/vbEbsnl4sLtBCwCOTZ1pOI3z8p0xDYDMy1yzNwWc5PZkERE5e8eS99Fp/Z8AHK/xX8NpzMlvfxEsmUXAYt35cypZh46SsL5oDE+1G681nOb8qUdFRMTF7Fu8EoD9oeEEVAk1G8agsCuKeglqb1lN/omK2bN0Jlu+Go+9MJ+9VSKJu7iV6TjnTYWKiIiLyVyxBoADUbUMJzErrmMbnrnmCbrc+SHrDhw3HcfpFP78MwApF3fB5uG6X/e69CMi4mIcG4puM82pVcdwErM8vDw50OsG9mw8wJJdR2kWW9l0JKeRX+jgkXa30yokgTvvdd3LPqAeFRERl+O/o2iNH1uDirXGz6m0rVlUnCzeecRwEueyZOcR9tj8mNumG4md25mOc0FUqIiIuJjwlO0ABDerWFPnn0rb6v7cuWQCN7z5OIX5BabjOI3p6/cD0CmxGp4erjcb7d/p0o+IiAvJSs/CO69o4GhEm2aG05iXEFOZR+Z/R2BeNtt+X0DtrhebjmSc5XBw2dP34Rteh6Tez5qOc8HUoyIi4kK2ZxTQYuAYOj01jtDo6qbjGOdl92F7vSYAHPpthuE0zmHb1D/puGE+D88fS9u61UzHuWAqVEREXMi2tCyw2agaH2U6itPITuoAgH3BPMNJnMOhr78DYFOTJHyDXX/mYhUqIiIuZOtfU+eHu/4XUGmp1PVyAOI2rsBRUGg4jVmWw0H0jEkAOK69znCa0qFCRUTEhbR581k+H/8C7fZvNh3FadTs1pFsbzuVsjNInr/cdByjts+YR9ThvZzw8iHh7ptNxykVKlRERFxI7TWLuXz7UmICPE1HcRo+/r7sqN0IgAO/TjOcxqyDn38NwIZmHQisWslwmtKhQkVExEWcyDxO5OFUAKq3aWo2jJPJbNOeXE8vDu3cazqKMZbDQezMoss+1g19DKcpPbo9WUTERexbtoZ4y0GGPYAqtWNNx3Eq9kcepknli/APDaa7w8LDxecOOR9rN+1hT1hNfHOzqX/njabjlBr1qIiIuIgjS1cBkBoZ79Jrt5SFhvVj8QgI4MjxPDbtzzQdx4iJO7J44JqneWHkdPwqBZuOU2r0ky4i4iLy1hat8ZMRV9twEufj4+VBm/ii6fQXbNpvOE35czgsJq/dB0D35u7V26ZCRUTERdi3bALAkZhoOIlzui5rB7+NfohWj9xuOkq5WzdvJX47thJo9+KSemGm45QqjVEREXERRwtsZPr44de4oekoTql+/Rhqpu0g++he8rJP4OPvazpSucl5eTizZoxnWu978fXuajpOqVKPioiICygodHBft0E0GjSOytf2NB3HKcV1bMORgBD883PZ9utM03HKzYnM4yTOnQJAjV7uVaSAChUREZeQfCSb/EILPx8valTRrLSn4uHlyc7GbQFInzTVcJrys37UGIJzj7M/JIz6N15lOk6pU6EiIuIC/po6v2ZYQIW89fZsFV52GQCVFsw1nKT8eH5TNMnbzu7X4uHlfhMBqlAREXEBge+/w8xP7+PO5RNNR3FqUb2LLovV3rmezLTDhtOUvUPbk2m4ZgEAkQ/ebThN2VChIiLiAnw2rKP2kT1EeFXsRff+TWTTRPZUicTLcrD9x8mm45S5be9+ipflYEtsIrHtW5iOUyZ014+IiAsI3bUNALvu+PlX2zp2Z8nmHRw87k1T02HKmH1a0Vico73dZybaf1KhIiLi5BwFhUTu3w1AlVZNzYZxAfkvvcKj/11GjMOfeywLm809x/Ss3ZPODVc9Q49ti3nhIfe87AO69CMi4vQObNhKQP4J8jy8iGyhHpV/065WFXw8PUg+ks2OQ8dNxykz3y5JJt/TG/rcQGhMhOk4ZUaFioiIk0tbsgqA1LAovO0+ZsO4gAC7F63jKpGYtoN1E9xzPpWsrBx+XZkCwE2tYwynKVsqVEREnFzOqrUAHImtZTiJ67h/wzSmjH6Imu8ONx2lTKx/5V0mv38HD+ycU7zGkbtSoSIi4uT2FnixPrwm2fUbmY7iMqJ6XwlAvc0rOH74mNkwZaDymC+JST/AxWHebjsG5y8qVEREnNy3Tbpyxe3vcWTQE6ajuIyYpGakVo7Ap7CArWN/NR2nVG2dPIc6KZvJ8/Si3hMDTMcpc8YLlb1793LLLbdQpUoV/Pz8aNSoEcuWLTMdS0TEKViWxbb/zUpbO0xT558tm4cHKa0vBiD3V/cqVI6OeA+ANW07Uyk20nCasme0UDl69Cjt27fH29ubKVOmsGHDBt566y0qVapkMpaIiNM4mJ5N5vETeNiKps+Xs+fbq+jyT+ziOVgOh+E0pePo7lQaz5kEgP9A9+9NAcPzqLz++utER0czevTo4m3x8fEGE4mIOJe0STPYOOIGltVtie/wK0zHcSl1b+xF7oPeVD+Wxo7Zi6l5WZLpSBds08sjSCrIY1tUXRKv7246Trkw2qMyceJEWrZsyfXXX094eDjNmjXj008/PW373NxcMjIySjxERNzZ8VVrsRfmE2DX/Jznyi80iI2NilZT3vf1OMNpLlx+bh61xn0FwNG77sfmYXz0RrkwepY7duxg5MiR1KlTh2nTpnH//ffz0EMP8dVXX52y/fDhwwkJCSl+REdHl3NiEZFytnEDADm16xoO4poOD3yUvn1e5tWGPU1HuWBTNh3inl5D+KllDxo/fo/pOOXGaKHicDho3rw5r776Ks2aNeOee+7h7rvv5uOPPz5l+yFDhpCenl78SElJKefEIiLlK2D7VgA8G9Q3nMQ1Ne/Tg0U1m7H+YA67XHyW2i/m7WRVZD2Sh7+NPcDfdJxyY7RQiYiIoH79kv/4EhMTSU5OPmV7u91OcHBwiYeIiDurvncnAKEtmhhO4poqBfiQVLMKANPW7zec5vyt2H2EVSnH8PH0oG+bWNNxypXRi57t27dn8+bNJbZt2bKF2NiK9ZcgInIq6XvTqJp1BICIts0Mp3FdV4fDpaM+JWF6Bqz43XSc81LQ5yZeyvNi570PExZkNx2nXBktVB555BHatWvHq6++yg033MCSJUv45JNP+OSTT0zGEhFxCvsWryAEOBASRrUw954mvSxdkhBO5WUT8cAibeN2whNdaymCXXOW0HrxdFpiI6Xhi6bjlDujl35atWrFhAkT+O6772jYsCEvvfQS77zzDn379jUZS0TEKezOLGRy3Xasb9LedBSXVrVuPFtqFq06vfPTbwynOXcHnysqTla1upTY9i0Mpyl/xu93u/LKK7nyyitNxxARcTpLq8Tz2TVPc3v7OC4zHcbFHet2JXy0lsDfJsKIoabjnLXUlRtoNm8KAEHDnjOcxoyKcRO2iIgL2vrX1Pnhmjr/QsXcfSsAiVtWkrZxu+E0Zy/l6RfwshysadCGOj0uMR3HCBUqIiJO6tjWnWBZ1AkPMh3F5UU2TWRjrcZ4YLHj/c9MxzkrBzZspemMCQB4DhliOI05KlRERJzQ8SPp/PLajax/+3rq2AtNx3ELGb37ABA28UfDSc7O9ieGYS/MZ2OtxtS/yfUnrDtfKlRERJxQ6qJVAOT62KkUGWY2jJtIePAOUoPDmFM9kc3Jh03HOaPdh4/zUJ2efNz6WqxXXq0w0+WfSsU9cxERJ5a+YjUA+yJrGk7iPkKiqjP0vd94sdM9TFh/0HScM3pn5lYO+Qax4N7B1O9TsRejVKEiIuKE8tetByCrZm3DSdzLdS2iAPhxxR7yCx2G05za1p0H+HnlHgCe6FLPcBrzVKiIiDgh361bALASEg0ncS+XJVQjzN+LumsXs+z7qabjnFJW7z58+93T3BGSRaOoENNxjDM+j4qIiJysakrRLbQBTRsbTuJefLw8eHP7FDp+/y6rNyTBzT1MRyph3dcTaLZiDgU2DyLb67IfXECPSkFBATNnzmTUqFFkZmYCkJqaSlZWVqmFExGpiHKPZxNxaC8A1do0NRvGDdV64HYAGq1dxP61Wwyn+X8FuXkEDH4cgOXd+xB7cSvDiZzDeRUqu3fvplGjRvTq1YsBAwZw8GDRoKTXX3+dxx9/vFQDiohUNMmpR/m09bVMrX8RYfXiTcdxO1FtmrC+Xgs8sNj56gjTcYotf+4N4vftIN03kHoj3zIdx2mcV6Hy8MMP07JlS44ePYqfn1/x9muuuYZZs2aVWjgRkYpoS44Hr1/Sn48fGF6hb0stS3n33Q9A4i/fknMs03CaopWy6374HwA23vcYoTERhhM5j/P6F/Dnn3/y7LPP4uPjU2J7XFwce/fuLZVgIiIV1da0oi9OTZ1fdhoP6Edq5QhCczJZ8+p7puOw6a6BVMrOYFe1OFoMr7iz0J7KeRUqDoeDwsKTZ0rcs2cPQUGa6llE5EJkrVhNWNZR6oQFmI7itjy9vUi+9W4AIr4chaPA3Oy/SzelErByOQBZ/xmBt6/dWBZndF6FSpcuXXjnnXeKn9tsNrKyshg6dCg9ejjXCGoREVdz87tDWPrhrbTZvMR0FLfW8NlBZNgDyLJ5MWf+eiMZTuQXMnjSFq6+9S2+GPIBDW+9xkgOZ3Zetye/9dZbdO3alfr163PixAluvvlmtm7dStWqVfnuu+9KO6OISIVRkJdPjQPJAIS1bGI4jXsLrFqJ0e99z4vbHSSsSqfjRRYeHrZyzfDB79vYceg4YaEBXPfIPeV6bFdxXj0qUVFRrF69mmeeeYZHHnmEZs2a8dprr7Fy5UrCw8NLO6OISIWxb9VG7IX55HjZqd5Ys5KWtWtu6Uygrw8b92Uwbf3+cj321t/+wP7SC/gU5PNSrwaE+HuX6/FdxXlP+Obl5UXfvn3p27dvaeYREanQDi9ZRTSQWi2GWt6ak7Oshfr7cHuHeD6dspYtL75Jl29fx7McPvfMtMP439aXgUf2kRjiSaeGV5f5MV3VefWofPXVV/z222/Fz5988klCQ0Np164du3fvLrVwIiIVTc7atQAcja1lOEnFcWe7WCb/dxAPjx/BsufeKPPjWQ4Hm6+5hRpH9rEvtBqtPtGcKWdyXoXKq6++Wjx/ysKFC/nggw944403qFq1Ko888kipBhQRqUi8Nm0CIL9uguEkFUdIgJ0Dt9wBQN33Xyd9T9leAlo67G1aLphKgc2D9M+/IqSGhkycyXkVKikpKdSuXbSi588//0zv3r255557GD58OH/++WepBhQRqUhCd20DwN6ogeEkFUvL159hZ/V4KmVnsOnuh8vsOFt+nUXj4U8DsPTOR0i4tmuZHctdnFehEhgYyOHDhwGYPn06nTt3BsDX15ecnJzSSyciUoFYlsVnzXryWcteVL64rek4FYqX3YfsN98GoM3Ucaz98sdSP8aBDVupfPMN+BbksapJB9qMfL3Uj+GOzqtQ6dy5M3fddRd33XUXW7ZsKZ47Zf369cTGxpZqQBGRimJf+gm+T+jIa53voUaz+qbjVDgN+vZicdfrAaj28H2legnoWHYer46aiT0vh53V46k9cyIeXp6ltn93dl6FyocffkhSUhIHDx7kxx9/pEqVKgAsX76cm2++uVQDiohUFFvTilafj6sagLen1vgxodF3n5ISFk14xiGW9xtIocO64H1mnsin3xdL+MUvhgfv/A/2Kb8RWLVSKaStGM7rHqzQ0FDefPNN1qxZQ1paGhMnTgSgRYsWpRpORKQiObxoOS32bCAmrpXpKBWWf6UQ9n75X+Y9+CiPNbiGXpM2MOyq8x8vdGRnCi9/NJXVnpFU8vfmmUduI7Kalpo5F+dVqEydOpXbbruNw4cPY1klq02bzXbKdYBEROTManzzGT/O+JGFjvvhvktMx6mw6vS4hC0TJnH0u5V8uWAXIb5eDOpU55xXst49fzkeV1/N0Myj7LlrBM8P7ENdFSnn7Lz6FgcOHMj1119PamoqDoejxENFiojI+QnesRUA70Yan2LaFU0iebpH0S3iOcNfZ0mPG8nLPnFW77UcDpa9/B5hl3Yg+tAecvwCeLNvSxrWCCnLyG7rvHpUDhw4wKOPPkq1atVKO4+ISIVkORxEpO4EILSF1vhxBvdcXIvw/cn0fOMrPC0HO+qsoGDUJ9S98rLTvmf79D/JGfQoLTcuA2B9vRZUmzSe6rXjyim1+zmvQqV3797Mnj2bWrU0c6KISGk4snsvVXIycWCjRptmpuPI/1x9w6WsPPA5cU8Nombqduh5OevrNCPr6msJadcaW7NmZFierE45RoOH7yRp5WwAcj29WXHrA7T+5M1ymZLfndmsfw4yOQvZ2dlcf/31hIWF0ahRI7y9Sy6k9NBDD5VawDPJyMggJCSE9PR0goODy+WYIiJlYf2YX2hwy9XsrRxBjcOppuPIPxzZuYcdt91H0/lT8LIcxdsvv2sk26tEA/DY3K+5b/F4VrfpROSHI4jULeandS7f3+dV5n333XdMnz4dX19fZs+ejc32/8ti22y2citURETcRdbqojV+DkXXpIbhLHKyyvFRVP5zEgc2bGXHfz4kYNliqu/eSiU/b2qE+pEYEUxw0mMcSxxOy7rxpuO6lfMqVJ555hleeOEFnnrqKTzOcRS0iIicwvoNAOTUqms4iJxJtfp1qDb6neLn481FqTDOq1DJy8ujT58+KlJERErJLy26Mik/hEuu0NovIn93XpVGv379+P7770s7i4hIhTXTXoOvm19JpU4dTUcRcSrn1aNSWFjIG2+8wbRp02jcuPFJg2lHjBhxVvsZNmwYL7zwQolt9erVY9P/ljkXEakI0rPzScvMBaBOeKDhNCLO5bwKlbVr19KsWdHtc+vWrSvx2t8H1p6NBg0aMHPmzP8P5KXbuESkYklesY7r1s7iQK1Egny9//0NIhXIeVUFf/zxR+kF8PKievXqpbY/ERFXkz1lOm9Nfps1DdoCd5uOI+JUjI+G3bp1K5GRkdSsWZO+ffuSnJx82ra5ublkZGSUeIiIuDpr3XoAsmvrjh+RfzJaqLRp04Yvv/ySqVOnMnLkSHbu3MlFF11EZmbmKdsPHz6ckJCQ4kd0dHQ5JxYRKX3+27cA4NFAE4SJ/NN5zUxbVo4dO0ZsbCwjRozgzjvvPOn13NxccnNzi59nZGQQHR2tmWlFxKUdCA2nWvpBNv04hYRru5mOI1Lmynxm2rISGhpK3bp12bZt2ylft9vt2O32ck4lIlJ2MtIOUy39IAARbVsYTiPifIyPUfm7rKwstm/fTkREhOkoIiLlInXhCgDSgqoQEhlmOI2I8zFaqDz++OPMmTOHXbt2sWDBAq655ho8PT256aabTMYSESk3mctWA3AgqqbhJCLOyeilnz179nDTTTdx+PBhwsLC6NChA4sWLSIsTL9ViEjF8Gf9drx//Qtc1jiaRqbDiDgho4XK2LFjTR5eRMS4NSe8mFuzBV07NzQdRcQpOdUYFRGRimbrgSwA6oQHGU4i4pyc6q4fEZGKJOvwMfpM/IStVWOoE9bJdBwRp6RCRUTEkNSFK3ho4fccCqxEpcA3TMcRcUq69CMiYkj68v/d8VNDd/yInI4KFRERQwrWFq3xk1lLa/yInI4KFRERQ/y2bQbApjV+RE5LhYqIiCHhKdsBCGzW2HASEeelQkVExIDso+lUP7IfgIi2zQ2nEXFeKlRERAxIXbwKDyyO+odQOT7KdBwRp6Xbk0VEDFhTJY477/mEi4MLecl0GBEnpkJFRMSArYdz2F0pEqttjOkoIk5Nl35ERAzQ1PkiZ0c9KiIiBnT7bDgJNn8Sr33WdBQRp6ZCRUSknJ3IyOKa+T/jaTk4WOVl03FEnJou/YiIlLO9i1biaTk45hdE1fho03FEnJoKFRGRcnZ06SoA9kXGY/PQf8MiZ6J/ISIi5axg9RoAMmrXM5xExPmpUBERKWd+WzYW/aFhI7NBRFyAChURkXJWbfdWAIJaNjUbRMQFqFARESlHmYePUTnjCAA1LmpjOI2I89PtySIi5WhLloMbH/2BFvlHGFsj3HQcEaenQkVEpBxt3p9Fvqc3PokNTUcRcQm69CMiUo42788AIKG6ps4XORvqURERKUftRzxPoyMZBLV4Gkg0HUfE6alQEREpJ5bDQatls6iUncG2oOdMxxFxCbr0IyJSTg5v202l7AwKbR5EtWthOo6IS1ChIiJSTlLnLwNgb9Ua+AYHGk4j4hpUqIiIlJPs5asAOBRXx2wQEReiQkVEpJx4rl8HQG5iA8NJRFyHChURkXISumMLAPamTQwnEXEdKlRERMpBYaGDgtw8HNgIS2puOo6Iy9DtySIi5SD5aA7d+79HqCOP5S0bm44j4jLUoyIiUg42788EICq6Kp5enobTiLgOpylUXnvtNWw2G4MGDTIdRUSk1P1VqNSrFmw4iYhrcYpLP0uXLmXUqFE0bqzuUBFxTy1feZJx27ZwMHwwoMG0ImfLeI9KVlYWffv25dNPP6VSpUpnbJubm0tGRkaJh4iIK4jasILWezYQHWI3HUXEpRgvVAYMGMAVV1xBp06d/rXt8OHDCQkJKX5ER0eXQ0IRkQtzIiOLqIN7AIjo0MpwGhHXYrRQGTt2LCtWrGD48OFn1X7IkCGkp6cXP1JSUso4oYjIhUueuwRPy8GRgBCq1okzHUfEpRgbo5KSksLDDz/MjBkz8PX1Pav32O127HZ1m4qIazm2YCkAe2PrUdnDeEe2iEsxVqgsX76ctLQ0mjf//4mPCgsLmTt3Lh988AG5ubl4euoWPhFxfY5VqwA4ntjQbBARF2SsULn88stZu3ZtiW233347CQkJDB48WEWKiLiNkC0bAPBq1tRsEBEXZKxQCQoKomHDkr9dBAQEUKVKlZO2i4i4KofDYpc9lEqBlanaoY3pOCIuxynmURERcVfJR7K5v+eT+Hh5sKF9C9NxRFyOUxUqs2fPNh1BRKRUbdhXNN9TQvUgvDR1vsg50/BzEZEytHnXQQDqR2jqfJHzoUJFRKQMXfrcAJZ8cCtdti82HUXEJalQEREpQxG7NhN+/CgRNaNMRxFxSSpURETKyNHdqVRLL7r0E9VRd/yInA8VKiIiZWTvnEUA7KkSSVBYZcNpRFyTChURkTKStXgZAGk1EwwnEXFdKlRERMqI59o1AOQ2aGw4iYjrUqEiIlJGqmzbCIBf6+b/0lJETsepJnwTEXEXJ/IL+T26CWle/sRd3NZ0HBGXpUJFRKQMbEvL4uVL7yTU35uV9WubjiPisnTpR0SkDGxILZo6v35EMDabzXAaEdelQkVEpAykrlhHQG42iZo6X+SCqFARESkD3V5/krXv9KHL1kWmo4i4NBUqIiKlrCA3j9iUrXhgEdG2qek4Ii5NhYqISClLnr8cv4Jcsnz8iWrVxHQcEZemQkVEpJQdmr0AgN1xCXh4eRpOI+LaVKiIiJQya+lSADIaqjdF5EKpUBERKWWhm9YC4N26leEkIq5PhYqISCnKP5FLXMpWAKpf2t5wGhHXp5lpRURK0da9R/nusjtpfHg3vVs2NB1HxOWpUBERKUVrDufxdfMraVerCtd7qNNa5ELpX5GISClauzcdgEZRIYaTiLgH9aiIiJQi/8m/klgYRONqjUxHEXELNsuyLNMhzldGRgYhISGkp6cTHKz1NETErLzsExAchE9hAXuXraNGiwamI4k4pXP5/talHxGRUpI8dzE+hQWk+wYS2SzRdBwRt6BCRUSklBz+/U8AkmvWx6aBtCKlQv+SRERKicfixQBkNddEbyKlRYWKiEgpqb5xNQD+F2uiN5HSokJFRKQUHEveR/TBFABiu15iNoyIG1GhIiJSCnZPmw1ASlg0oTERZsOIuBHNoyIiUgrmhtfjzRte5LLoAG43HUbEjahHRUSkFCw5lM+f8c3x6n2d6SgibsVooTJy5EgaN25McHAwwcHBJCUlMWXKFJORRETOmcNhsSrlGADNokONZhFxN0YLlaioKF577TWWL1/OsmXLuOyyy+jVqxfr1683GUtE5JwkL1/HA1M/o8vu5SRUDzIdR8StGB2j0rNnzxLPX3nlFUaOHMmiRYto0EBTT4uIa0j7dTr3Lx7PhiPb8PJ83nQcEbfiNINpCwsL+eGHHzh+/DhJSUmnbJObm0tubm7x84yMjPKKJyJyWtaiRQCkN2lhOImI+zE+mHbt2rUEBgZit9u57777mDBhAvXr1z9l2+HDhxMSElL8iI6OLue0IiInC1u/EgB7h3aGk4i4H+OrJ+fl5ZGcnEx6ejrjx4/ns88+Y86cOacsVk7VoxIdHa3Vk0XEmIwDhwiIqIan5eDgpu2E1atpOpKI0zuX1ZONX/rx8fGhdu3aALRo0YKlS5fy7rvvMmrUqJPa2u127HZ7eUcUETmtnRNn0MRysLdyBDVUpIiUOuOXfv7J4XCU6DUREXFm2bNmA5DaWAsRipQFoz0qQ4YMoXv37sTExJCZmcm3337L7NmzmTZtmslYIiJnzXvD/6ZT6HCR2SAibspooZKWlsZtt93Gvn37CAkJoXHjxkybNo3OnTubjCUiclZO5Bdy85VPU6PtHr7s18N0HBG3ZLRQ+fzzz00eXkTkgqxOOUaewyIrtiYxtWqYjiPilpxujIqIiKtYuusIAK3jKmOz2QynEXFPxu/6ERFxVU2ffZgPj2RQWP8Z01FE3JYKFRGR81CQm0ez5bMJyMthe4TmcRIpK7r0IyJyHnbNXEBAXg4Z9gDiLmljOo6I21KhIiJyHg5NnQnAzoSmeHqrc1qkrKhQERE5D/YF8wHIbqP1fUTKkgoVEZFzVJCbR631SwGo0rOb4TQi7k39lSJu6sjOPaRMn0taTgHL67XmYGYuBQ4HvUe/jrePF0RF4dekIVFdO1IlXiuRn4ttU2aTkHucdN9AanW92HQcEbemQkXETZzIPM6m//5E3k8TiFy9hKjDe6kMLImqz8d93yhu98z86YQfP1rivTsia3Hgsu5ED7ybqNaNyzm569mwPY0TEXUpiImlpcaniJQp/QsTcWGWZbFs1xEcd9xJo/nTaJp/osTru8NjyKmTQP92cVQL9sXHy4PNeYPYvncPPsm7qbJzC3EHdlEzdTs1v/mAjdMmcftrY7n/0jq0jq9s6Kyc39jAWiy5bQQvX1WflqbDiLg5FSoiLigrM5txqw/w7ZJktqVl8XFqGv75J9gfEsbuDp3x7XUlcT0uJ7ZGOLFAx7+/ucPzJfZ1ZOcetn/zI/ZxY/kivgN/bDnEH1sO0aV2ZZ5t6EtM22bleWpO73huASuTi3qkOtQNN5xGxP1pMK2ICzmycw8L+z5AXvVIvvjmd7alZeHn7cmmux9h04RpVDuynzaTxtDk7psIqXF2X6KV46No9dzDNF67kEFfDOOm1jF4edioMXY01Tu0ZtFdj1GQm1fGZ+Y6Vi7fjD37OFGV/Iit4m86jojbs1mWZZkOcb4yMjIICQkhPT2d4GDNDCnu6/DOFLYOeoYmk8fhV5ALwH873YrtpZe4umkkQb7epXq87QezOHDV9bRbNBWAzfENCJ00gWr165TqcVzRoqv70XLiN8y86UG6jXnXdBwRl3Qu39/qURFxYhkHDrGw7wP41atL24lf41eQy9aYBFa+/Rl9J3/BrW1jS71IAagVFkjS/N9Y+uI7ZPgGUm/nerxat2bD2F9L/ViuptqSeXhZDsKaJpqOIlIhqEdFxAmdyC/k67lbueK6jkSmpwGwJSaR3KHDaNi/NzaP8vsdY+/y9Zy46mpqpW6jwObB8sGv0Gb4U+V2fGdyaNsuqtaJB+Dorr1Uio00nEjENalHRcRF5efmMWbxbjr+5w9embGd8fUvZXe1WFa+/Rl1dq6j0R03lGuRAlCjRQMi169gWfvueFkOWr7+DN/+dzou/DvOeds1diIA26LqqEgRKSe660fECTgKClnxn4+JeOtVfu3yIAdiGlMj1I+oN18mqlUcsYbn6vALDaLF3EksvPVBfj7ixfcb8tk1ZRNDuidgs9mMZitPtsmTATjY7hJqG84iUlGoUBExyHI4WPP59wQOe56WqdsAeGDFL3QbcCM3tYnB7uVpOOH/s3l4kDTmI9b/uQN+28gnc3fgeTyLJ69rUe69PCYU5OZRZ2XR+j6V+lxrOI1IxeH+/7uIOKlN46ewsV5zmtxzM7VSt5Fp92dh/0G0mD+V/u3jnapI+bu7LqrJa9c2IjzzMNfc35vF/R4yHalcbJkwjeATWRz1D6ZOz06m44hUGOpRESlnm/ZnkHrLXVw26wcATnj5sKrXLSSMeJmkmAjD6c7Oja1jiPp5P3UPJ8M3H7IoKIi2Hw03HatMTacyY7o8QKtqflytafNFyo16VETKyY6DWTzy/Sq6v/snE/1iKLB5sLjzdaSvWU/b8Z8T6iJFyl86vPokC+96DIC2I19j2fAPDScqW7+lFjCmWQ88H3vUdBSRCkWFikgZ2zVnCcvad2f0LYOZsHIvlgUFffqQunAFbaaPp1qi6w7LTPr0TRZd0x+Axs8NYsP3v5kNVEZSjmSzNS0LTw8bF9cNMx1HpEJR/6VIGdk+Yz7pzw6l6ZLficMiIiiMA31uYWCX+jSKCjEdr9S0HvcZK5J203zZH0TefhMpsXOIdrP1gTZ/MJrblq/lYJcrCfEr/Qn2ROT01KMiUoosh4N1X09gddMO1OrSgeZLZuGBxYpWl5Ez/kc+uSPJrYoUAA8vTxJn/MKW2ERCczI50rc/GSfyTccqVdFfjuTFmaPov3+56SgiFY4KFZFSkFtQyA/LUhjfqS8Nb7uWJqvn48DG8qSu7PxjEc2XzKJ2l4tMxywzfqFBVJ41lT8adODero/yyNhVOBzuMSFc2sbt1Nu5HoCad99iOI1IxaNLPyIXYO/ydUxcd4DPUywOZeXSNKoVV3hPYG3na4h8/ilatGliOmK5qVorhipTf+XIxwuZtSmNd2dt5ZHOdU3HumA7P/2GcGBTfEMSEmqZjiNS4ahHReQc5WWfYPmbn7C2fmtqtGxE0DtvcSgrl+rBvnS9oxd5yXto89t3RFegIuUvjaNCeeXqhgBs/uhLVn74teFEFy7wt6Jp89O79zScRKRiUo+KyFlw5BewcdxvHP/ya+rNm0aLE1lF27FRxyuPj29pzuWJ1fD2VO1/fcto8n6eSN+fh5M12Z/k5g2ISWpuOtZ5ObRtFwlbVwEQfZcu+4iYoEJF5DQKCh0s332UGRsO0PPBG2iye33xa2lBVdhx5fXEPDGQNs3qG0zpnG549i42jPuM+ltXceia6zi+fiUBVUJNxzpn2977nLaWo+iyj/6eRYxQoSLyNxkHDrH1v+Mp+G0yAy+6h7T8ogX3KkXUJ37/LjZ36IJfv1tJvLEn4Zqd9LS8fe2ET57AweYtiDuwi+U9b6T5vMkutybQ3g3byffwJP3a601HEamwbJYLr9WekZFBSEgI6enpBAcHm44jLuhE5nG2/zKDjGkzCVk0j9o71uPjKACgf+9hrGqUxGX1wrki1p8OjaKwB/gbTuxaNo2fQq0+PfF2FLLo4edp+84LpiOdtW1pWXQaMYcqJzKZPrgTVSKqmo4k4jbO5ftbvxJKhXIkK5fVe9NZlXwM68fxDPhsGA0KS875kRwWTepFnXj0vm7Uv6QVXhp3ct4Sendn0YNP0/a9l2jx/its6tCWhN7dTcc6K7+s2gtAk6a1VKSIGKRCRdyS5XBweNtu9i1YwfGly/FesZyILWv5qMXVfNP8CgDq5ofwaGE+hwIrs6txaxwdL6HGtT2IadmIGMP53Umbt4exfMliWiyazuxR46jS9TLCguymY51RYX4BS6ctAu+q9GoaaTqOSIVmtFAZPnw4P/30E5s2bcLPz4927drx+uuvU69ePZOxxIUU5Oaxf/9Rdud7sv1gFmlrN9PjP4OJ3LuDqjmZ/PP34Kb7trAg7AaaRoXSPKYByXclEd2mKVVdbOyEK7F5eJAw6Xuee+Ijvg5vwuzvVvDNnW2cuqdq/VfjGTuiP7MS2tP+pTmm44hUaEYLlTlz5jBgwABatWpFQUEBTz/9NF26dGHDhg0EBASYjCZOIiu3gAOHMsj5Yy4ndiVTsGcvtl078duTTOX9KVQ7eoA5jTvzTNcHAQjIzebxbasBKLR5kFq1Bgdja5PbtDlBF7Wjc+eL6B3x90Xl4sr/pCqggCqh9HvtIX76YB6LdhzhP1M3MuSKBqZjnVbhx6MACKgTj6+3p+E0IhWb0UJl6tSpJZ5/+eWXhIeHs3z5ci6++GJDqaSsWJZFVm4Bx7LzOZp+HH7/nby0QxQePITj8GE8Dh/G89hR/A6lsSK6Pq+360tWbgF+eSfY+Hbv0+43OuMgtcICiKsSQN3qQSyJ/JgqTepTI6k50UEBRJfjOcrp1Q4P5D/XN2HoqJlcdv9TrHx0EM0G3Wk61kkObt5BoxVzAaj+2EDDaUTEqcaopKenA1C5cuVTvp6bm0tubm7x84yMjHLJ5e4sh4OCvHxys7LJP55DLjZOBASTW+AgLycX7+VLKcjOoTDnBI6cHApzcnDk5GKdyOFItWi2NW1HVl4BeRmZXPHBi3hlZ+GVcxyf7OPYT2TjeyIbv9wcptVN4onuDwPgU5DPlrduPG2mg3mQ1aLo7huvoEA2RdWjIDCQE1XCyY+OxbNObQIS61C1SSId6tZkltfffuvtllCmn5ecvx6NIgg8sog2KevIGvwQKW2bO91Ky9tee58ky8HGWo1J7NjadByRCs9pChWHw8GgQYNo3749DRs2PGWb4cOH88ILZX9748Z9GSycNI/E3yeCZYHDAixsDgdYFpbDYmP7zuyp1xQLi8opO2n927fA/7f96302y2JNuy5sbdQWh2VReX8ynX78tOh163/7hOI/L2/bmdUtL8PColJaKr3HjACL4n3aHA5sWNgKHSxqeTm/J/Wg0GERemgfT3z6HB6OAjwLC/FwFOJRWIino+jPvzbvyqhLb6XAYVH52CEmfXAHXo5CPB0OPC0H3sBfi9ePadqt+FJKSE4mq9+76bSf1c/1O/JWz6KRIN6F+Qyd99tp21bJOgqAr7cHlUKC2BhbH4evH7khoeSHVsZRqRK2KlXwioqkckI9fu+QRHiwL4F2L3hh04X8lYoTSRr9NhuWLaD+1lUcvOY6sjesxL+Sc6wonXs8mzrj/wvA8f7O19sjUhE5TaEyYMAA1q1bx7x5807bZsiQITz66KPFzzMyMoiOLv2O/S0HMlkwdRF3/DTqtG0mZfsz5lDRf67tdq1m4OTvTtt2WmEo3+fWAKD53s0MmfPradvO9grjN3siAAlpu3ll+ezTtp0fUINF1doCEHP0KHWTN562rfexoxzKygPAK9+Bf37uadvaHYUE+Hhi9/Yk2C+IPVVqkO/tQ4GPnQJvHwp9fCjwtuPw8cGR2JybWkfj7+NFgN2LhdlD8AgKxDMkGK+gYLxCg7FXCsFeOYSG1cLYFB35/9f8h6w/bQZxX952H8In/cShFi2J37+TZT1vosXcSU4xGdzqNz6mddYR0oKq0PjRe0zHERGcZMK3Bx98kF9++YW5c+cSHx9/1u8rqwnf1u5JZ+5Pv9Nixo9gs4HNhuXhAdiweRQ939y+M/sSmmKzQaX9KTSa9hP87zVsHv/7swfYbKQ0b8fBhkXd2wGHD1BvxsTi/WCzgYdH8Z8PNmjG4QZNsdls+GYcJe733wAbeNiweXiCDbDZsHl7k1UnkawGjfHysOGVm0PYsgXYvLzx8PbGw9sLD28vbF5eeHh7Y1ULx4qOxsvDhqdlYU/dg4eXF54+Xnj4eOPl7Y1PUCA+AX54emnwoJS9Dd//Rt2brsLLcrDo0Rdo+9bzRvNYlsWKhNa02LKMRfc+SduPXzeaR8Sdncv3t9FCxbIsBg4cyIQJE5g9ezZ16tQ5p/drZloR17Zo4LO0/eAV8jy82DH+NxKu6WIsy+zNadzz6QJ6b/2TwR8/RUiJu8NEpDSdy/e30b7WAQMG8M033/Dtt98SFBTE/v372b9/Pzk5OSZjiUg5afPui6xofTnJodUZNmcPh7JOf0myLFmWxdsztpDn5Y3f3XeqSBFxIkZ7VGw22ym3jx49mv79+//r+9WjIuL6sg4d5cZRC1mXaZFUswpf39m63CeD+3PmMm6fthdvXztzn7zU6WfOFXF1LtOjYlnWKR9nU6SIiHsIrFqJd+6+CH8fTxbuOMyn3/xRrsd3FBRSo9+NzPrsPp6qdlxFioiTMT/MXkQqvNrhQbzRuzF3LpnAXXd0ZeV7o8vt2MtefIeaqduplJPJ1dd0KLfjisjZUaEiIk7hysaRdA7Kw9tRSN0nBrD1t7LvWUnfs586b70EwIY7BhJSo1qZH1NEzo0KFRFxGi2+/5R1iS0JyMuh6g3XkLxwRZkeb9OdD1EpO51d1eNoMWJYmR5LRM6PChURcRrevnbi5k5na3Q9KmWn49OjOwc2bC2TY6398kfaTP8BgOMj3sXbV2NTRJyRChURcSqBVStRZc5MUsKiqX4sjfyLLyF1dekuoXBk5x4iBhbNPLu46/U0uOmqUt2/iJQeFSoi4nQqx0fhNXM6qZUjiDqcythnP2D7waxS2XdBoYNnJ25gVbVa7KoWR+Oxn5fKfkWkbKhQERGnFNE4Aa95f/JhrwG816A7fUYtZGXy0Qvap2VZPDNhHZP35fPgjcPImzkLv9CgUkosImVBhYqIOK3wxFrc+M1bNIgM5lBWHve8M4OFr3xwXvtyFBTyy+NvMG7pbjxs8P7NLajbsGYpJxaR0qZCRUScWpVAO2PvaUvXelV4a8JrJD07kBVtOnNk556z3kfOsUxWXtSDq0c8xZA/RvNir4Z0rq9bkUVcgQoVEXF6Qb7ejLy1Fd6XdCTfw5PmS2biWT+Rhfc+SfbR9NO+z3I4WPvFOI7UqkeLRdPJ8/Ci2VWXcEvb2HJMLyIXwuhaPxdKa/2IVDzbps7B4847qZm6HYDjPn5saNeZzLvuJfyS9ti9PDi+eh0nfvmVsF/GU2tv0e3NB0LCOPjBJzS85WqD6UUEzu3726ucMomIlIra3TpSuGsTS1/9gIj3/0PU4VRazZ7IQ0H1mLi26PeuO5f+zHO/fwZArqc3K7vfQIPP36VheBWT0UXkPKhQERGX4+ntRauhg7Cee4gNP0whY8xYCtq0oaplx2FZJNdryspjHcltfxEJjz9A25gI05FF5Dzp0o+IiIiUq3P5/tZgWhEREXFaKlRERETEaalQEREREaelQkVERESclgoVERERcVoqVERERMRpqVARERERp6VCRURERJyWChURERFxWipURERExGmpUBERERGnpUJFREREnJYKFREREXFaKlRERETEaXmZDnAhLMsCipaLFhEREdfw1/f2X9/jZ+LShUpmZiYA0dHRhpOIiIjIucrMzCQkJOSMbWzW2ZQzTsrhcJCamkpQUBA2m61U952RkUF0dDQpKSkEBweX6r6dgc7P9bn7Obr7+YH7n6POz/WV1TlalkVmZiaRkZF4eJx5FIpL96h4eHgQFRVVpscIDg522x9A0Pm5A3c/R3c/P3D/c9T5ub6yOMd/60n5iwbTioiIiNNSoSIiIiJOS4XKadjtdoYOHYrdbjcdpUzo/Fyfu5+ju58fuP856vxcnzOco0sPphURERH3ph4VERERcVoqVERERMRpqVARERERp6VCRURERJyWCpWzcNVVVxETE4Ovry8RERHceuutpKammo5VKnbt2sWdd95JfHw8fn5+1KpVi6FDh5KXl2c6Wql65ZVXaNeuHf7+/oSGhpqOc8E+/PBD4uLi8PX1pU2bNixZssR0pFIzd+5cevbsSWRkJDabjZ9//tl0pFI1fPhwWrVqRVBQEOHh4Vx99dVs3rzZdKxSNXLkSBo3blw8SVhSUhJTpkwxHavMvPbaa9hsNgYNGmQ6SqkYNmwYNputxCMhIcFYHhUqZ+HSSy9l3LhxbN68mR9//JHt27fTu3dv07FKxaZNm3A4HIwaNYr169fz9ttv8/HHH/P000+bjlaq8vLyuP7667n//vtNR7lg33//PY8++ihDhw5lxYoVNGnShK5du5KWlmY6Wqk4fvw4TZo04cMPPzQdpUzMmTOHAQMGsGjRImbMmEF+fj5dunTh+PHjpqOVmqioKF577TWWL1/OsmXLuOyyy+jVqxfr1683Ha3ULV26lFGjRtG4cWPTUUpVgwYN2LdvX/Fj3rx55sJYcs5++eUXy2azWXl5eaajlIk33njDio+PNx2jTIwePdoKCQkxHeOCtG7d2howYEDx88LCQisyMtIaPny4wVRlA7AmTJhgOkaZSktLswBrzpw5pqOUqUqVKlmfffaZ6RilKjMz06pTp441Y8YMq2PHjtbDDz9sOlKpGDp0qNWkSRPTMYqpR+UcHTlyhDFjxtCuXTu8vb1NxykT6enpVK5c2XQMOYW8vDyWL19Op06dird5eHjQqVMnFi5caDCZnK/09HQAt/03V1hYyNixYzl+/DhJSUmm45SqAQMGcMUVV5T49+gutm7dSmRkJDVr1qRv374kJycby6JC5SwNHjyYgIAAqlSpQnJyMr/88ovpSGVi27ZtvP/++9x7772mo8gpHDp0iMLCQqpVq1Zie7Vq1di/f7+hVHK+HA4HgwYNon379jRs2NB0nFK1du1aAgMDsdvt3HfffUyYMIH69eubjlVqxo4dy4oVKxg+fLjpKKWuTZs2fPnll0ydOpWRI0eyc+dOLrroIjIzM43kqbCFylNPPXXSYKF/PjZt2lTc/oknnmDlypVMnz4dT09PbrvtNiwnntT3XM8PYO/evXTr1o3rr7+eu+++21Dys3c+5yjiTAYMGMC6desYO3as6Silrl69eqxatYrFixdz//33069fPzZs2GA6VqlISUnh4YcfZsyYMfj6+pqOU+q6d+/O9ddfT+PGjenatSuTJ0/m2LFjjBs3zkieCjuF/sGDBzl8+PAZ29SsWRMfH5+Ttu/Zs4fo6GgWLFjgtF2Z53p+qampXHLJJbRt25Yvv/wSDw/nr2HP5+/wyy+/ZNCgQRw7dqyM05WNvLw8/P39GT9+PFdffXXx9n79+nHs2DG36+mz2WxMmDChxLm6iwcffJBffvmFuXPnEh8fbzpOmevUqRO1atVi1KhRpqNcsJ9//plrrrkGT0/P4m2FhYXYbDY8PDzIzc0t8Zo7aNWqFZ06dTLSg+RV7kd0EmFhYYSFhZ3Xex0OBwC5ubmlGalUncv57d27l0svvZQWLVowevRolyhS4ML+Dl2Vj48PLVq0YNasWcVf3g6Hg1mzZvHggw+aDSdnxbIsBg4cyIQJE5g9e3aFKFKg6OfUmf/PPBeXX345a9euLbHt9ttvJyEhgcGDB7tdkZKVlcX27du59dZbjRy/whYqZ2vx4sUsXbqUDh06UKlSJbZv385zzz1HrVq1nLY35Vzs3buXSy65hNjYWN58800OHjxY/Fr16tUNJitdycnJHDlyhOTkZAoLC1m1ahUAtWvXJjAw0Gy4c/Too4/Sr18/WrZsSevWrXnnnXc4fvw4t99+u+lopSIrK4tt27YVP9+5cyerVq2icuXKxMTEGExWOgYMGMC3337LL7/8QlBQUPHYopCQEPz8/AynKx1Dhgyhe/fuxMTEkJmZybfffsvs2bOZNm2a6WilIigo6KQxRX+NYXSHsUaPP/44PXv2JDY2ltTUVIYOHYqnpyc33XSTmUBmbzpyfmvWrLEuvfRSq3Llypbdbrfi4uKs++67z9qzZ4/paKVi9OjRFnDKhzvp16/fKc/xjz/+MB3tvLz//vtWTEyM5ePjY7Vu3dpatGiR6Uil5o8//jjl31W/fv1MRysVp/v3Nnr0aNPRSs0dd9xhxcbGWj4+PlZYWJh1+eWXW9OnTzcdq0y50+3Jffr0sSIiIiwfHx+rRo0aVp8+faxt27YZy1Nhx6iIiIiI83ONwQgiIiJSIalQEREREaelQkVERESclgoVERERcVoqVERERMRpqVARERERp6VCRURERJyWChURERFxWipURNzQJZdcwqBBg0zHOKXNmzdTvXr14iXjv/zyS0JDQ8v8uOd7nGHDhtG0adOzbp+Xl0dcXBzLli0752OJyMlUqIjIv9q3bx8333wzdevWxcPD47RF0A8//EBCQgK+vr40atSIyZMnn9RmyJAhDBw4kKCgoDJObYaPjw+PP/44gwcPNh1FxC2oUBGRf5Wbm0tYWBjPPvssTZo0OWWbBQsWcNNNN3HnnXeycuVKrr76aq6++mrWrVtX3CY5OZlJkybRv3//ckpuRt++fZk3bx7r1683HUXE5alQEXFzR48e5bbbbqNSpUr4+/vTvXt3tm7dWqLNp59+SnR0NP7+/lxzzTWMGDGixGWSuLg43n33XW677TZCQkJOeZx3332Xbt268cQTT5CYmMhLL71E8+bN+eCDD4rbjBs3jiZNmlCjRo3T5t2+fTu9evWiWrVqBAYG0qpVK2bOnFmiTVxcHC+//DK33XYbgYGBxMbGMnHiRA4ePEivXr0IDAykcePGp7z88vPPP1OnTh18fX3p2rUrKSkpJV5/7bXXqFatGkFBQdx5552cOHGixOtLly6lc+fOVK1alZCQEDp27MiKFStKtKlUqRLt27dn7Nixpz1PETk7KlRE3Fz//v1ZtmwZEydOZOHChViWRY8ePcjPzwdg/vz53HfffTz88MOsWrWKzp0788orr5zzcRYuXEinTp1KbOvatSsLFy4sfv7nn3/SsmXLM+4nKyuLHj16MGvWLFauXEm3bt3o2bMnycnJJdq9/fbbtG/fnpUrV3LFFVdw6623ctttt3HLLbewYsUKatWqxW233cbf113Nzs7mlVde4b///S/z58/n2LFj3HjjjcWvjxs3jmHDhvHqq6+ybNkyIiIi+Oijj0ocNzMzk379+jFv3jwWLVpEnTp16NGjR/GYm7+0bt2aP//88+w+PBE5PWPrNotImflryfktW7ZYgDV//vzi1w4dOmT5+flZ48aNsyyraEn3K664osT7+/bta4WEhJxx3//k7e1tffvttyW2ffjhh1Z4eHjx8yZNmlgvvvhiiTajR48+7bH+0qBBA+v9998vfh4bG2vdcsstxc/37dtnAdZzzz1XvG3hwoUWYO3bt6/4OIC1aNGi4jYbN260AGvx4sWWZVlWUlKS9cADD5Q4dps2bawmTZqcNlthYaEVFBRk/frrryW2v/vuu1ZcXNwZz0tE/p16VETc2MaNG/Hy8qJNmzbF26pUqUK9evXYuHEjUHQXTuvWrUu875/PS0tOTg6+vr5nbJOVlcXjjz9OYmIioaGhBAYGsnHjxpN6VBo3blz852rVqgHQqFGjk7alpaUVb/Py8qJVq1bFzxMSEggNDS3+LDZu3FjiswJISkoq8fzAgQPcfffd1KlTh5CQEIKDg8nKyjopn5+fH9nZ2Wc8VxH5d16mA4iIe6hevToHDhwose3AgQNUr169+HnVqlU5evToGffz+OOPM2PGDN58801q166Nn58fvXv3Ji8vr0Q7b2/v4j/bbLbTbnM4HOd3QqfRr18/Dh8+zLvvvktsbCx2u52kpKST8h05coSwsLBSPbZIRaQeFRE3lpiYSEFBAYsXLy7edvjwYTZv3kz9+vUBqFevHkuXLi3xvn8+PxtJSUnMmjWrxLYZM2aU6JFo1qwZGzZsOON+5s+fT//+/bnmmmto1KgR1atXZ9euXeec51QKCgpKDLDdvHkzx44dIzExESj6vP7+WQEsWrTopHwPPfQQPXr0oEGDBtjtdg4dOnTSsdatW0ezZs1KJbdIRaZCRcSN1alTh169enH33Xczb948Vq9ezS233EKNGjXo1asXAAMHDmTy5MmMGDGCrVu3MmrUKKZMmVLcI/GXVatWsWrVKrKysjh48CCrVq0qUXQ8/PDDTJ06lbfeeotNmzYxbNgwli1bxoMPPljc5q/BtYWFhWfM/NNPP7Fq1SpWr17NzTffXGq9It7e3gwcOJDFixezfPly+vfvT9u2bYsvdT388MN88cUXjB49mi1btjB06NCTbjGuU6cOX3/9NRs3bmTx4sX07dsXPz+/k471559/0qVLl1LJLVKRqVARcXOjR4+mRYsWXHnllSQlJWFZFpMnTy6+TNK+fXs+/vhjRowYQZMmTZg6dSqPPPLISWNJmjVrRrNmzVi+fDnffvstzZo1o0ePHsWvt2vXjm+//ZZPPvmEJk2aMH78eH7++WcaNmxY3KZ79+54eXmddLvx340YMYJKlSrRrl07evbsSdeuXWnevHmpfBb+/v4MHjyYm2++mfbt2xMYGMj3339f/HqfPn147rnnePLJJ2nRogW7d+/m/vvvL7GPzz//nKNHj9K8eXNuvfVWHnroIcLDw0u0WbhwIenp6fTu3btUcotUZDbL+tu9eyIiwN13382mTZvK5PbaDz/8kIkTJzJt2rRS37ez6NOnD02aNOHpp582HUXE5WkwrYjw5ptv0rlzZwICApgyZQpfffXVSfOHlJZ7772XY8eOkZmZ6ZbT6Ofl5dGoUSMeeeQR01FE3IJ6VESEG264gdmzZ5OZmUnNmjUZOHAg9913n+lYIiIqVERERMR5aTCtiIiIOC0VKiIiIuK0VKiIiIiI01KhIiIiIk5LhYqIiIg4LRUqIiIi4rRUqIiIiIjTUqEiIiIiTuv/AMifLKjji74SAAAAAElFTkSuQmCC",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"filenames": {
|
||
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week37_146_0.png"
|
||
}
|
||
},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"import numpy as np\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"from sklearn.model_selection import KFold\n",
|
||
"from sklearn.linear_model import Ridge\n",
|
||
"from sklearn.model_selection import cross_val_score\n",
|
||
"from sklearn.preprocessing import PolynomialFeatures\n",
|
||
"\n",
|
||
"# A seed just to ensure that the random numbers are the same for every run.\n",
|
||
"# Useful for eventual debugging.\n",
|
||
"np.random.seed(3155)\n",
|
||
"\n",
|
||
"# Generate the data.\n",
|
||
"nsamples = 100\n",
|
||
"x = np.random.randn(nsamples)\n",
|
||
"y = 3*x**2 + np.random.randn(nsamples)\n",
|
||
"\n",
|
||
"## Cross-validation on Ridge regression using KFold only\n",
|
||
"\n",
|
||
"# Decide degree on polynomial to fit\n",
|
||
"poly = PolynomialFeatures(degree = 6)\n",
|
||
"\n",
|
||
"# Decide which values of lambda to use\n",
|
||
"nlambdas = 500\n",
|
||
"lambdas = np.logspace(-3, 5, nlambdas)\n",
|
||
"\n",
|
||
"# Initialize a KFold instance\n",
|
||
"k = 5\n",
|
||
"kfold = KFold(n_splits = k)\n",
|
||
"\n",
|
||
"# Perform the cross-validation to estimate MSE\n",
|
||
"scores_KFold = np.zeros((nlambdas, k))\n",
|
||
"\n",
|
||
"i = 0\n",
|
||
"for lmb in lambdas:\n",
|
||
" ridge = Ridge(alpha = lmb)\n",
|
||
" j = 0\n",
|
||
" for train_inds, test_inds in kfold.split(x):\n",
|
||
" xtrain = x[train_inds]\n",
|
||
" ytrain = y[train_inds]\n",
|
||
"\n",
|
||
" xtest = x[test_inds]\n",
|
||
" ytest = y[test_inds]\n",
|
||
"\n",
|
||
" Xtrain = poly.fit_transform(xtrain[:, np.newaxis])\n",
|
||
" ridge.fit(Xtrain, ytrain[:, np.newaxis])\n",
|
||
"\n",
|
||
" Xtest = poly.fit_transform(xtest[:, np.newaxis])\n",
|
||
" ypred = ridge.predict(Xtest)\n",
|
||
"\n",
|
||
" scores_KFold[i,j] = np.sum((ypred - ytest[:, np.newaxis])**2)/np.size(ypred)\n",
|
||
"\n",
|
||
" j += 1\n",
|
||
" i += 1\n",
|
||
"\n",
|
||
"\n",
|
||
"estimated_mse_KFold = np.mean(scores_KFold, axis = 1)\n",
|
||
"\n",
|
||
"## Cross-validation using cross_val_score from sklearn along with KFold\n",
|
||
"\n",
|
||
"# kfold is an instance initialized above as:\n",
|
||
"# kfold = KFold(n_splits = k)\n",
|
||
"\n",
|
||
"estimated_mse_sklearn = np.zeros(nlambdas)\n",
|
||
"i = 0\n",
|
||
"for lmb in lambdas:\n",
|
||
" ridge = Ridge(alpha = lmb)\n",
|
||
"\n",
|
||
" X = poly.fit_transform(x[:, np.newaxis])\n",
|
||
" estimated_mse_folds = cross_val_score(ridge, X, y[:, np.newaxis], scoring='neg_mean_squared_error', cv=kfold)\n",
|
||
"\n",
|
||
" # cross_val_score return an array containing the estimated negative mse for every fold.\n",
|
||
" # we have to the the mean of every array in order to get an estimate of the mse of the model\n",
|
||
" estimated_mse_sklearn[i] = np.mean(-estimated_mse_folds)\n",
|
||
"\n",
|
||
" i += 1\n",
|
||
"\n",
|
||
"## Plot and compare the slightly different ways to perform cross-validation\n",
|
||
"\n",
|
||
"plt.figure()\n",
|
||
"\n",
|
||
"plt.plot(np.log10(lambdas), estimated_mse_sklearn, label = 'cross_val_score')\n",
|
||
"plt.plot(np.log10(lambdas), estimated_mse_KFold, 'r--', label = 'KFold')\n",
|
||
"\n",
|
||
"plt.xlabel('log10(lambda)')\n",
|
||
"plt.ylabel('mse')\n",
|
||
"\n",
|
||
"plt.legend()\n",
|
||
"\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5cbfeb1f",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## More examples on bootstrap and cross-validation and errors"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"id": "34028f77",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Degree of polynomial: 1\n",
|
||
"Mean squared error on training data: 446033.51374050\n",
|
||
"Mean squared error on test data: 455173.80460179\n",
|
||
"Degree of polynomial: 2\n",
|
||
"Mean squared error on training data: 114550.54637219\n",
|
||
"Mean squared error on test data: 129963.83146596\n",
|
||
"Degree of polynomial: 3\n",
|
||
"Mean squared error on training data: 9054.61775176\n",
|
||
"Mean squared error on test data: 10572.87627342\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Degree of polynomial: 4\n",
|
||
"Mean squared error on training data: 302.15313054\n",
|
||
"Mean squared error on test data: 433.26292364\n",
|
||
"Degree of polynomial: 5\n",
|
||
"Mean squared error on training data: 3.64316192\n",
|
||
"Mean squared error on test data: 7.23528337\n",
|
||
"Degree of polynomial: 6\n",
|
||
"Mean squared error on training data: 3.56589683\n",
|
||
"Mean squared error on test data: 10.50427787\n",
|
||
"Degree of polynomial: 7\n",
|
||
"Mean squared error on training data: 0.47313680\n",
|
||
"Mean squared error on test data: 1.53738247\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Degree of polynomial: 8\n",
|
||
"Mean squared error on training data: 0.04926746\n",
|
||
"Mean squared error on test data: 0.14629156\n",
|
||
"Degree of polynomial: 9\n",
|
||
"Mean squared error on training data: 0.02546675\n",
|
||
"Mean squared error on test data: 0.11202337\n",
|
||
"Degree of polynomial: 10\n",
|
||
"Mean squared error on training data: 0.02424794\n",
|
||
"Mean squared error on test data: 0.22467274\n",
|
||
"Degree of polynomial: 11\n",
|
||
"Mean squared error on training data: 0.01594452\n",
|
||
"Mean squared error on test data: 1.07641937\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Degree of polynomial: 12\n",
|
||
"Mean squared error on training data: 0.00805074\n",
|
||
"Mean squared error on test data: 0.04295757\n",
|
||
"Degree of polynomial: 13\n",
|
||
"Mean squared error on training data: 0.00781918\n",
|
||
"Mean squared error on test data: 0.56965674\n",
|
||
"Degree of polynomial: 14\n",
|
||
"Mean squared error on training data: 0.00465099\n",
|
||
"Mean squared error on test data: 0.28443039\n",
|
||
"Degree of polynomial: 15\n",
|
||
"Mean squared error on training data: 0.00420072\n",
|
||
"Mean squared error on test data: 568.47051432\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Degree of polynomial: 16\n",
|
||
"Mean squared error on training data: 0.00325450\n",
|
||
"Mean squared error on test data: 48.97630233\n",
|
||
"Degree of polynomial: 17\n",
|
||
"Mean squared error on training data: 0.00242954\n",
|
||
"Mean squared error on test data: 2.52780600\n",
|
||
"Degree of polynomial: 18\n",
|
||
"Mean squared error on training data: 0.00219195\n",
|
||
"Mean squared error on test data: 429.25695398\n",
|
||
"Degree of polynomial: 19\n",
|
||
"Mean squared error on training data: 0.00154853\n",
|
||
"Mean squared error on test data: 239.97065359\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Degree of polynomial: 20\n",
|
||
"Mean squared error on training data: 0.00140846\n",
|
||
"Mean squared error on test data: 1350.24493666\n",
|
||
"Degree of polynomial: 21\n",
|
||
"Mean squared error on training data: 0.00119688\n",
|
||
"Mean squared error on test data: 1840.50530832\n",
|
||
"Degree of polynomial: 22\n",
|
||
"Mean squared error on training data: 0.00092898\n",
|
||
"Mean squared error on test data: 1184.60929685\n",
|
||
"Degree of polynomial: 23\n",
|
||
"Mean squared error on training data: 0.00089193\n",
|
||
"Mean squared error on test data: 3892.17483760\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Degree of polynomial: 24\n",
|
||
"Mean squared error on training data: 0.00083355\n",
|
||
"Mean squared error on test data: 1332.46736215\n",
|
||
"Degree of polynomial: 25\n",
|
||
"Mean squared error on training data: 0.00079904\n",
|
||
"Mean squared error on test data: 7577.76690383\n",
|
||
"Degree of polynomial: 26\n",
|
||
"Mean squared error on training data: 0.00075590\n",
|
||
"Mean squared error on test data: 1079.36895644\n",
|
||
"Degree of polynomial: 27\n",
|
||
"Mean squared error on training data: 0.00068091\n",
|
||
"Mean squared error on test data: 3207.25343155\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Degree of polynomial: 28\n",
|
||
"Mean squared error on training data: 0.00063362\n",
|
||
"Mean squared error on test data: 674.79633065\n",
|
||
"Degree of polynomial: 29\n",
|
||
"Mean squared error on training data: 0.00063866\n",
|
||
"Mean squared error on test data: 3099.60342978\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_94293/626635268.py:73: RuntimeWarning: divide by zero encountered in log10\n",
|
||
" plt.plot(polynomial, np.log10(trainingerror), label='Training Error')\n",
|
||
"/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_94293/626635268.py:74: RuntimeWarning: divide by zero encountered in log10\n",
|
||
" plt.plot(polynomial, np.log10(testerror), label='Test Error')\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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WO7cwYMHG48++qhhGIYxevRo44orrij3/pgxY8p9rpMnTzZ8fX2NtLS00n0//fSTERYWVvpZl2jRooXx9ttvl97nn//8Z7n3P/jgAyM+Pv6cn4NIfaSWGxEP8+233xISEkJAQACXXXYZo0eP5vHHH2fz5s34+PjQq1ev0mOjoqJITk5m8+bNFV5r5MiReHt7M3PmTMAcTTVo0CCaNWtW7rhOnTqVbsfHxwOQlpYGwObNm+nXr1+54/v163fWPU+/RmxsLAAdO3Ysty83N5eMjIwKY01NTWXChAm0atWK8PBwwsLCyMrKYt++fRUef6adO3eSn59f7vNp0KABycnJpa9/++03ioqKaN26dWnNT0hICEuWLCntMtu6dSsXXHBBuWuf+RogMTGR6Ojo0te//vorWVlZREVFlbv27t27S6/966+/8uSTT5Z7f8KECRw+fJicnJwq/Zwi9YEKikU8zKBBg3jzzTfx8/OjUaNG+PjU/H9zPz8/xo4dy9SpU7n66qv5+OOPeeWVV846ztfXt3TbZrMBYLfbq3Wviq5RneuOGzeOY8eO8corr5CYmIi/vz99+vQp7ZJzhKysLLy9vVmzZg3e3t7l3qtucXNwcPBZ146Pjz+rfgcordfJysriiSee4Oqrrz7rmJK6HRFRciPicYKDg2nZsuVZ+9u2bUthYSErVqygb9++ABw7doytW7fSrl27c17vj3/8Ix06dOCNN96gsLCwwj+slWnbti1Lly5l3LhxpfuWLl1a6T1rYunSpbzxxhtcfvnlAOzfv5+jR49W+fwWLVrg6+vLihUraNq0KWAWYG/bto0BAwYA0LVrV4qKikhLS+Oiiy6q8DrJycmsWrWq3L4zX1ekW7dupKSk4OPjc1bL2OnHbN26tcL/viJSRsmNSD3RqlUrRowYwYQJE3j77bcJDQ3lkUceoXHjxowYMeKc57Vt25bevXvz8MMPc+uttxIYGFit+z700EOMGjWKrl27MmTIEL755hu+/PJL5s+fX9sfqZxWrVrxwQcf0KNHDzIyMnjooYeqFWtISAi33XYbDz30EFFRUcTExPDXv/61XOF069atGTNmDGPHjuWFF16ga9euHDlyhAULFtCpUyeuuOIK/vznP9O/f39efPFFrrzyShYuXMicOXNKW57OZciQIfTp04eRI0fy3HPP0bp1aw4dOsR3333HVVddRY8ePXjssccYPnw4TZs25dprr8XLy4tff/2V33//naeffrrGn52Ip1HNjUg9MnXqVLp3787w4cPp06cPhmEwe/bsct0/FbntttvIz88vNwqqqkaOHMkrr7zC888/T/v27Xn77beZOnUqAwcOrOFPUbH33nuPEydO0K1bN26++WbuvvtuYmJiqnWNf/3rX1x00UVceeWVDBkyhAsvvJDu3buXO2bq1KmMHTuWBx54gOTkZEaOHMmqVatKW3v69evHW2+9xYsvvkjnzp2ZO3cu991333m7jWw2G7Nnz6Z///7ccssttG7dmuuvv569e/eW1iANHTqUb7/9lh9++IGePXvSu3dvXnrpJRITE6v1c4p4OpthGIbVQYiIa3vqqaf47LPP2LBhg9WhuKUJEyawZcsWfvrpJ6tDEakX1C0lIueUlZXFnj17eP3119XtUQ3PP/88l1xyCcHBwcyZM4f333+fN954w+qwROoNtdyIyDmNHz+eTz75hJEjR/Lxxx+fNUJIKjZq1CgWL15MZmYmzZs3589//jN33HGH1WGJ1BtKbkRERMSjqKBYREREPIqSGxEREfEoSm5ERETEoyi5EREREY+i5EZEREQ8ipIbERER8ShKbkRERMSjKLkRERERj/L/XtNulkVKKxYAAAAASUVORK5CYII=",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"filenames": {
|
||
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week37_148_9.png"
|
||
}
|
||
},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Common imports\n",
|
||
"import os\n",
|
||
"import numpy as np\n",
|
||
"import pandas as pd\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"from sklearn.linear_model import LinearRegression, Ridge, Lasso\n",
|
||
"from sklearn.model_selection import train_test_split\n",
|
||
"from sklearn.utils import resample\n",
|
||
"from sklearn.metrics import mean_squared_error\n",
|
||
"# Where to save the figures and data files\n",
|
||
"PROJECT_ROOT_DIR = \"Results\"\n",
|
||
"FIGURE_ID = \"Results/FigureFiles\"\n",
|
||
"DATA_ID = \"DataFiles/\"\n",
|
||
"\n",
|
||
"if not os.path.exists(PROJECT_ROOT_DIR):\n",
|
||
" os.mkdir(PROJECT_ROOT_DIR)\n",
|
||
"\n",
|
||
"if not os.path.exists(FIGURE_ID):\n",
|
||
" os.makedirs(FIGURE_ID)\n",
|
||
"\n",
|
||
"if not os.path.exists(DATA_ID):\n",
|
||
" os.makedirs(DATA_ID)\n",
|
||
"\n",
|
||
"def image_path(fig_id):\n",
|
||
" return os.path.join(FIGURE_ID, fig_id)\n",
|
||
"\n",
|
||
"def data_path(dat_id):\n",
|
||
" return os.path.join(DATA_ID, dat_id)\n",
|
||
"\n",
|
||
"def save_fig(fig_id):\n",
|
||
" plt.savefig(image_path(fig_id) + \".png\", format='png')\n",
|
||
"\n",
|
||
"infile = open(data_path(\"EoS.csv\"),'r')\n",
|
||
"\n",
|
||
"# Read the EoS data as csv file and organize the data into two arrays with density and energies\n",
|
||
"EoS = pd.read_csv(infile, names=('Density', 'Energy'))\n",
|
||
"EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce')\n",
|
||
"EoS = EoS.dropna()\n",
|
||
"Energies = EoS['Energy']\n",
|
||
"Density = EoS['Density']\n",
|
||
"# The design matrix now as function of various polytrops\n",
|
||
"\n",
|
||
"Maxpolydegree = 30\n",
|
||
"X = np.zeros((len(Density),Maxpolydegree))\n",
|
||
"X[:,0] = 1.0\n",
|
||
"testerror = np.zeros(Maxpolydegree)\n",
|
||
"trainingerror = np.zeros(Maxpolydegree)\n",
|
||
"polynomial = np.zeros(Maxpolydegree)\n",
|
||
"\n",
|
||
"trials = 100\n",
|
||
"for polydegree in range(1, Maxpolydegree):\n",
|
||
" polynomial[polydegree] = polydegree\n",
|
||
" for degree in range(polydegree):\n",
|
||
" X[:,degree] = Density**(degree/3.0)\n",
|
||
"\n",
|
||
"# loop over trials in order to estimate the expectation value of the MSE\n",
|
||
" testerror[polydegree] = 0.0\n",
|
||
" trainingerror[polydegree] = 0.0\n",
|
||
" for samples in range(trials):\n",
|
||
" x_train, x_test, y_train, y_test = train_test_split(X, Energies, test_size=0.2)\n",
|
||
" model = LinearRegression(fit_intercept=False).fit(x_train, y_train)\n",
|
||
" ypred = model.predict(x_train)\n",
|
||
" ytilde = model.predict(x_test)\n",
|
||
" testerror[polydegree] += mean_squared_error(y_test, ytilde)\n",
|
||
" trainingerror[polydegree] += mean_squared_error(y_train, ypred) \n",
|
||
"\n",
|
||
" testerror[polydegree] /= trials\n",
|
||
" trainingerror[polydegree] /= trials\n",
|
||
" print(\"Degree of polynomial: %3d\"% polynomial[polydegree])\n",
|
||
" print(\"Mean squared error on training data: %.8f\" % trainingerror[polydegree])\n",
|
||
" print(\"Mean squared error on test data: %.8f\" % testerror[polydegree])\n",
|
||
"\n",
|
||
"plt.plot(polynomial, np.log10(trainingerror), label='Training Error')\n",
|
||
"plt.plot(polynomial, np.log10(testerror), label='Test Error')\n",
|
||
"plt.xlabel('Polynomial degree')\n",
|
||
"plt.ylabel('log10[MSE]')\n",
|
||
"plt.legend()\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "9c64885c",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"Note that we kept the intercept column in the fitting here. This means that we need to set the **intercept** in the call to the **Scikit-Learn** function as **False**. Alternatively, we could have set up the design matrix $X$ without the first column of ones."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ff70b35f",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## The same example but now with cross-validation\n",
|
||
"\n",
|
||
"In this example we keep the intercept column again but add cross-validation in order to estimate the best possible value of the means squared error."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"id": "e21b19fd",
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"editable": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_94293/3817475779.py:63: RuntimeWarning: divide by zero encountered in log10\n",
|
||
" plt.plot(polynomial, np.log10(estimated_mse_sklearn), label='Test Error')\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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nj0bAwYMQEBAAJ577jnIZDKcPHkSp0+fxvvvv1/ra0dkaTimhsgKLF++HO3bt8eAAQMQHR0NURSxefPmCt08lXnllVdQUlJSYVZTdQ0ePBhLlizBJ598goiICCxbtgzLly9Hz549a/lVVO67777D7du30a5dO7z88suYPHkyvLy8anSOf//733j00UcxcOBAxMTEoFu3bmjfvn2FY5YvX44RI0Zg2rRpCAsLw+DBg3Hs2DFD607Xrl3x9ddfY9GiRYiMjMTWrVvx1ltvPbR7SBAEbN68Gd27d8fo0aPRvHlzPP/887hy5YphjFGfPn3wxx9/YPv27ejYsSMeeeQRfPrppwgMDKzR10lk6QRRFEWpiyAi0zR//nysXr0aiYmJUpdilsaOHYvz589j//79UpdCZBXY/URE9ykoKMDly5fxxRdfsHujBj755BM8/vjjcHBwwJYtW7By5UosXbpU6rKIrAZbaojoPqNGjcLPP/+MwYMH46effrpvxg9VbujQodizZw/y8/PRrFkzvPHGGxg3bpzUZRFZDYYaIiIisggcKExEREQWgaGGiIiILAJDDREREVkEhhoiIiKyCAw1REREZBEYaoiIiMgiMNQQERGRRWCoISIiIovw/5N1/LQ3mMXrAAAAAElFTkSuQmCC",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"filenames": {
|
||
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week37_151_1.png"
|
||
}
|
||
},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Common imports\n",
|
||
"import os\n",
|
||
"import numpy as np\n",
|
||
"import pandas as pd\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"from sklearn.linear_model import LinearRegression, Ridge, Lasso\n",
|
||
"from sklearn.metrics import mean_squared_error\n",
|
||
"from sklearn.model_selection import KFold\n",
|
||
"from sklearn.model_selection import cross_val_score\n",
|
||
"\n",
|
||
"\n",
|
||
"# Where to save the figures and data files\n",
|
||
"PROJECT_ROOT_DIR = \"Results\"\n",
|
||
"FIGURE_ID = \"Results/FigureFiles\"\n",
|
||
"DATA_ID = \"DataFiles/\"\n",
|
||
"\n",
|
||
"if not os.path.exists(PROJECT_ROOT_DIR):\n",
|
||
" os.mkdir(PROJECT_ROOT_DIR)\n",
|
||
"\n",
|
||
"if not os.path.exists(FIGURE_ID):\n",
|
||
" os.makedirs(FIGURE_ID)\n",
|
||
"\n",
|
||
"if not os.path.exists(DATA_ID):\n",
|
||
" os.makedirs(DATA_ID)\n",
|
||
"\n",
|
||
"def image_path(fig_id):\n",
|
||
" return os.path.join(FIGURE_ID, fig_id)\n",
|
||
"\n",
|
||
"def data_path(dat_id):\n",
|
||
" return os.path.join(DATA_ID, dat_id)\n",
|
||
"\n",
|
||
"def save_fig(fig_id):\n",
|
||
" plt.savefig(image_path(fig_id) + \".png\", format='png')\n",
|
||
"\n",
|
||
"infile = open(data_path(\"EoS.csv\"),'r')\n",
|
||
"\n",
|
||
"# Read the EoS data as csv file and organize the data into two arrays with density and energies\n",
|
||
"EoS = pd.read_csv(infile, names=('Density', 'Energy'))\n",
|
||
"EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce')\n",
|
||
"EoS = EoS.dropna()\n",
|
||
"Energies = EoS['Energy']\n",
|
||
"Density = EoS['Density']\n",
|
||
"# The design matrix now as function of various polytrops\n",
|
||
"\n",
|
||
"Maxpolydegree = 30\n",
|
||
"X = np.zeros((len(Density),Maxpolydegree))\n",
|
||
"X[:,0] = 1.0\n",
|
||
"estimated_mse_sklearn = np.zeros(Maxpolydegree)\n",
|
||
"polynomial = np.zeros(Maxpolydegree)\n",
|
||
"k =5\n",
|
||
"kfold = KFold(n_splits = k)\n",
|
||
"\n",
|
||
"for polydegree in range(1, Maxpolydegree):\n",
|
||
" polynomial[polydegree] = polydegree\n",
|
||
" for degree in range(polydegree):\n",
|
||
" X[:,degree] = Density**(degree/3.0)\n",
|
||
" OLS = LinearRegression(fit_intercept=False)\n",
|
||
"# loop over trials in order to estimate the expectation value of the MSE\n",
|
||
" estimated_mse_folds = cross_val_score(OLS, X, Energies, scoring='neg_mean_squared_error', cv=kfold)\n",
|
||
"#[:, np.newaxis]\n",
|
||
" estimated_mse_sklearn[polydegree] = np.mean(-estimated_mse_folds)\n",
|
||
"\n",
|
||
"plt.plot(polynomial, np.log10(estimated_mse_sklearn), label='Test Error')\n",
|
||
"plt.xlabel('Polynomial degree')\n",
|
||
"plt.ylabel('log10[MSE]')\n",
|
||
"plt.legend()\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "cc43a51c",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Material for the lab sessions"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "af5687ed",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Linking the regression analysis with a statistical interpretation\n",
|
||
"\n",
|
||
"We will now couple the discussions of ordinary least squares, Ridge\n",
|
||
"and Lasso regression with a statistical interpretation, that is we\n",
|
||
"move from a linear algebra analysis to a statistical analysis. In\n",
|
||
"particular, we will focus on what the regularization terms can result\n",
|
||
"in. We will amongst other things show that the regularization\n",
|
||
"parameter can reduce considerably the variance of the parameters\n",
|
||
"$\\beta$.\n",
|
||
"\n",
|
||
"The\n",
|
||
"advantage of doing linear regression is that we actually end up with\n",
|
||
"analytical expressions for several statistical quantities. \n",
|
||
"Standard least squares and Ridge regression allow us to\n",
|
||
"derive quantities like the variance and other expectation values in a\n",
|
||
"rather straightforward way.\n",
|
||
"\n",
|
||
"It is assumed that $\\varepsilon_i\n",
|
||
"\\sim \\mathcal{N}(0, \\sigma^2)$ and the $\\varepsilon_{i}$ are\n",
|
||
"independent, i.e.:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "47c3811a",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\begin{align*} \n",
|
||
"\\mbox{Cov}(\\varepsilon_{i_1},\n",
|
||
"\\varepsilon_{i_2}) & = \\left\\{ \\begin{array}{lcc} \\sigma^2 & \\mbox{if}\n",
|
||
"& i_1 = i_2, \\\\ 0 & \\mbox{if} & i_1 \\not= i_2. \\end{array} \\right.\n",
|
||
"\\end{align*}\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "980dac66",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"The randomness of $\\varepsilon_i$ implies that\n",
|
||
"$\\mathbf{y}_i$ is also a random variable. In particular,\n",
|
||
"$\\mathbf{y}_i$ is normally distributed, because $\\varepsilon_i \\sim\n",
|
||
"\\mathcal{N}(0, \\sigma^2)$ and $\\mathbf{X}_{i,\\ast} \\, \\boldsymbol{\\beta}$ is a\n",
|
||
"non-random scalar. To specify the parameters of the distribution of\n",
|
||
"$\\mathbf{y}_i$ we need to calculate its first two moments. \n",
|
||
"\n",
|
||
"Recall that $\\boldsymbol{X}$ is a matrix of dimensionality $n\\times p$. The\n",
|
||
"notation above $\\mathbf{X}_{i,\\ast}$ means that we are looking at the\n",
|
||
"row number $i$ and perform a sum over all values $p$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "be67d8c5",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Assumptions made\n",
|
||
"\n",
|
||
"The assumption we have made here can be summarized as (and this is going to be useful when we discuss the bias-variance trade off)\n",
|
||
"that there exists a function $f(\\boldsymbol{x})$ and a normal distributed error $\\boldsymbol{\\varepsilon}\\sim \\mathcal{N}(0, \\sigma^2)$\n",
|
||
"which describe our data"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5133bf97",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\boldsymbol{y} = f(\\boldsymbol{x})+\\boldsymbol{\\varepsilon}\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b76cb41b",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"We approximate this function with our model from the solution of the linear regression equations, that is our\n",
|
||
"function $f$ is approximated by $\\boldsymbol{\\tilde{y}}$ where we want to minimize $(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2$, our MSE, with"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b6e9e9ce",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\boldsymbol{\\tilde{y}} = \\boldsymbol{X}\\boldsymbol{\\beta}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "53479926",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Expectation value and variance\n",
|
||
"\n",
|
||
"We can calculate the expectation value of $\\boldsymbol{y}$ for a given element $i$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "1929fd98",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\begin{align*} \n",
|
||
"\\mathbb{E}(y_i) & =\n",
|
||
"\\mathbb{E}(\\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta}) + \\mathbb{E}(\\varepsilon_i)\n",
|
||
"\\, \\, \\, = \\, \\, \\, \\mathbf{X}_{i, \\ast} \\, \\beta, \n",
|
||
"\\end{align*}\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "18b53cb3",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"while\n",
|
||
"its variance is"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "a57528a8",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\begin{align*} \\mbox{Var}(y_i) & = \\mathbb{E} \\{ [y_i\n",
|
||
"- \\mathbb{E}(y_i)]^2 \\} \\, \\, \\, = \\, \\, \\, \\mathbb{E} ( y_i^2 ) -\n",
|
||
"[\\mathbb{E}(y_i)]^2 \\\\ & = \\mathbb{E} [ ( \\mathbf{X}_{i, \\ast} \\,\n",
|
||
"\\beta + \\varepsilon_i )^2] - ( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta})^2 \\\\ &\n",
|
||
"= \\mathbb{E} [ ( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta})^2 + 2 \\varepsilon_i\n",
|
||
"\\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta} + \\varepsilon_i^2 ] - ( \\mathbf{X}_{i,\n",
|
||
"\\ast} \\, \\beta)^2 \\\\ & = ( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta})^2 + 2\n",
|
||
"\\mathbb{E}(\\varepsilon_i) \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta} +\n",
|
||
"\\mathbb{E}(\\varepsilon_i^2 ) - ( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta})^2 \n",
|
||
"\\\\ & = \\mathbb{E}(\\varepsilon_i^2 ) \\, \\, \\, = \\, \\, \\,\n",
|
||
"\\mbox{Var}(\\varepsilon_i) \\, \\, \\, = \\, \\, \\, \\sigma^2. \n",
|
||
"\\end{align*}\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b5e5c863",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"Hence, $y_i \\sim \\mathcal{N}( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta}, \\sigma^2)$, that is $\\boldsymbol{y}$ follows a normal distribution with \n",
|
||
"mean value $\\boldsymbol{X}\\boldsymbol{\\beta}$ and variance $\\sigma^2$ (not be confused with the singular values of the SVD)."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "13fe1b50",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"## Expectation value and variance for $\\boldsymbol{\\beta}$\n",
|
||
"\n",
|
||
"With the OLS expressions for the optimal parameters $\\boldsymbol{\\hat{\\beta}}$ we can evaluate the expectation value"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "22327251",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mathbb{E}(\\boldsymbol{\\hat{\\beta}}) = \\mathbb{E}[ (\\mathbf{X}^{\\top} \\mathbf{X})^{-1}\\mathbf{X}^{T} \\mathbf{Y}]=(\\mathbf{X}^{T} \\mathbf{X})^{-1}\\mathbf{X}^{T} \\mathbb{E}[ \\mathbf{Y}]=(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\mathbf{X}^{T}\\mathbf{X}\\boldsymbol{\\beta}=\\boldsymbol{\\beta}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "f7875671",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"This means that the estimator of the regression parameters is unbiased.\n",
|
||
"\n",
|
||
"We can also calculate the variance\n",
|
||
"\n",
|
||
"The variance of the optimal value $\\boldsymbol{\\hat{\\beta}}$ is"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "584d9150",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\begin{eqnarray*}\n",
|
||
"\\mbox{Var}(\\boldsymbol{\\hat{\\beta}}) & = & \\mathbb{E} \\{ [\\boldsymbol{\\beta} - \\mathbb{E}(\\boldsymbol{\\beta})] [\\boldsymbol{\\beta} - \\mathbb{E}(\\boldsymbol{\\beta})]^{T} \\}\n",
|
||
"\\\\\n",
|
||
"& = & \\mathbb{E} \\{ [(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{y} - \\boldsymbol{\\beta}] \\, [(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{y} - \\boldsymbol{\\beta}]^{T} \\}\n",
|
||
"\\\\\n",
|
||
"% & = & \\mathbb{E} \\{ [(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{y}] \\, [(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{y}]^{T} \\} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n",
|
||
"% \\\\\n",
|
||
"% & = & \\mathbb{E} \\{ (\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{y} \\, \\mathbf{y}^{T} \\, \\mathbf{X} \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1} \\} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n",
|
||
"% \\\\\n",
|
||
"& = & (\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\, \\mathbb{E} \\{ \\mathbf{y} \\, \\mathbf{y}^{T} \\} \\, \\mathbf{X} \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n",
|
||
"\\\\\n",
|
||
"& = & (\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\, \\{ \\mathbf{X} \\, \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T} \\, \\mathbf{X}^{T} + \\sigma^2 \\} \\, \\mathbf{X} \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n",
|
||
"% \\\\\n",
|
||
"% & = & (\\mathbf{X}^T \\mathbf{X})^{-1} \\, \\mathbf{X}^T \\, \\mathbf{X} \\, \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^T \\, \\mathbf{X}^T \\, \\mathbf{X} \\, (\\mathbf{X}^T % \\mathbf{X})^{-1}\n",
|
||
"% \\\\\n",
|
||
"% & & + \\, \\, \\sigma^2 \\, (\\mathbf{X}^T \\mathbf{X})^{-1} \\, \\mathbf{X}^T \\, \\mathbf{X} \\, (\\mathbf{X}^T \\mathbf{X})^{-1} - \\boldsymbol{\\beta} \\boldsymbol{\\beta}^T\n",
|
||
"\\\\\n",
|
||
"& = & \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T} + \\sigma^2 \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n",
|
||
"\\, \\, \\, = \\, \\, \\, \\sigma^2 \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1},\n",
|
||
"\\end{eqnarray*}\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "0ebb2d20",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"where we have used that $\\mathbb{E} (\\mathbf{y} \\mathbf{y}^{T}) =\n",
|
||
"\\mathbf{X} \\, \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T} \\, \\mathbf{X}^{T} +\n",
|
||
"\\sigma^2 \\, \\mathbf{I}_{nn}$. From $\\mbox{Var}(\\boldsymbol{\\beta}) = \\sigma^2\n",
|
||
"\\, (\\mathbf{X}^{T} \\mathbf{X})^{-1}$, one obtains an estimate of the\n",
|
||
"variance of the estimate of the $j$-th regression coefficient:\n",
|
||
"$\\boldsymbol{\\sigma}^2 (\\boldsymbol{\\beta}_j ) = \\boldsymbol{\\sigma}^2 [(\\mathbf{X}^{T} \\mathbf{X})^{-1}]_{jj} $. This may be used to\n",
|
||
"construct a confidence interval for the estimates.\n",
|
||
"\n",
|
||
"In a similar way, we can obtain analytical expressions for say the\n",
|
||
"expectation values of the parameters $\\boldsymbol{\\beta}$ and their variance\n",
|
||
"when we employ Ridge regression, allowing us again to define a confidence interval. \n",
|
||
"\n",
|
||
"It is rather straightforward to show that"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b701ef3f",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mathbb{E} \\big[ \\hat{\\boldsymbol{\\beta}}^{\\mathrm{Ridge}} \\big]=(\\mathbf{X}^{T} \\mathbf{X} + \\lambda \\mathbf{I}_{pp})^{-1} (\\mathbf{X}^{\\top} \\mathbf{X})\\boldsymbol{\\beta}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "1453c4df",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"We see clearly that \n",
|
||
"$\\mathbb{E} \\big[ \\hat{\\boldsymbol{\\beta}}^{\\mathrm{Ridge}} \\big] \\not= \\hat{\\boldsymbol{\\beta}}^{\\mathrm{OLS}}$ for any $\\lambda > 0$.\n",
|
||
"\n",
|
||
"We can also compute the variance as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "fade84b6",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mbox{Var}[\\hat{\\boldsymbol{\\beta}}^{\\mathrm{Ridge}}]=\\sigma^2[ \\mathbf{X}^{T} \\mathbf{X} + \\lambda \\mathbf{I} ]^{-1} \\mathbf{X}^{T} \\mathbf{X} \\{ [ \\mathbf{X}^{\\top} \\mathbf{X} + \\lambda \\mathbf{I} ]^{-1}\\}^{T},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "e91b254f",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"and it is easy to see that if the parameter $\\lambda$ goes to infinity then the variance of Ridge parameters $\\boldsymbol{\\beta}$ goes to zero. \n",
|
||
"\n",
|
||
"With this, we can compute the difference"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "6f50fb28",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mbox{Var}[\\hat{\\boldsymbol{\\beta}}^{\\mathrm{OLS}}]-\\mbox{Var}(\\hat{\\boldsymbol{\\beta}}^{\\mathrm{Ridge}})=\\sigma^2 [ \\mathbf{X}^{T} \\mathbf{X} + \\lambda \\mathbf{I} ]^{-1}[ 2\\lambda\\mathbf{I} + \\lambda^2 (\\mathbf{X}^{T} \\mathbf{X})^{-1} ] \\{ [ \\mathbf{X}^{T} \\mathbf{X} + \\lambda \\mathbf{I} ]^{-1}\\}^{T}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "e37b2bfb",
|
||
"metadata": {
|
||
"editable": true
|
||
},
|
||
"source": [
|
||
"The difference is non-negative definite since each component of the\n",
|
||
"matrix product is non-negative definite. \n",
|
||
"This means the variance we obtain with the standard OLS will always for $\\lambda > 0$ be larger than the variance of $\\boldsymbol{\\beta}$ obtained with the Ridge estimator. This has interesting consequences when we discuss the so-called bias-variance trade-off below. \n",
|
||
"\n",
|
||
"For more discussions of Ridge regression and calculation of averages, [Wessel van Wieringen's](https://arxiv.org/abs/1509.09169) article is highly recommended."
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"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.15"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 5
|
||
} |