From 6ab196695f59ee7d49284ed3cd78fb0eb775c39d Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Tue, 10 Sep 2024 06:14:12 +0200 Subject: [PATCH] update --- doc/pub/week37/html/._week37-bs043.html | 42 +- doc/pub/week37/html/week37-reveal.html | 42 +- doc/pub/week37/html/week37-solarized.html | 42 +- doc/pub/week37/html/week37.html | 42 +- doc/pub/week37/ipynb/ipynb-week37-src.tar.gz | Bin 1022755 -> 1022755 bytes doc/pub/week37/ipynb/week37.ipynb | 1431 +++++++++--------- doc/src/week37/week37.do.txt | 17 +- 7 files changed, 812 insertions(+), 804 deletions(-) diff --git a/doc/pub/week37/html/._week37-bs043.html b/doc/pub/week37/html/._week37-bs043.html index f65a9172c..ee91c67f7 100644 --- a/doc/pub/week37/html/._week37-bs043.html +++ b/doc/pub/week37/html/._week37-bs043.html @@ -293,35 +293,31 @@ MathJax.Hub.Config({

Another Example from Scikit-Learn's Repository

+

This example demonstrates the problems of underfitting and overfitting and +how we can use linear regression with polynomial features to approximate +nonlinear functions. The plot shows the function that we want to approximate, +which is a part of the cosine function. In addition, the samples from the +real function and the approximations of different models are displayed. The +models have polynomial features of different degrees. We can see that a +linear function (polynomial with degree 1) is not sufficient to fit the +training samples. This is called underfitting. A polynomial of degree 4 +approximates the true function almost perfectly. However, for higher degrees +the model will overfit the training data, i.e. it learns the noise of the +training data. +We evaluate quantitatively overfitting and underfitting by using +cross-validation. We calculate the mean squared error (MSE) on the validation +set, the higher, the less likely the model generalizes correctly from the +training data. +

+ +
-
"""
-============================
-Underfitting vs. Overfitting
-============================
-
-This example demonstrates the problems of underfitting and overfitting and
-how we can use linear regression with polynomial features to approximate
-nonlinear functions. The plot shows the function that we want to approximate,
-which is a part of the cosine function. In addition, the samples from the
-real function and the approximations of different models are displayed. The
-models have polynomial features of different degrees. We can see that a
-linear function (polynomial with degree 1) is not sufficient to fit the
-training samples. This is called **underfitting**. A polynomial of degree 4
-approximates the true function almost perfectly. However, for higher degrees
-the model will **overfit** the training data, i.e. it learns the noise of the
-training data.
-We evaluate quantitatively **overfitting** / **underfitting** by using
-cross-validation. We calculate the mean squared error (MSE) on the validation
-set, the higher, the less likely the model generalizes correctly from the
-training data.
-"""
-
-print(__doc__)
+  
#print(__doc__)
 
 import numpy as np
 import matplotlib.pyplot as plt
diff --git a/doc/pub/week37/html/week37-reveal.html b/doc/pub/week37/html/week37-reveal.html
index 0b295eb82..024f8d75e 100644
--- a/doc/pub/week37/html/week37-reveal.html
+++ b/doc/pub/week37/html/week37-reveal.html
@@ -1489,35 +1489,31 @@ flexible statistical methods have higher variance.
 

Another Example from Scikit-Learn's Repository

+

This example demonstrates the problems of underfitting and overfitting and +how we can use linear regression with polynomial features to approximate +nonlinear functions. The plot shows the function that we want to approximate, +which is a part of the cosine function. In addition, the samples from the +real function and the approximations of different models are displayed. The +models have polynomial features of different degrees. We can see that a +linear function (polynomial with degree 1) is not sufficient to fit the +training samples. This is called underfitting. A polynomial of degree 4 +approximates the true function almost perfectly. However, for higher degrees +the model will overfit the training data, i.e. it learns the noise of the +training data. +We evaluate quantitatively overfitting and underfitting by using +cross-validation. We calculate the mean squared error (MSE) on the validation +set, the higher, the less likely the model generalizes correctly from the +training data. +

+ +
-
"""
-============================
-Underfitting vs. Overfitting
-============================
-
-This example demonstrates the problems of underfitting and overfitting and
-how we can use linear regression with polynomial features to approximate
-nonlinear functions. The plot shows the function that we want to approximate,
-which is a part of the cosine function. In addition, the samples from the
-real function and the approximations of different models are displayed. The
-models have polynomial features of different degrees. We can see that a
-linear function (polynomial with degree 1) is not sufficient to fit the
-training samples. This is called **underfitting**. A polynomial of degree 4
-approximates the true function almost perfectly. However, for higher degrees
-the model will **overfit** the training data, i.e. it learns the noise of the
-training data.
-We evaluate quantitatively **overfitting** / **underfitting** by using
-cross-validation. We calculate the mean squared error (MSE) on the validation
-set, the higher, the less likely the model generalizes correctly from the
-training data.
-"""
-
-print(__doc__)
+  
#print(__doc__)
 
 import numpy as np
 import matplotlib.pyplot as plt
diff --git a/doc/pub/week37/html/week37-solarized.html b/doc/pub/week37/html/week37-solarized.html
index 3bf4e5f89..dcd6b1d06 100644
--- a/doc/pub/week37/html/week37-solarized.html
+++ b/doc/pub/week37/html/week37-solarized.html
@@ -1407,35 +1407,31 @@ flexible statistical methods have higher variance.
 









Another Example from Scikit-Learn's Repository

+

This example demonstrates the problems of underfitting and overfitting and +how we can use linear regression with polynomial features to approximate +nonlinear functions. The plot shows the function that we want to approximate, +which is a part of the cosine function. In addition, the samples from the +real function and the approximations of different models are displayed. The +models have polynomial features of different degrees. We can see that a +linear function (polynomial with degree 1) is not sufficient to fit the +training samples. This is called underfitting. A polynomial of degree 4 +approximates the true function almost perfectly. However, for higher degrees +the model will overfit the training data, i.e. it learns the noise of the +training data. +We evaluate quantitatively overfitting and underfitting by using +cross-validation. We calculate the mean squared error (MSE) on the validation +set, the higher, the less likely the model generalizes correctly from the +training data. +

+ +
-
"""
-============================
-Underfitting vs. Overfitting
-============================
-
-This example demonstrates the problems of underfitting and overfitting and
-how we can use linear regression with polynomial features to approximate
-nonlinear functions. The plot shows the function that we want to approximate,
-which is a part of the cosine function. In addition, the samples from the
-real function and the approximations of different models are displayed. The
-models have polynomial features of different degrees. We can see that a
-linear function (polynomial with degree 1) is not sufficient to fit the
-training samples. This is called **underfitting**. A polynomial of degree 4
-approximates the true function almost perfectly. However, for higher degrees
-the model will **overfit** the training data, i.e. it learns the noise of the
-training data.
-We evaluate quantitatively **overfitting** / **underfitting** by using
-cross-validation. We calculate the mean squared error (MSE) on the validation
-set, the higher, the less likely the model generalizes correctly from the
-training data.
-"""
-
-print(__doc__)
+  
#print(__doc__)
 
 import numpy as np
 import matplotlib.pyplot as plt
diff --git a/doc/pub/week37/html/week37.html b/doc/pub/week37/html/week37.html
index 2d8e67fcf..0a91c8f87 100644
--- a/doc/pub/week37/html/week37.html
+++ b/doc/pub/week37/html/week37.html
@@ -1484,35 +1484,31 @@ flexible statistical methods have higher variance.
 









Another Example from Scikit-Learn's Repository

+

This example demonstrates the problems of underfitting and overfitting and +how we can use linear regression with polynomial features to approximate +nonlinear functions. The plot shows the function that we want to approximate, +which is a part of the cosine function. In addition, the samples from the +real function and the approximations of different models are displayed. The +models have polynomial features of different degrees. We can see that a +linear function (polynomial with degree 1) is not sufficient to fit the +training samples. This is called underfitting. A polynomial of degree 4 +approximates the true function almost perfectly. However, for higher degrees +the model will overfit the training data, i.e. it learns the noise of the +training data. +We evaluate quantitatively overfitting and underfitting by using +cross-validation. We calculate the mean squared error (MSE) on the validation +set, the higher, the less likely the model generalizes correctly from the +training data. +

+ +
-
"""
-============================
-Underfitting vs. Overfitting
-============================
-
-This example demonstrates the problems of underfitting and overfitting and
-how we can use linear regression with polynomial features to approximate
-nonlinear functions. The plot shows the function that we want to approximate,
-which is a part of the cosine function. In addition, the samples from the
-real function and the approximations of different models are displayed. The
-models have polynomial features of different degrees. We can see that a
-linear function (polynomial with degree 1) is not sufficient to fit the
-training samples. This is called **underfitting**. A polynomial of degree 4
-approximates the true function almost perfectly. However, for higher degrees
-the model will **overfit** the training data, i.e. it learns the noise of the
-training data.
-We evaluate quantitatively **overfitting** / **underfitting** by using
-cross-validation. We calculate the mean squared error (MSE) on the validation
-set, the higher, the less likely the model generalizes correctly from the
-training data.
-"""
-
-print(__doc__)
+  
#print(__doc__)
 
 import numpy as np
 import matplotlib.pyplot as plt
diff --git a/doc/pub/week37/ipynb/ipynb-week37-src.tar.gz b/doc/pub/week37/ipynb/ipynb-week37-src.tar.gz
index 7ebb708da7480d98ec7d49e144ed6493d789e282..8fc7cb1520e7b830c13415194e3228e107908026 100644
GIT binary patch
delta 63
zcmWN_IT3&`002S$3%>zoa1w76S1?GRj0UiP46MMGo9>wI$a;iqf8GtrrI1o8sil!W
QgS65~FN2ISUChh*0Z|MPG5`Po

delta 63
zcmWN_IT3&`002S$3%>zout61X6jvdEG8(`N9a><^O?OOpWIaN*J@1a>Qb;M4)Y8bG
QL0ajgmqA9EF6QO@07I4!@Bjb+

diff --git a/doc/pub/week37/ipynb/week37.ipynb b/doc/pub/week37/ipynb/week37.ipynb
index 0358a9c65..70763a9b5 100644
--- a/doc/pub/week37/ipynb/week37.ipynb
+++ b/doc/pub/week37/ipynb/week37.ipynb
@@ -2,8 +2,10 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "14b74d82",
-   "metadata": {},
+   "id": "53365fbb",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "\n",
@@ -12,8 +14,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "98c332a6",
-   "metadata": {},
+   "id": "809960d9",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "# Week 37: Statistical interpretations and Resampling Methods\n",
     "**Morten Hjorth-Jensen**, Department of Physics, University of Oslo, Norway\n",
@@ -25,8 +29,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "39288149",
-   "metadata": {},
+   "id": "0cac33e9",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Plans for week 37, lecture Monday\n",
     "\n",
@@ -54,8 +60,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "bd562ffb",
-   "metadata": {},
+   "id": "d5ba8d48",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Plans for week 37, lab sessions\n",
     "\n",
@@ -74,16 +82,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "06a5d233",
-   "metadata": {},
+   "id": "560073ae",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Material for lecture Monday September 9"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "ff22a7c4",
-   "metadata": {},
+   "id": "58ff8482",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Deriving OLS from a probability distribution\n",
     "\n",
@@ -103,8 +115,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "af426198",
-   "metadata": {},
+   "id": "c9ed29f5",
+   "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",
@@ -113,8 +127,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "bc6aece7",
-   "metadata": {},
+   "id": "f3e177df",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Independent and Identically Distrubuted (iid)\n",
     "\n",
@@ -124,8 +140,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "0fcaf1fa",
-   "metadata": {},
+   "id": "943d3101",
+   "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",
@@ -134,8 +152,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "cabb3149",
-   "metadata": {},
+   "id": "bddef09d",
+   "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",
@@ -144,8 +164,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "eaa18a3a",
-   "metadata": {},
+   "id": "8d119a52",
+   "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",
@@ -154,8 +176,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "77178b21",
-   "metadata": {},
+   "id": "b67e829d",
+   "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"
@@ -163,8 +187,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "7ab08c28",
-   "metadata": {},
+   "id": "3a76ed1c",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "\\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\\dots, (x_{n-1},y_{n-1})].\n",
@@ -173,8 +199,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "f4c18070",
-   "metadata": {},
+   "id": "58863d67",
+   "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"
@@ -182,8 +210,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "68333e06",
-   "metadata": {},
+   "id": "f3c19d2c",
+   "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",
@@ -192,16 +222,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "a6a23cb1",
-   "metadata": {},
+   "id": "fe7606c4",
+   "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": "2ab81525",
-   "metadata": {},
+   "id": "e1d5e31c",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Maximum Likelihood Estimation (MLE)\n",
     "\n",
@@ -229,8 +263,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "7ec31ba4",
-   "metadata": {},
+   "id": "097eb026",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## A new Cost Function\n",
     "\n",
@@ -239,8 +275,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "7e4143d9",
-   "metadata": {},
+   "id": "46e9c4fd",
+   "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",
@@ -249,16 +287,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "807fc498",
-   "metadata": {},
+   "id": "20ca4ccb",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "which becomes"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "75aea24f",
-   "metadata": {},
+   "id": "651adbb5",
+   "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",
@@ -267,16 +309,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "f5781704",
-   "metadata": {},
+   "id": "a0d30507",
+   "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": "73317949",
-   "metadata": {},
+   "id": "f3269fe5",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "\\boldsymbol{X}^T\\left(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\right) =0,\n",
@@ -285,16 +331,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "4a92b413",
-   "metadata": {},
+   "id": "f7096467",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "which leads to the well-known OLS equation for the optimal paramters $\\beta$"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "b9e8865f",
-   "metadata": {},
+   "id": "e35c1080",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "\\hat{\\boldsymbol{\\beta}}^{\\mathrm{OLS}}=\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y}!\n",
@@ -303,16 +353,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "ce99993b",
-   "metadata": {},
+   "id": "6392c0ea",
+   "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": "1c1e5ca5",
-   "metadata": {},
+   "id": "ac50371f",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## More basic Statistics and Bayes' theorem\n",
     "\n",
@@ -329,8 +383,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "94efedeb",
-   "metadata": {},
+   "id": "b73c9d79",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "p(X \\cup Y)= p(X)+p(Y)-p(X \\cap Y).\n",
@@ -339,16 +395,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "7bff18f4",
-   "metadata": {},
+   "id": "ab4c6470",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "**The product rule (aka joint probability) is given by.**"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "9dab4cc8",
-   "metadata": {},
+   "id": "08a17057",
+   "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",
@@ -357,8 +417,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "301a7e63",
-   "metadata": {},
+   "id": "248c56c1",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "where we read $p(X\\vert Y)$ as the likelihood of obtaining $X$ given $Y$.\n",
     "\n",
@@ -367,8 +429,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "e1637fca",
-   "metadata": {},
+   "id": "7d49c8f2",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Marginal Probability\n",
     "\n",
@@ -377,8 +441,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "8318379c",
-   "metadata": {},
+   "id": "8b7ebd86",
+   "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",
@@ -387,8 +453,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "42d22c8d",
-   "metadata": {},
+   "id": "ec8cf10c",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Conditional  Probability\n",
     "\n",
@@ -397,8 +465,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "82010f47",
-   "metadata": {},
+   "id": "7572b3bd",
+   "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",
@@ -407,8 +477,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "5e520f96",
-   "metadata": {},
+   "id": "93806e54",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Bayes' Theorem\n",
     "\n",
@@ -417,8 +489,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "2b74f753",
-   "metadata": {},
+   "id": "3a541b25",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "p(X\\vert Y)= \\frac{p(X,Y)}{p(Y)},\n",
@@ -427,16 +501,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "2c65cf69",
-   "metadata": {},
+   "id": "3ad6731a",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "which we can rewrite as"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "ef72c5f7",
-   "metadata": {},
+   "id": "0b97ba97",
+   "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",
@@ -445,16 +523,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "f009bb84",
-   "metadata": {},
+   "id": "f96a2bd1",
+   "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": "38bed0cd",
-   "metadata": {},
+   "id": "90c7d471",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Interpretations of Bayes' Theorem\n",
     "\n",
@@ -470,8 +552,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "8ccc70ec",
-   "metadata": {},
+   "id": "2f5cdb57",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Example of Usage of Bayes' theorem\n",
     "\n",
@@ -489,8 +573,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "fea10ce4",
-   "metadata": {},
+   "id": "55d2bfb6",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "p(X=1\\vert Y=1) =0.8.\n",
@@ -499,8 +585,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "3a9e78e5",
-   "metadata": {},
+   "id": "2a1ea166",
+   "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."
@@ -508,8 +596,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "989dcbed",
-   "metadata": {},
+   "id": "3a4cea04",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Doing it correctly\n",
     "\n",
@@ -519,8 +609,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "abf9c88c",
-   "metadata": {},
+   "id": "848763b6",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "p(Y=1) =0.004.\n",
@@ -529,16 +621,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "445466d0",
-   "metadata": {},
+   "id": "cb8668ac",
+   "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": "63fd91b8",
-   "metadata": {},
+   "id": "196d47ff",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "p(X=1\\vert Y=0) =0.1.\n",
@@ -547,16 +643,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "a8cef50b",
-   "metadata": {},
+   "id": "38c54891",
+   "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": "1f3e9ffa",
-   "metadata": {},
+   "id": "5fb29180",
+   "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",
@@ -565,16 +665,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "5d32ca08",
-   "metadata": {},
+   "id": "bd303a51",
+   "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": "1fa5f693",
-   "metadata": {},
+   "id": "3bee4680",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Bayes' Theorem and Ridge and Lasso Regression\n",
     "\n",
@@ -585,8 +689,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "576a43bd",
-   "metadata": {},
+   "id": "0c46bb57",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "\\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\\dots, (x_{n-1},y_{n-1})],\n",
@@ -595,16 +701,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "2968120b",
-   "metadata": {},
+   "id": "32f47be0",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "is given by"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "6154bc24",
-   "metadata": {},
+   "id": "fd925a78",
+   "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",
@@ -613,16 +723,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "c0b483bb",
-   "metadata": {},
+   "id": "006647eb",
+   "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": "91121969",
-   "metadata": {},
+   "id": "1d2ac696",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "p(\\boldsymbol{\\beta}\\vert\\boldsymbol{D}).\n",
@@ -631,16 +745,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "a4d78ecc",
-   "metadata": {},
+   "id": "9e1f59a5",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "Bayes' theorem comes to our rescue here since (omitting the normalization constant)"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "e779a466",
-   "metadata": {},
+   "id": "a8fe3b56",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "p(\\boldsymbol{\\beta}\\vert\\boldsymbol{D})\\propto p(\\boldsymbol{D}\\vert\\boldsymbol{\\beta})p(\\boldsymbol{\\beta}).\n",
@@ -649,16 +767,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "7c49926e",
-   "metadata": {},
+   "id": "85db28a7",
+   "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": "6ebb795d",
-   "metadata": {},
+   "id": "e6b6b507",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Ridge and Bayes\n",
     "\n",
@@ -671,8 +793,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "f288a479",
-   "metadata": {},
+   "id": "00f26321",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "p(\\boldsymbol{\\beta})=\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\beta_j^2}{2\\tau^2}\\right)}.\n",
@@ -681,16 +805,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "c6c99bca",
-   "metadata": {},
+   "id": "868f5e5a",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "Our posterior probability becomes then (omitting the normalization factor which is just a constant)"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "14fb9c1f",
-   "metadata": {},
+   "id": "4e29d1a9",
+   "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",
@@ -699,8 +827,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "ad4a830f",
-   "metadata": {},
+   "id": "8d1ea123",
+   "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",
@@ -710,8 +840,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "dfc5bffa",
-   "metadata": {},
+   "id": "ee32ea7d",
+   "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",
@@ -720,16 +852,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "71186941",
-   "metadata": {},
+   "id": "e05c6359",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "and replacing $1/2\\tau^2$ with $\\lambda$ we have"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "b9814ef1",
-   "metadata": {},
+   "id": "b2ffe0c0",
+   "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",
@@ -738,16 +874,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "429bd3fb",
-   "metadata": {},
+   "id": "7fccf482",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "which is our Ridge cost function!  Nice, isn't it?"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "29f1a9b6",
-   "metadata": {},
+   "id": "00a435ee",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Lasso and Bayes\n",
     "\n",
@@ -756,8 +896,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "d2617d29",
-   "metadata": {},
+   "id": "6ed0d41e",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "p(\\boldsymbol{\\beta})=\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\vert\\beta_j\\vert}{\\tau}\\right)}.\n",
@@ -766,16 +908,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "fb90b57a",
-   "metadata": {},
+   "id": "2c7c149d",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "Our posterior probability becomes then (omitting the normalization factor which is just a constant)"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "6df398dd",
-   "metadata": {},
+   "id": "77f01008",
+   "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",
@@ -784,8 +930,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "de9e1065",
-   "metadata": {},
+   "id": "793671d5",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "Taking the negative\n",
     "logarithm of the posterior probability and leaving out the\n",
@@ -794,8 +942,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "35ad3c48",
-   "metadata": {},
+   "id": "4e57ea79",
+   "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",
@@ -804,16 +954,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "43acabad",
-   "metadata": {},
+   "id": "12f8f838",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "and replacing $1/\\tau$ with $\\lambda$ we have"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "36033e6e",
-   "metadata": {},
+   "id": "9cc2459b",
+   "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",
@@ -822,16 +976,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "91d57877",
-   "metadata": {},
+   "id": "6c040408",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "which is our Lasso cost function!"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "c13b96b0",
-   "metadata": {},
+   "id": "86c5648e",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Why resampling methods\n",
     "\n",
@@ -847,8 +1005,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "eab9c787",
-   "metadata": {},
+   "id": "ef10be44",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Resampling methods\n",
     "Resampling methods are an indispensable tool in modern\n",
@@ -873,8 +1033,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "a6170268",
-   "metadata": {},
+   "id": "f1c760d9",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Resampling approaches can be computationally expensive\n",
     "\n",
@@ -897,8 +1059,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "dea29c07",
-   "metadata": {},
+   "id": "7cab5213",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Why resampling methods ?\n",
     "**Statistical analysis.**\n",
@@ -912,8 +1076,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "6a355ed8",
-   "metadata": {},
+   "id": "abd16598",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Statistical analysis\n",
     "\n",
@@ -930,8 +1096,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "bf54a8c6",
-   "metadata": {},
+   "id": "dc17b500",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Resampling methods\n",
     "\n",
@@ -957,8 +1125,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "80fd775f",
-   "metadata": {},
+   "id": "ac9620af",
+   "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",
@@ -980,8 +1150,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "67af5e5c",
-   "metadata": {},
+   "id": "b8ddd5cf",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## The Central Limit Theorem\n",
     "\n",
@@ -998,8 +1170,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "79ea23d1",
-   "metadata": {},
+   "id": "465046b4",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "z=\\frac{x_1+x_2+\\dots+x_m}{m},\n",
@@ -1008,16 +1182,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "e4cd40d6",
-   "metadata": {},
+   "id": "c7370cfe",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "the question we pose is which is the PDF of the new variable $z$."
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "80521077",
-   "metadata": {},
+   "id": "b20b0422",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Finding the Limit\n",
     "\n",
@@ -1029,8 +1207,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "773ffc5b",
-   "metadata": {},
+   "id": "cbcf72bb",
+   "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",
@@ -1040,8 +1220,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "a53cbb6e",
-   "metadata": {},
+   "id": "61c187d3",
+   "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",
@@ -1051,8 +1233,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "bc097958",
-   "metadata": {},
+   "id": "67ac3e7e",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Rewriting the $\\delta$-function\n",
     "\n",
@@ -1061,8 +1245,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "ef9c2642",
-   "metadata": {},
+   "id": "8aff1a0f",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "\\delta(z-\\frac{x_1+x_2+\\dots+x_m}{m})=\\frac{1}{2\\pi}\\int_{-\\infty}^{\\infty}\n",
@@ -1072,8 +1258,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "0bd76803",
-   "metadata": {},
+   "id": "0f67bf9e",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "and inserting $e^{i\\mu q-i\\mu q}$ where $\\mu$ is the mean value\n",
     "we arrive at"
@@ -1081,8 +1269,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "143a314b",
-   "metadata": {},
+   "id": "0462459a",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "\\tilde{p}(z)=\\frac{1}{2\\pi}\\int_{-\\infty}^{\\infty}\n",
@@ -1093,16 +1283,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "d3bfe73f",
-   "metadata": {},
+   "id": "81bef4b0",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "with the integral over $x$ resulting in"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "b0cc0bd3",
-   "metadata": {},
+   "id": "fa89dce4",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "\\int_{-\\infty}^{\\infty}dxp(x)\\exp{\\left(iq(\\mu-x)/m\\right)}=\n",
@@ -1113,8 +1307,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "fe4cdf90",
-   "metadata": {},
+   "id": "9967e011",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Identifying Terms\n",
     "\n",
@@ -1124,8 +1320,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "d50e1049",
-   "metadata": {},
+   "id": "d5bb8edf",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "\\int_{-\\infty}^{\\infty}dxp(x)e^{\\left(iq(\\mu-x)/m\\right)}=\n",
@@ -1135,16 +1333,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "a1661648",
-   "metadata": {},
+   "id": "99cce110",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "resulting in"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "2b91b999",
-   "metadata": {},
+   "id": "d6daa176",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "\\left[\\int_{-\\infty}^{\\infty}dxp(x)\\exp{\\left(iq(\\mu-x)/m\\right)}\\right]^m\\approx\n",
@@ -1154,16 +1356,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "d125b2b0",
-   "metadata": {},
+   "id": "9f2c47a4",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "and in the limit $m\\rightarrow \\infty$ we obtain"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "1a76b424",
-   "metadata": {},
+   "id": "fed9dff9",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "\\tilde{p}(z)=\\frac{1}{\\sqrt{2\\pi}(\\sigma/\\sqrt{m})}\n",
@@ -1173,8 +1379,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "6dd2fdaa",
-   "metadata": {},
+   "id": "ec9e1b49",
+   "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",
@@ -1183,8 +1391,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "50823852",
-   "metadata": {},
+   "id": "1b2affcf",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Wrapping it up\n",
     "\n",
@@ -1200,8 +1410,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "44eb282e",
-   "metadata": {},
+   "id": "5aeac1b9",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "\\sigma_m=\n",
@@ -1211,8 +1423,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "ddb7af3a",
-   "metadata": {},
+   "id": "ea0b2510",
+   "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",
@@ -1221,8 +1435,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "5aba3911",
-   "metadata": {},
+   "id": "08f2490e",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "\\sigma_m\\approx \n",
@@ -1232,8 +1448,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "309c6e8d",
-   "metadata": {},
+   "id": "7fc63b37",
+   "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",
@@ -1250,8 +1468,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "2b8a5825",
-   "metadata": {},
+   "id": "73764f86",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Confidence Intervals\n",
     "\n",
@@ -1271,8 +1491,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "1ac0e0c5",
-   "metadata": {},
+   "id": "28bc2214",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Standard Approach based on the Normal Distribution\n",
     "\n",
@@ -1284,8 +1506,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "965b8861",
-   "metadata": {},
+   "id": "6f066b73",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "\\left(\\mu_{\\beta}\\pm \\frac{z\\sigma_{\\beta}}{\\sqrt{n}}\\right),\n",
@@ -1294,8 +1518,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "6bf20539",
-   "metadata": {},
+   "id": "8d8212d1",
+   "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",
@@ -1312,8 +1538,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "5e5f3caf",
-   "metadata": {},
+   "id": "f21712ad",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Resampling methods: Bootstrap background\n",
     "\n",
@@ -1330,8 +1558,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "e25303c9",
-   "metadata": {},
+   "id": "370f65c8",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Resampling methods: More Bootstrap background\n",
     "\n",
@@ -1352,8 +1582,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "17e45f8a",
-   "metadata": {},
+   "id": "e8f5ddca",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Resampling methods: Bootstrap approach\n",
     "\n",
@@ -1371,8 +1603,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "2b7004da",
-   "metadata": {},
+   "id": "fedb9fdb",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Resampling methods: Bootstrap steps\n",
     "\n",
@@ -1399,8 +1633,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "f74a0ed0",
-   "metadata": {},
+   "id": "177746a6",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Code example for the Bootstrap method\n",
     "\n",
@@ -1421,8 +1657,11 @@
   {
    "cell_type": "code",
    "execution_count": 1,
-   "id": "a046ccd2",
-   "metadata": {},
+   "id": "c1874811",
+   "metadata": {
+    "collapsed": false,
+    "editable": true
+   },
    "outputs": [],
    "source": [
     "%matplotlib inline\n",
@@ -1457,16 +1696,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "73c1644c",
-   "metadata": {},
+   "id": "6dad6de5",
+   "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": "13c58372",
-   "metadata": {},
+   "id": "0342164e",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Plotting the Histogram"
    ]
@@ -1474,8 +1717,11 @@
   {
    "cell_type": "code",
    "execution_count": 2,
-   "id": "d6be834d",
-   "metadata": {},
+   "id": "0c0490cc",
+   "metadata": {
+    "collapsed": false,
+    "editable": true
+   },
    "outputs": [],
    "source": [
     "# the histogram of the bootstrapped data (normalized data if density = True)\n",
@@ -1491,8 +1737,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "e8f4fdb7",
-   "metadata": {},
+   "id": "0adf2510",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## The bias-variance tradeoff\n",
     "\n",
@@ -1507,8 +1755,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "6f25843d",
-   "metadata": {},
+   "id": "df226e05",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "$$\n",
     "\\boldsymbol{y}=f(\\boldsymbol{x}) + \\boldsymbol{\\epsilon}\n",
@@ -1517,8 +1767,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "db90826c",
-   "metadata": {},
+   "id": "1c89ed73",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "where $\\epsilon$ is normally distributed with mean zero and standard deviation $\\sigma^2$.\n",
     "\n",
@@ -1532,8 +1784,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "33d2500c",
-   "metadata": {},
+   "id": "615aae51",
+   "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",
@@ -1542,16 +1796,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "a3a0de2f",
-   "metadata": {},
+   "id": "09df2f76",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "We can rewrite this as"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "d6e85182",
-   "metadata": {},
+   "id": "bc115459",
+   "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",
@@ -1560,8 +1818,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "30a7b4c7",
-   "metadata": {},
+   "id": "a897d31c",
+   "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",
@@ -1575,8 +1835,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "5ee89617",
-   "metadata": {},
+   "id": "f35ccec2",
+   "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",
@@ -1585,16 +1847,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "de83691d",
-   "metadata": {},
+   "id": "f78963d0",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "and adding and subtracting $\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right]$ we get"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "74579267",
-   "metadata": {},
+   "id": "5da42dc1",
+   "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",
@@ -1603,16 +1869,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "c0e678ce",
-   "metadata": {},
+   "id": "681e6f51",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "which, using the abovementioned expectation values can be rewritten as"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "2499b0f3",
-   "metadata": {},
+   "id": "0cfeef23",
+   "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",
@@ -1621,16 +1891,20 @@
   },
   {
    "cell_type": "markdown",
-   "id": "16e98eff",
-   "metadata": {},
+   "id": "543454fe",
+   "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": "9be47ff7",
-   "metadata": {},
+   "id": "9b876527",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## A way to Read the Bias-Variance Tradeoff\n",
     "\n",
@@ -1643,8 +1917,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "4b95d638",
-   "metadata": {},
+   "id": "3c700f4e",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Example code for Bias-Variance tradeoff"
    ]
@@ -1652,8 +1928,11 @@
   {
    "cell_type": "code",
    "execution_count": 3,
-   "id": "e17ef0cf",
-   "metadata": {},
+   "id": "99d2acd5",
+   "metadata": {
+    "collapsed": false,
+    "editable": true
+   },
    "outputs": [],
    "source": [
     "import matplotlib.pyplot as plt\n",
@@ -1714,291 +1993,23 @@
   },
   {
    "cell_type": "markdown",
-   "id": "a06edf03",
-   "metadata": {},
+   "id": "b41ce01c",
+   "metadata": {
+    "editable": true
+   },
    "source": [
     "## Understanding what happens"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
-   "id": "b1683030",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Polynomial degree: 0\n",
-      "Error: 0.26087768276700507\n",
-      "Bias^2: 0.26052569836894607\n",
-      "Var: 0.0003519843980589661\n",
-      "0.26087768276700507 >= 0.26052569836894607 + 0.0003519843980589661 = 0.260877682767005\n",
-      "Polynomial degree: 1\n",
-      "Error: 0.053382765951161\n",
-      "Bias^2: 0.05318651093756057\n",
-      "Var: 0.00019625501360042666\n",
-      "0.053382765951161 >= 0.05318651093756057 + 0.00019625501360042666 = 0.053382765951160996\n",
-      "Polynomial degree: 2\n",
-      "Error: 0.043773583720810236\n",
-      "Bias^2: 0.04357423223551591\n",
-      "Var: 0.0001993514852943263\n",
-      "0.043773583720810236 >= 0.04357423223551591 + 0.0001993514852943263 = 0.043773583720810236\n",
-      "Polynomial degree: 3\n",
-      "Error: 0.031197038899385843\n",
-      "Bias^2: 0.031066627201582195\n",
-      "Var: 0.00013041169780364612\n",
-      "0.031197038899385843 >= 0.031066627201582195 + 0.00013041169780364612 = 0.03119703889938584\n",
-      "Polynomial degree: 4\n",
-      "Error: 0.0314520403303261\n",
-      "Bias^2: 0.03128384737396597\n",
-      "Var: 0.00016819295636012516\n",
-      "0.0314520403303261 >= 0.03128384737396597 + 0.00016819295636012516 = 0.0314520403303261\n",
-      "Polynomial degree: 5\n",
-      "Error: 0.024294961154836755\n",
-      "Bias^2: 0.02409573927327434\n",
-      "Var: 0.00019922188156241302\n",
-      "0.024294961154836755 >= 0.02409573927327434 + 0.00019922188156241302 = 0.02429496115483675\n",
-      "Polynomial degree: 6\n",
-      "Error: 0.018177990988184744\n",
-      "Bias^2: 0.01799289126766685\n",
-      "Var: 0.00018509972051789446\n",
-      "0.018177990988184744 >= 0.01799289126766685 + 0.00018509972051789446 = 0.018177990988184744\n",
-      "Polynomial degree: 7\n",
-      "Error: 0.0164184810055001\n",
-      "Bias^2: 0.01625085395344992\n",
-      "Var: 0.00016762705205017835\n",
-      "0.0164184810055001 >= 0.01625085395344992 + 0.00016762705205017835 = 0.016418481005500096\n",
-      "Polynomial degree: 8\n",
-      "Error: 0.01020684772021719\n",
-      "Bias^2: 0.010081119284821378\n",
-      "Var: 0.00012572843539581356\n",
-      "0.01020684772021719 >= 0.010081119284821378 + 0.00012572843539581356 = 0.010206847720217191\n",
-      "Polynomial degree: 9\n",
-      "Error: 0.010228115989514792\n",
-      "Bias^2: 0.010094633970070366\n",
-      "Var: 0.00013348201944442503\n",
-      "0.010228115989514792 >= 0.010094633970070366 + 0.00013348201944442503 = 0.01022811598951479\n",
-      "Polynomial degree: 10\n",
-      "Error: 0.008951315810806517\n",
-      "Bias^2: 0.00880297022563693\n",
-      "Var: 0.000148345585169585\n",
-      "0.008951315810806517 >= 0.00880297022563693 + 0.000148345585169585 = 0.008951315810806515\n",
-      "Polynomial degree: 11\n",
-      "Error: 0.008898789089522704\n",
-      "Bias^2: 0.00875590484598168\n",
-      "Var: 0.00014288424354101897\n",
-      "0.008898789089522704 >= 0.00875590484598168 + 0.00014288424354101897 = 0.008898789089522699\n",
-      "Polynomial degree: 12\n",
-      "Error: 0.008839839939962282\n",
-      "Bias^2: 0.008683837354608\n",
-      "Var: 0.00015600258535427978\n",
-      "0.008839839939962282 >= 0.008683837354608 + 0.00015600258535427978 = 0.00883983993996228\n",
-      "Polynomial degree: 13\n",
-      "Error: 0.008851338849048464\n",
-      "Bias^2: 0.008688870535565938\n",
-      "Var: 0.00016246831348252483\n",
-      "0.008851338849048464 >= 0.008688870535565938 + 0.00016246831348252483 = 0.008851338849048464\n",
-      "Polynomial degree: 14\n",
-      "Error: 0.008895421746691404\n",
-      "Bias^2: 0.008718627886000963\n",
-      "Var: 0.00017679386069043918\n",
-      "0.008895421746691404 >= 0.008718627886000963 + 0.00017679386069043918 = 0.008895421746691402\n",
-      "Polynomial degree: 15\n",
-      "Error: 0.008932967116758986\n",
-      "Bias^2: 0.008735995659993315\n",
-      "Var: 0.00019697145676567462\n",
-      "0.008932967116758986 >= 0.008735995659993315 + 0.00019697145676567462 = 0.00893296711675899\n",
-      "Polynomial degree: 16\n",
-      "Error: 0.008904000035542576\n",
-      "Bias^2: 0.008699622553495729\n",
-      "Var: 0.00020437748204684455\n",
-      "0.008904000035542576 >= 0.008699622553495729 + 0.00020437748204684455 = 0.008904000035542573\n",
-      "Polynomial degree: 17\n",
-      "Error: 0.008915069191301441\n",
-      "Bias^2: 0.00871735115108329\n",
-      "Var: 0.00019771804021815375\n",
-      "0.008915069191301441 >= 0.00871735115108329 + 0.00019771804021815375 = 0.008915069191301443\n",
-      "Polynomial degree: 18\n",
-      "Error: 0.009093807326424501\n",
-      "Bias^2: 0.008873475025479716\n",
-      "Var: 0.0002203323009447844\n",
-      "0.009093807326424501 >= 0.008873475025479716 + 0.0002203323009447844 = 0.009093807326424501\n",
-      "Polynomial degree: 19\n",
-      "Error: 0.009062199881168879\n",
-      "Bias^2: 0.008811578025900645\n",
-      "Var: 0.0002506218552682355\n",
-      "0.009062199881168879 >= 0.008811578025900645 + 0.0002506218552682355 = 0.00906219988116888\n",
-      "Polynomial degree: 20\n",
-      "Error: 0.009054865138037726\n",
-      "Bias^2: 0.008808460156687027\n",
-      "Var: 0.00024640498135069936\n",
-      "0.009054865138037726 >= 0.008808460156687027 + 0.00024640498135069936 = 0.009054865138037726\n",
-      "Polynomial degree: 21\n",
-      "Error: 0.00912268405722436\n",
-      "Bias^2: 0.008858372442362471\n",
-      "Var: 0.0002643116148618916\n",
-      "0.00912268405722436 >= 0.008858372442362471 + 0.0002643116148618916 = 0.009122684057224363\n",
-      "Polynomial degree: 22\n",
-      "Error: 0.009155486194949514\n",
-      "Bias^2: 0.008877201316556125\n",
-      "Var: 0.0002782848783933875\n",
-      "0.009155486194949514 >= 0.008877201316556125 + 0.0002782848783933875 = 0.009155486194949512\n",
-      "Polynomial degree: 23\n",
-      "Error: 0.009104867563459794\n",
-      "Bias^2: 0.0088292323891204\n",
-      "Var: 0.00027563517433939545\n",
-      "0.009104867563459794 >= 0.0088292323891204 + 0.00027563517433939545 = 0.009104867563459795\n",
-      "Polynomial degree: 24\n",
-      "Error: 0.009083437391142686\n",
-      "Bias^2: 0.008794696409764009\n",
-      "Var: 0.00028874098137867695\n",
-      "0.009083437391142686 >= 0.008794696409764009 + 0.00028874098137867695 = 0.009083437391142686\n",
-      "Polynomial degree: 25\n",
-      "Error: 0.00910156925073765\n",
-      "Bias^2: 0.008785455405617175\n",
-      "Var: 0.0003161138451204712\n",
-      "0.00910156925073765 >= 0.008785455405617175 + 0.0003161138451204712 = 0.009101569250737646\n",
-      "Polynomial degree: 26\n",
-      "Error: 0.009185507602920735\n",
-      "Bias^2: 0.00873816971780028\n",
-      "Var: 0.00044733788512045286\n",
-      "0.009185507602920735 >= 0.00873816971780028 + 0.00044733788512045286 = 0.009185507602920733\n",
-      "Polynomial degree: 27\n",
-      "Error: 0.009274224547403512\n",
-      "Bias^2: 0.008747661212156959\n",
-      "Var: 0.0005265633352465514\n",
-      "0.009274224547403512 >= 0.008747661212156959 + 0.0005265633352465514 = 0.00927422454740351\n",
-      "Polynomial degree: 28\n",
-      "Error: 0.00944673261149924\n",
-      "Bias^2: 0.00876350459088093\n",
-      "Var: 0.0006832280206183078\n",
-      "0.00944673261149924 >= 0.00876350459088093 + 0.0006832280206183078 = 0.009446732611499238\n",
-      "Polynomial degree: 29\n",
-      "Error: 0.012311745536862505\n",
-      "Bias^2: 0.009560640117776392\n",
-      "Var: 0.0027511054190861163\n",
-      "0.012311745536862505 >= 0.009560640117776392 + 0.0027511054190861163 = 0.012311745536862508\n",
-      "Polynomial degree: 30\n",
-      "Error: 0.02849439984617373\n",
-      "Bias^2: 0.015243987646080783\n",
-      "Var: 0.013250412200092949\n",
-      "0.02849439984617373 >= 0.015243987646080783 + 0.013250412200092949 = 0.028494399846173732\n",
-      "Polynomial degree: 31\n",
-      "Error: 0.08289645771761599\n",
-      "Bias^2: 0.060283643877875985\n",
-      "Var: 0.02261281383974001\n",
-      "0.08289645771761599 >= 0.060283643877875985 + 0.02261281383974001 = 0.082896457717616\n",
-      "Polynomial degree: 32\n",
-      "Error: 0.18911893741671232\n",
-      "Bias^2: 0.09146084753533472\n",
-      "Var: 0.0976580898813776\n",
-      "0.18911893741671232 >= 0.09146084753533472 + 0.0976580898813776 = 0.18911893741671232\n",
-      "Polynomial degree: 33\n",
-      "Error: 2.4010681634997586\n",
-      "Bias^2: 0.48271374833555614\n",
-      "Var: 1.9183544151642025\n",
-      "2.4010681634997586 >= 0.48271374833555614 + 1.9183544151642025 = 2.4010681634997586\n",
-      "Polynomial degree: 34\n",
-      "Error: 0.05689740059678373\n",
-      "Bias^2: 0.032241213849705644\n",
-      "Var: 0.024656186747078087\n",
-      "0.05689740059678373 >= 0.032241213849705644 + 0.024656186747078087 = 0.056897400596783734\n",
-      "Polynomial degree: 35\n",
-      "Error: 0.3127451085722089\n",
-      "Bias^2: 0.3081987152256763\n",
-      "Var: 0.004546393346532509\n",
-      "0.3127451085722089 >= 0.3081987152256763 + 0.004546393346532509 = 0.31274510857220883\n",
-      "Polynomial degree: 36\n",
-      "Error: 0.34082095127253387\n",
-      "Bias^2: 0.3394552569869071\n",
-      "Var: 0.0013656942856268444\n",
-      "0.34082095127253387 >= 0.3394552569869071 + 0.0013656942856268444 = 0.3408209512725339\n",
-      "Polynomial degree: 37\n",
-      "Error: 0.352747701411459\n",
-      "Bias^2: 0.3442327814367936\n",
-      "Var: 0.008514919974665401\n",
-      "0.352747701411459 >= 0.3442327814367936 + 0.008514919974665401 = 0.352747701411459\n",
-      "Polynomial degree: 38\n",
-      "Error: 0.37322027353930937\n",
-      "Bias^2: 0.36727666819269905\n",
-      "Var: 0.005943605346610325\n",
-      "0.37322027353930937 >= 0.36727666819269905 + 0.005943605346610325 = 0.37322027353930937\n",
-      "Polynomial degree: 39\n",
-      "Error: 0.4048105171966997\n",
-      "Bias^2: 0.3998512739866294\n",
-      "Var: 0.004959243210070291\n",
-      "0.4048105171966997 >= 0.3998512739866294 + 0.004959243210070291 = 0.4048105171966997\n",
-      "Polynomial degree: 40\n",
-      "Error: 0.42537069203616906\n",
-      "Bias^2: 0.4165364409129718\n",
-      "Var: 0.008834251123197237\n",
-      "0.42537069203616906 >= 0.4165364409129718 + 0.008834251123197237 = 0.42537069203616906\n",
-      "Polynomial degree: 41\n",
-      "Error: 0.4355831719811409\n",
-      "Bias^2: 0.43373662458467394\n",
-      "Var: 0.001846547396466884\n",
-      "0.4355831719811409 >= 0.43373662458467394 + 0.001846547396466884 = 0.4355831719811408\n",
-      "Polynomial degree: 42\n",
-      "Error: 0.4478401270120048\n",
-      "Bias^2: 0.44537583556667565\n",
-      "Var: 0.0024642914453292435\n",
-      "0.4478401270120048 >= 0.44537583556667565 + 0.0024642914453292435 = 0.4478401270120049\n"
-     ]
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Polynomial degree: 43\n",
-      "Error: 0.4564709427545734\n",
-      "Bias^2: 0.45377609651649436\n",
-      "Var: 0.0026948462380790034\n",
-      "0.4564709427545734 >= 0.45377609651649436 + 0.0026948462380790034 = 0.4564709427545734\n",
-      "Polynomial degree: 44\n",
-      "Error: 0.4730164264813733\n",
-      "Bias^2: 0.4632737444806102\n",
-      "Var: 0.009742682000763057\n",
-      "0.4730164264813733 >= 0.4632737444806102 + 0.009742682000763057 = 0.47301642648137326\n",
-      "Polynomial degree: 45\n",
-      "Error: 0.47505408122468623\n",
-      "Bias^2: 0.47276106984098026\n",
-      "Var: 0.0022930113837060315\n",
-      "0.47505408122468623 >= 0.47276106984098026 + 0.0022930113837060315 = 0.4750540812246863\n",
-      "Polynomial degree: 46\n",
-      "Error: 0.514492902795432\n",
-      "Bias^2: 0.4799234469085893\n",
-      "Var: 0.03456945588684266\n",
-      "0.514492902795432 >= 0.4799234469085893 + 0.03456945588684266 = 0.5144929027954319\n",
-      "Polynomial degree: 47\n",
-      "Error: 0.5505384062045471\n",
-      "Bias^2: 0.4976140918000629\n",
-      "Var: 0.05292431440448426\n",
-      "0.5505384062045471 >= 0.4976140918000629 + 0.05292431440448426 = 0.5505384062045472\n",
-      "Polynomial degree: 48\n",
-      "Error: 0.5356597682896093\n",
-      "Bias^2: 0.5099048212016964\n",
-      "Var: 0.02575494708791279\n",
-      "0.5356597682896093 >= 0.5099048212016964 + 0.02575494708791279 = 0.5356597682896093\n",
-      "Polynomial degree: 49\n",
-      "Error: 0.529830544596258\n",
-      "Bias^2: 0.5156338306736451\n",
-      "Var: 0.014196713922612807\n",
-      "0.529830544596258 >= 0.5156338306736451 + 0.014196713922612807 = 0.5298305445962579\n"
-     ]
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGfCAYAAACNytIiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABR/UlEQVR4nO3deXyU5b3//9c9SyZ7QoBsEiBhEwEXlioqCMWi0Hrw6Dna0x61p2prRauiP5Vau59iq1Vq61JPFVxapT2otdWj8G1ZrIgVxIqAyBIIQkJYs2dm7pn798csmSEJJCFh5k7ezz7mkZl7yVxzkyZvr+tzXbdhWZaFiIiISII4Et0AERER6dsURkRERCShFEZEREQkoRRGREREJKEURkRERCShFEZEREQkoRRGREREJKEURkRERCShFEZEREQkoRRGREREJKFcnTl4wYIFvPzyy3zyySekpaVx/vnn87Of/YxRo0a1e87KlSuZPn16q+1btmzh9NNP79D7BoNB9u3bR1ZWFoZhdKbJIiIikiCWZVFXV0dxcTEOR/v9H50KI6tWrWLu3LlMmjQJ0zS57777mDlzJps3byYjI+O4527dupXs7Ozo64EDB3b4ffft20dJSUlnmioiIiJJYs+ePQwaNKjd/Z0KI2+++Wbc60WLFpGfn8/69euZOnXqcc/Nz88nNze3M28XlZWVBYQ+TGygERERkeRVW1tLSUlJ9O94ezoVRo5VU1MDQF5e3gmPPeecc2hubuaMM87gu9/9bptDNxFerxev1xt9XVdXB0B2drbCiIiIiM2cqMSiywWslmUxb948LrzwQsaOHdvucUVFRTz11FMsXbqUl19+mVGjRjFjxgxWr17d7jkLFiwgJycn+tAQjYiISO9lWJZldeXEuXPn8vrrr/P3v//9uONAbbnsssswDIPXXnutzf3H9oxEunlqamrUMyIiImITtbW15OTknPDvd5d6Rm699VZee+01VqxY0ekgAnDeeeexbdu2dvd7PJ7okIyGZkRERHq3TtWMWJbFrbfeyiuvvMLKlSspLS3t0ptu2LCBoqKiLp0rIiK9m2VZmKZJIBBIdFPkBJxOJy6X66SX3ehUGJk7dy6///3v+dOf/kRWVhZVVVUA5OTkkJaWBsD8+fPZu3cvzz33HAALFy5k6NChjBkzBp/PxwsvvMDSpUtZunTpSTVcRER6H5/PR2VlJY2NjYluinRQeno6RUVFpKSkdPl7dCqMPPHEEwBMmzYtbvuiRYv42te+BkBlZSUVFRXRfT6fj7vuuou9e/eSlpbGmDFjeP3115k9e3aXGy0iIr1PMBikvLwcp9NJcXExKSkpWugyiVmWhc/n48CBA5SXlzNixIjjLmx2PF0uYD2VOloAIyIi9tXc3Ex5eTlDhgwhPT090c2RDmpsbGT37t2UlpaSmpoat69HC1hFRER6Slf/61oSozv+vfQvLiIiIgmlMCIiIiIJpTAiIiIiCaUwIiIicpK+9rWvYRhGq8ell16a6KbZwkndKE9ERBJjxdZqahr9XH7OaYluioRdeumlLFq0KG6bx+Np81i/34/b7T7hto7o6nnJRD0jIiI29O3fb+COP3zI4QZfopvSYyzLotFnJuTRlVUvPB4PhYWFcY9+/foBobvWPvnkk8yZM4eMjAx+8pOf8IMf/ICzzz6bZ555hrKyMjweD5ZlUVFRwZw5c8jMzCQ7O5urrrqK/fv3R9+nvfPsTD0jIiI2Ewha1HlNAOqbTfIyur7yZTJr8gc443tvJeS9N//oEtJTuvdP5Pe//30WLFjAI488gtPpZNGiRWzfvp0//OEPLF26FKfTCcDll19ORkYGq1atwjRNbr75Zq6++mpWrlwZ/V5tnWdnCiMiIjbjM4PR515T929JFn/5y1/IzMyM23bPPfdw//33A/CVr3yFr3/963H7fT4fzz//PAMHDgRg+fLlfPTRR5SXl1NSUgLA888/z5gxY3j//feZNGlSm+fZncKIiIjNxAYQb0ww6W3S3E42/+iShL13Z02fPj1625SIvLy86POJEye2OmfIkCFxgWLLli2UlJREgwjAGWecQW5uLlu2bImGkWPPszuFERERm4kNIL5A7w0jhmF0+1BJT8rIyGD48OHH3X+ibZZltXk/nmO3t/W97EwFrCIiNhM7TOPrxT0jfdEZZ5xBRUUFe/bsiW7bvHkzNTU1jB49OoEt61n2iZwiIgLED9MojCQPr9dLVVVV3DaXy8WAAQM6/D0uvvhizjzzTL761a+ycOHCaAHrRRdd1OYwT2+hnhEREZvxxhWwKowkizfffJOioqK4x4UXXtip72EYBq+++ir9+vVj6tSpXHzxxZSVlbFkyZIeanVyMCwbTE7u6C2IRUT6gg8qjnDF42sAeOwr4/nimUUJblH3aG5upry8vM1b0UvyOt6/W0f/fqtnRETEZrz+2AJWTe0V+1MYERGxmdgZNKoZkd5AYURExGa8fhWwSu+iMCIiYjOxPSMqYJXeQGFERMRmYmtGFEakN1AYERGxGa8WPZNeRmFERMRmfLGLnvXi5eCl71AYERGxGfWMSG+jMCIiYjO6N430NgojIiI2E78cvBY9S7Rp06Zx++23t7t/6NChLFy48JS1x450ozwREZvRjfLs5f333ycjIyPRzUhqCiMiIjYTN0yjAtakN3DgwEQ3IelpmEZExGb6TAGrZYGvITGPTt5D1jRNbrnlFnJzc+nfvz/f/e53idyH9thhmocffphx48aRkZFBSUkJN998M/X19dH9u3fv5rLLLqNfv35kZGQwZswY3njjjW65pMlKPSMiIjbjM/vIomf+RvhpcWLe+zv7IKXjQyvPPvss119/Pe+99x7r1q3jG9/4BkOGDOHGG29sdazD4eDRRx9l6NChlJeXc/PNN3P33Xfz+OOPAzB37lx8Ph+rV68mIyODzZs3k5mZ2W0fLRkpjIiI2Eyf6RmxkZKSEh555BEMw2DUqFFs3LiRRx55pM0wElvsWlpayo9//GO+9a1vRcNIRUUFV155JePGjQOgrKzslHyGRFIYERGxmdgC1l7dM+JOD/VQJOq9O+G8887DMIzo68mTJ/OLX/yCQKD1bKcVK1bw05/+lM2bN1NbW4tpmjQ3N9PQ0EBGRgbf/va3+da3vsWyZcu4+OKLufLKKznzzDNP+iMlM9WMiIjYTJ/pGTGM0FBJIh4xwaI77d69m9mzZzN27FiWLl3K+vXreeyxxwDw+/0A3HDDDezcuZNrrrmGjRs3MnHiRH71q1/1SHuShcKIiIjNeDWbJumsXbu21esRI0bgdDrjtq9btw7TNPnFL37Beeedx8iRI9m3r3XvT0lJCTfddBMvv/wyd955J//zP//To+1PNIURERGb6TM9IzayZ88e5s2bx9atW3nxxRf51a9+xW233dbquGHDhmGaJr/61a/YuXMnzz//PE8++WTcMbfffjtvvfUW5eXlfPDBB/ztb39j9OjRp+qjJITCiIiIzWg5+ORz7bXX0tTUxOc+9znmzp3Lrbfeyje+8Y1Wx5199tk8/PDD/OxnP2Ps2LH87ne/Y8GCBXHHBAIB5s6dy+jRo7n00ksZNWpUtLi1tzIsq5OTqROgtraWnJwcampqyM7OTnRzREQS6vO/WMnOAw0A9Et3s+F7MxPcou7R3NxMeXk5paWlpKamJro50kHH+3fr6N9v9YyIiNiMekakt1EYERGxGRWwSm+jMCIiYjNef8vaFf6ARTCY9KPtIselMCIiYjPH9oaod0TsTmFERMRGLMtqteqqwojYncKIiIiNmEGr1Q1lvX6FEbE3hRERERtp61406hkRu1MYERGxkdji1YyU0FLjmt4rdqcwIiJiI5FeELfTINWtMCK9g8KIiIiNROpDPC4nKa7Qr3CFkd7JMAxeffXVRDfjlFAYERGxkUjPSIrLEQ0jXjNwvFOkB1122WVcfPHFbe579913MQyDDz74oEvfu7KyklmzZp1M82xDYURExEZaekYceNQzknDXX389f/vb39i9e3erfc888wxnn30248eP79T39Pl8ABQWFuLxeLqlnclOYURExEYivSCe2J6RXjqbxrIsGv2NCXl09B6yX/rSl8jPz2fx4sVx2xsbG1myZAmXX345//Ef/8GgQYNIT09n3LhxvPjii3HHTps2jVtuuYV58+YxYMAAvvCFLwCth2nuueceRo4cSXp6OmVlZdx///34/f7o/h/84AecffbZPP/88wwdOpScnBy+/OUvU1dXFz0mGAzys5/9jOHDh+PxeBg8eDD//d//Hd2/d+9err76avr160f//v2ZM2cOu3bt6uC/WNe5evwdRESk20R6QVJcDlKcvbtnpMls4tzfn5uQ937vK++R7k4/4XEul4trr72WxYsX873vfQ/DMAD44x//iM/n44YbbuDFF1/knnvuITs7m9dff51rrrmGsrIyzj235bM9++yzfOtb3+Kdd95pNwhlZWWxePFiiouL2bhxIzfeeCNZWVncfffd0WN27NjBq6++yl/+8heOHDnCVVddxQMPPBANHPPnz+d//ud/eOSRR7jwwguprKzkk08+AUIBavr06UyZMoXVq1fjcrn4yU9+wqWXXspHH31ESkpKl6/niSiMiIjYSGSdERWwJo+vf/3rPPjgg6xcuZLp06cDoSGaK664gtNOO4277roreuytt97Km2++yR//+Me4MDJ8+HB+/vOfH/d9vvvd70afDx06lDvvvJMlS5bEhZFgMMjixYvJysoC4JprruGvf/0r//3f/01dXR2//OUv+fWvf811110HwLBhw7jwwgsBeOmll3A4HPz2t7+NhqpFixaRm5vLypUrmTlz5slcpuNSGBERsRFvbM+Iq3dP7U1zpfHeV95L2Ht31Omnn87555/PM888w/Tp09mxYwdvv/02y5YtIxAI8MADD7BkyRL27t2L1+vF6/WSkZER9z0mTpx4wvf53//9XxYuXMj27dupr6/HNE2ys7Pjjhk6dGg0iAAUFRVRXV0NwJYtW/B6vcyYMaPN779+/Xq2b98edz5Ac3MzO3bs6NC16CqFERERG4mtGfFEZ9P0zjBiGEaHhkqSwfXXX88tt9zCY489xqJFixgyZAgzZszgwQcf5JFHHmHhwoWMGzeOjIwMbr/99miRasSx4eRYa9eu5ctf/jI//OEPueSSS8jJyeGll17iF7/4Rdxxbrc77rVhGASDoZ+PtLTjB6xgMMiECRP43e9+12rfwIEDj3vuyVIYERGxkZZhGkfMMI2m9ibaVVddxW233cbvf/97nn32WW688UYMw+Dtt99mzpw5/Od//icQ+oO/bds2Ro8e3anv/8477zBkyBDuu+++6La2ZvAcz4gRI0hLS+Ovf/0rN9xwQ6v948ePZ8mSJeTn57fqcelpmk0jImIjsQWsnkgBay+dTWMnmZmZXH311XznO99h3759fO1rXwNCtSDLly9nzZo1bNmyhW9+85tUVVV1+vsPHz6ciooKXnrpJXbs2MGjjz7KK6+80qnvkZqayj333MPdd9/Nc889x44dO1i7di1PP/00AF/96lcZMGAAc+bM4e2336a8vJxVq1Zx22238dlnn3W6zZ2hMCIiYiMqYE1e119/PUeOHOHiiy9m8ODBANx///2MHz+eSy65hGnTplFYWMjll1/e6e89Z84c7rjjDm655RbOPvts1qxZw/3339/p73P//fdz55138r3vfY/Ro0dz9dVXR2tK0tPTWb16NYMHD+aKK65g9OjRfP3rX6epqanHe0oMq6OTqROotraWnJwcampqTnnXkYhIMnl85XZ+/uZW/m3CINJTnDz37m6+/fnhzJs5KtFNO2nNzc2Ul5dTWlpKampqopsjHXS8f7eO/v1Wz4iIiI34YmtGnL27gFX6DoUREREbiR2m8bgVRqR36FQYWbBgAZMmTSIrK4v8/Hwuv/xytm7desLzVq1axYQJE0hNTaWsrIwnn3yy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MGXKFGbNmkVFRUWim2Z7DQ0NnHXWWfz6179uc//Pf/5zHn74YX7961/z/vvvU1hYyBe+8IXoDRGlc1atWsXcuXNZu3Yty5cvxzRNZs6cSUNDQ/QYXfPuM2jQIB544AHWrVvHunXr+PznP8+cOXOiv5B1rXvG+++/z1NPPcWZZ54Zt13Xu/uNGTOGysrK6GPjxo3RfT12va0+6nOf+5x10003xW07/fTTrXvvvTdBLeqdAOuVV16Jvg4Gg1ZhYaH1wAMPRLc1NzdbOTk51pNPPpmAFvY+1dXVFmCtWrXKsixd81OhX79+1m9/+1td6x5SV1dnjRgxwlq+fLl10UUXWbfddptlWfrZ7gnf//73rbPOOqvNfT15vftkz4jP52P9+vXMnDkzbvvMmTNZs2ZNglrVN5SXl1NVVRV37T0eDxdddJGufTepqakBIC8vD9A170mBQICXXnqJhoYGJk+erGvdQ+bOncsXv/hFLr744rjtut49Y9u2bRQXF1NaWsqXv/xldu7cCfTs9bbFXXu728GDBwkEAhQUFMRtLygooKqqKkGt6hsi17eta7979+5ENKlXsSyLefPmceGFFzJ27FhA17wnbNy4kcmTJ9Pc3ExmZiavvPIKZ5xxRvQXsq5193nppZf44IMPeP/991vt08929zv33HN57rnnGDlyJPv37+cnP/kJ559/Pps2berR690nw0iEYRhxry3LarVNeoaufc+45ZZb+Oijj/j73//eap+uefcZNWoUH374IUePHmXp0qVcd911rFq1Krpf17p77Nmzh9tuu41ly5aRmpra7nG63t1n1qxZ0efjxo1j8uTJDBs2jGeffZbzzjsP6Jnr3SeHaQYMGIDT6WzVC1JdXd0q8Un3ilRl69p3v1tvvZXXXnuNFStWMGjQoOh2XfPul5KSwvDhw5k4cSILFizgrLPO4pe//KWudTdbv3491dXVTJgwAZfLhcvlYtWqVTz66KO4XK7oNdX17jkZGRmMGzeObdu29ejPd58MIykpKUyYMIHly5fHbV++fDnnn39+glrVN5SWllJYWBh37X0+H6tWrdK17yLLsrjlllt4+eWX+dvf/kZpaWncfl3znmdZFl6vV9e6m82YMYONGzfy4YcfRh8TJ07kq1/9Kh9++CFlZWW63j3M6/WyZcsWioqKevbn+6TKX23spZdestxut/X0009bmzdvtm6//XYrIyPD2rVrV6KbZnt1dXXWhg0brA0bNliA9fDDD1sbNmywdu/ebVmWZT3wwANWTk6O9fLLL1sbN260/uM//sMqKiqyamtrE9xye/rWt75l5eTkWCtXrrQqKyujj8bGxugxuubdZ/78+dbq1aut8vJy66OPPrK+853vWA6Hw1q2bJllWbrWPS12No1l6Xp3tzvvvNNauXKltXPnTmvt2rXWl770JSsrKyv6t7GnrnefDSOWZVmPPfaYNWTIECslJcUaP358dCqknJwVK1ZYQKvHddddZ1lWaHrY97//fauwsNDyeDzW1KlTrY0bNya20TbW1rUGrEWLFkWP0TXvPl//+tejvzcGDhxozZgxIxpELEvXuqcdG0Z0vbvX1VdfbRUVFVlut9sqLi62rrjiCmvTpk3R/T11vQ3LsqyT61sRERER6bo+WTMiIiIiyUNhRERERBJKYUREREQSSmFEREREEkphRERERBJKYUREREQSSmFEREREEkphRERERBJKYUREREQSSmFEREREEkphRERERBLq/wf70/BAwYZl4AAAAABJRU5ErkJggg==",
-      "text/plain": [
-       "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": 4, + "id": "7c40879d", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", @@ -2010,9 +2021,9 @@ "\n", "np.random.seed(2018)\n", "\n", - "n = 1000\n", + "n = 40\n", "n_boostraps = 100\n", - "maxdegree = 50\n", + "maxdegree = 14\n", "\n", "\n", "# Make data set.\n", @@ -2050,8 +2061,10 @@ }, { "cell_type": "markdown", - "id": "76f9645e", - "metadata": {}, + "id": "494b741b", + "metadata": { + "editable": true + }, "source": [ "## Summing up\n", "\n", @@ -2086,61 +2099,12 @@ }, { "cell_type": "markdown", - "id": "5c31a534", - "metadata": {}, + "id": "68d67d77", + "metadata": { + "editable": true + }, "source": [ - "## Another Example from Scikit-Learn's Repository" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "55cc9c2b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "============================\n", - "Underfitting vs. Overfitting\n", - "============================\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** / **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.\n", - "\n" - ] - }, - { - "data": { - "image/png": "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mzYtyzF069aN2bNnU7VqVUJDQ6+433fffUdqaipNmzbN8vlFRCS94pL7GzZsyKJFizJsf/TRR4mJiWHChAlUqFDBpXOKiBR0xSXH54ZJkyYBaCnsYk4FGckXGzdudM7LPHbsGH/++ScTJkzAZrPx008/UapUKee+n376KZ07d6Zjx44MHDiQ8PBwoqOj2bJlC2vWrHEm5Oeee45ff/2V9u3b89xzz+Hr68v48eOJi4sDslZtfuWVV/j9999p3rw5I0aMoGbNmiQkJLBnzx5mz57N+PHjqVChAnfddRfffvstXbp04ZFHHuH666/H09OTAwcOsGjRIrp3737VoYbTp08H7H81BfvSf44VN3r37u36N1VEpIArzrk/JCTE+dfhS7enpKRk+piISGFSnHO8Q1Y+3//555+8/vrr9OzZkypVqpCQkMCcOXP47LPPaNeuHbfccouL33kpUtzcVFiKOEcXdsfNy8vLlC5d2rRu3dq88cYb5tixY5ket379enPHHXeY0qVLG09PT1O2bFnTrl07M378+HT7/fnnn6Zp06bG29vblC1b1jz11FPmzTffNIA5ffq0c7/IyEjTtWvXTK91/PhxM2LECFO5cmXj6elpwsLCTOPGjc1zzz1nYmNjnfslJyebd955xzRo0MD4+PiYgIAAU6tWLTN06FATFRV11e/Fxd+HS28iIkWJcv/laZUlESnslOMvyMrn+6ioKNOlSxcTHh5uvL29jY+Pj7nmmmvM66+/bhISEq56DSnaLMZc1AJbpAi4+eab2bNnD9u3b3d3KCIikk+U+0VEii7leCmqNGVJCrXHH3+cRo0aERERQXR0NN9++y2///47X375pbtDExGRPKLcLyJSdCnHS3GigowUaqmpqbz44oscOXIEi8VCnTp1mDx5Mn379nV3aCIikkeU+0VEii7leClONGVJRERERERERCSfadFzEREREREREZF8poKMiIiIiIiIiEg+K/YFmYkTJ2KxWLBYLCxevDjD48YYqlWrhsVioU2bNukeO3nyJCNHjqROnTr4+/sTHBxMrVq16NevHxs2bMj0GpndMrtufnn++eexWCzUq1cvy8fs2rWLXr16ERISQkBAAB06dGDNmjUZ9jtz5gzPPfccNWrUwM/Pj/DwcG6//XY2bdqUm0/B6bvvvqNhw4b4+PhQvnx5Hn30UWJjY9Ptc/bsWZ5++mluvvlmSpUqhcViYdSoUZc9Z3JyMrVq1WL06NG5Fmd0dDSenp789NNPOT6Xq6/fF198QY8ePahUqRK+vr5Uq1aNYcOGcfjw4Qz7VqpUKdOf1wceeCDHcWcmt1+/Vq1a8eijj+ZJrFK4Ke+7ljemTp1Kq1atKFOmDN7e3pQvX55bbrmF5cuXp9vv8OHDPP/88zRr1oySJUsSFBRE48aN+eyzz0hNTc2Lp5KlvLFw4UIGDRpErVq18Pf3Jzw8nO7du7N69epMz1nQ8n6bNm2u+LN05MiRq56jML9vu/L6Ke9LccvvBw4c4NFHH6V169aEhIRgsViYOHGiS+eYMWMGLVq0ICwsjJCQEK6//nomT56cYb/BgwdTr149QkJC8PX1pUaNGjz11FOcOHEil55N1iUnJ/Pyyy9TqVIlvL29qVWrFuPGjct036w+P4CdO3fi7e3NihUrci3WX375BQ8PD44fP+7ysQMHDsz0Z6xWrVoun+vcuXPUqFEDi8XCO++8k+HxHTt20K9fPypWrIivry9Vq1bl8ccf5+TJky5fK6eOHTvGwIEDKVmyJH5+fjRr1owFCxZk2C8xMZG3336bevXq4e/vT5kyZejcuXOGzycLFiwgICCAgwcP5tdTcI0bl9wuECZMmGAAExgYaPr27Zvh8UWLFjkfb926tXP72bNnTbVq1UzZsmXNmDFjzB9//GF+/fVXM2bMGNOiRQszadKkDNeYMGGCWbFiRYZbTExMfjzVDNauXWu8vb1NmTJlTN26dbN0zLFjx0z58uVN3bp1zYwZM8xvv/1mWrZsaQIDA83WrVvT7duqVSvj5+dn3nrrLbNw4ULz9ddfm2rVqpnAwECzZ8+eXH0u33zzjQHM4MGDzcKFC8348eNNcHCw6dChQ7r9du/ebYKDg02rVq3M4MGDDWBeeumly5537NixpnTp0iY2NjbXYv3qq6+Mn5+fiY+Pz9F5svP6lS9f3txzzz3m22+/NYsXLzaffvqpqVChgilXrpw5cuRIun0jIyNNixYtMvy87tq1K0dxZyYvXr/FixcbT0/PDD+XIsr7ruWNcePGmWeffdZMnz7dLF682EydOtU0adLE2Gw2s3jxYud+v/76q4mIiDDPPfec+e2338z8+fPNY489ZqxWq7n33ntz/blkNW/07t3btG3b1nz88cdm8eLFZtq0aeaGG24wHh4eZsGCBRnOW9Dy/qZNmzL8/CxYsMB4enqaG2644arHF/b3bVdeP+V9KW75fdGiRaZkyZLmpptuMnfffbczrqz68ssvDWBuu+02M3v2bDNnzhxz1113GcC8++676fa96667zPvvv29+++03s2DBAvPmm2+aoKAgU6dOHZOYmJjLz+zKBg8ebLy9vc1bb71lFi1aZJ599lljsVjM66+/nm4/V56fMcb06NHDdO3aNVdj7d+/v2nbtm22jh0wYIDx9fXN8DO2bt06l8/1xBNPmPLlyxvAvP322+keO3bsmClRooSpXLmymThxolm4cKEZM2aMCQgIMA0bNjSpqanZij87EhISTL169UyFChXMN998Y+bPn2+6d+9uPDw80n3mMMaYfv36GavVap577jmzYMECM23aNNO4cWPj4eFh/v7773T7tm3b1vTv3z/fnocrVJA5n1QHDx5sfH19MyTRvn37mmbNmpm6deumS9xfffWVAczChQszPe/FP7iOa/z777958hyyIzk52TRs2NCMGDHCtG7dOssfzJ966inj6emZ7oNZTEyMKVmypLnjjjuc26Kiogxgnn/++XTHL1++/LJJMLtSUlJMuXLlzM0335xu+7fffmsAM3v2bOe2tLQ0k5aWZowx5vjx41f8hT45OdmEh4ebZ5999qoxtG7d2gwYMCBL8Xbp0sX07t07S/teTnZfv6NHj2bY9u+//xrAvPrqq+m2R0ZG5vqbUmby6vUzxph69eqZIUOG5EncUngp77uWNzJz+vRp4+npafr16+fcFh0dbZKSkjLs+9BDDxnA7Nu3L9vXu5QreSOzvHf27FlTpkwZ0759+3TbC3Lev9jEiRMNYL744our7lvY37ddef2MUd4v7opbfr84LsfnOVcKMi1atDCRkZHpzpOWlmZq1apl6tevf9XjP/74YwNkWtzOjpdeeslERkZecZ+NGzcai8Vi3njjjXTbhwwZYnx9fc3Jkyed21x5fps3bzaAmTt37lXjzOr3OSkpyYSEhJgPP/zwqvtmZsCAAcbf3z9bx17s77//Nl5eXmbatGmZFmQ+//xzA5g//vgj3fY33njDAGbNmjU5jsGYrL1vfvTRRwYwy5cvd25LTk42derUMddff71zW0JCgrHZbBkKr4cOHTKAGTFiRLrt06dPNzabLVc/i+SWYj9lyeHu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C77++mvncEmHr7/+Ol2FEcjS9Iv777+fbt26XXU/b2/vq+7z7rvvEhUVxS+//HLVfS/nSjFf/NiwYcP46aefeO+997j22ms5cuQIb7/9Nu3atWPRokVERkaSkJDAggULGDZsGH5+fs6h0wBdunThww8/ZOXKlXTu3JnU1FSMMc7HHUPVrhaXK1NcLnbo0CGaNGmSYfuSJUto27Zthu1Lly7l66+/Trdt9+7dVKpUCYC4uDjmzZvHJ5984nw8LS2NtLS0dLHabLbLxpQbr59DQkICvXr1Yu/evSxcuDDDX1ovHVravXt3QkND+fDDD3n88cdp1KhRgX79wF49DwkJKbhd1cXtlPezbsaMGcTFxbFv3z7Gjx9P586d+eWXXzKsVOKwZs0a7rjjDm644Qb+97//Obe7O2+88MILfPvtt4wbN47GjRune6wg5v2LpaSkMGnSJOrWrcsNN9yQpWMc18jKY4XhfftKrx8o78sFxSG/59TcuXPp27cvt99+O3fccQceHh788ssvDBw4kKSkpAzTgq655hr+/fdf4uPjWbduHaNHj6ZDhw4sXLgQPz8/l/IDkOk018y2T5gwgYEDBzq/zmpOy+rzO3ToEJD5FMlXXnkl05E99913H/fdd5/z68jISPbs2eP8esmSJZw4cYJevXo5t10tJ17qscceS/d1hw4daNSoEb179+bzzz/P8PjFUlJSGDRoEHfeeScdO3a87H4Ap06donv37sTHx/Ptt98SERHBxo0befXVV7n11lv57bff8PDwYPny5URHRzNgwIB0ry1Ap06deOutt4iLi8Pf3z/b75uQ9df39ddf55133mHUqFHceOONnDlzhg8//JAOHTowf/58GjVqlO7Y0qVLk5aWxpEjR6hateoVvyf5yq3loALg0sZcr732mildurR58MEH0/2FJrNKemaWLFli/Pz8TKlSpS57DVdlVpnN7HZpZfZSe/fuNb6+vub99983p06dct5atGhhateubU6dOnXFFSDi4+ONxWIxTz31VIbHPvzwQwOYbdu2GWOMmTNnjgHMtGnT0u136tQpExwc7PwLxYEDB676F4Kvv/7aGGNvMnvxdsfIiPHjxxvAbNq0KUNc1113nWnWrFmmz+dqIywyq7IbYx9V8u+//6a7XXvttaZbt24Ztl/cdf777783Hh4e6f4yMGDAgHTP6Uo/Yzl9/S6WkJBgOnXqZHx8fDI08LqSlStXGsB8/PHHxpiC/fo5lCtXztx2221Zfo5S9CnvZy9vXCw5OdnUq1fvsk0f16xZY8LCwsx1111nTp8+ne4xd+aNUaNGGSDDShwOBS3vX+rnn382gHnvvfeytH9Re9++2uvnoLxffBWn/H4pV0fIpKWlmXLlypkuXbpkeKx///7G39//qiMJHJ8LHU2/XckPjpgvvg0ZMsSUK1cuw/YTJ044j7nrrrvSvR4OsbGxBjAjR450+fllNvrC4eDBgxniceSzi7dt2LAh3XHDhg0zjRs3TrftcjnRFampqcbf3z9dU/bMvP322yY4ONhERUU53/vXr19vwL6Qx6lTp5w/Y88884zx9PQ0hw4dSneOhQsXGsBMnDjRGHNhdbwr3RxNc7P7vlm2bFlz++23Z3g+s2bNMoCZN2+eMcbehNlisWQY7ZOUlGSqVatm2rRpk+Ecn376qQHMf//9d7Vvc77SCJlLDBw4kBdffJHx48dnq/Fhq1atuPnmm5k5cybHjh3LtNLqqstVZi91aWX2Urt27eLcuXM88sgjPPLIIxkeDw0N5ZFHHmHs2LGZHu/r60u1atX477//Mjz233//4evrS5UqVQBYt24dQIa/NIaEhFCtWjXn/M7Q0FBsNhv9+vW7bC+CypUrA/Z5+ImJic7tjvmY11xzjTOGi+f9p6SksHXr1gx/0ciqkiVLZjpHMzAwMENTrMDAQEqUKHHZZllg/+tyu3btCA0NdW4bNWoUw4cPT3eey8np6+eQmJhIjx49WLRoET///DPt27e/4v4XM+er+o5qfkF+/RxOnTpFyZIlc3QOKdqU96+eNy7l4eHBtddeyw8//JDhsbVr13LTTTcRGRnJ/PnzMzTcc1feePnllxk1ahSjRo3i//7v/zK9bkHL+5f68ssv8fLyynLT4aL0vp2V189BeV8cinJ+z6mjR49y+PBhhg4dmuGxJk2a8PXXX7Nnz55MezU5XHfddVitVrZv3w64lh8cx19s1qxZeHl5XTGvXnPNNXz33XccOXIkXR8ZR56rV6+ey8/PkS8yy//ly5fPtAdMpUqVLhtnWloaP/30EyNGjEi3/XI50VXGmKv2utm4cSMxMTFUr149w2MvvPACL7zwAmvXrqVhw4asW7eO8PDwDE2tHe8Hjvzv+D6NGzfusqM0y5QpA2T/ffOaa6657HsWXHh9169fjzEmw3uWp6cnDRo0YMmSJRnO4Xh9C9r7gwoylwgPD+epp55i69atDBgw4LL7HT16lFKlSmX4z5CamkpUVBR+fn7OztQ5lVtDGxs2bMiiRYsybH/00UeJiYlhwoQJVKhQ4Yrn6NmzJ2PHjmX//v1EREQAcPbsWX788UduvfVWZ5d1R4JZuXJlupUdTp48yfbt251FAD8/P9q2bcvatWupX78+Xl5el7224wPcpZo2bUq5cuWYOHFiukZt06dPJzY2Nt1QQVfUqlWLnTt3ZuvYSyUkJDB79uwMQ2UrVaqUbojeleTG65eYmEjPnj1ZuHAhP/7441WHMF7KMcTQkYQL8usH9iGoCQkJudqgU4oe5f0r543MJCQksHLlSqpVq5Zu+7p167jpppuoUKECv//+e7pChIM78sarr77KqFGjeP7553nppZcue72ClvcvduTIEWbPnk2vXr0oUaJElo8rCu/bWX39QHlf0ivK+T2nQkND8fHxYeXKlRkeW7FiBVar9bKrTjksWbKEtLQ053uBK/khu7p3787zzz/PpEmTeOaZZ5zbJ06ciK+vL506dQJce36RkZH4+vrmWv5fvnw5R44cybC63uVyoiumT59OfHz8VaetPvvss+mmeYH9feTuu+/mgQce4M4773S+buXLl2fBggUcPHiQ8PBw5/4rVqwAcH5OaNGiBSEhIWzevDndHxZyU8+ePXnwwQf5+++/adq0KWAv1n/zzTc0bdrU+V518XtW69atnccnJiayZs2aTD/b7Nq1ixIlSjiLRgWFCjKZGD169FX3mTx5Mp9++il9+vShSZMmBAcHc+DAAb744gs2bdrEiy++mCEJbdy4McN8O4CqVas6l43LzOUqs64KCQnJdK5/SEgIKSkpGR5r3749S5YsSRfzk08+yeTJk+natSuvvPIK3t7ejB49moSEBEaNGuXcr1evXrz44osMGzaMAwcOcO2113L48GHefvtt4uPj0/2l9v3336dly5bceOONDBs2jEqVKnH27Fl27NjBr7/+ysKFC6/4vGw2G2+99Rb9+vVj6NCh3H333URFRfH000/ToUMHZ2J2mDNnDnFxcc4lMTdv3sz06dMB+/xWPz8/wL5SwyuvvEJ8fLxzW3bNnTuX+Ph4evToke1z5Mbr17t3b+bMmcNzzz1HiRIl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kBEREREREaew5LvLkhIyIuIalJARERERERGnsORbIWO0LHloqK+IVHCKciIiIiIi4hQ5Q33z22VJFTIiUsEpISMiIiIiIk6Rs+21Pb+hvkrIiEjFpoSMiIiIiIg4heWiFTI6VRGRik1RTkREREREnCKnZcl+/ra07ISMVRUyIlKxKSEjIiIiIiJOkW/LUoZalkTENSghIyIiIiIiTmHOOhvJ07JkU8uSiLgGRTkREREREXGK/CtktMuSiLgGJWRERERERMQp8h/qm92ypFMVEanYFOVERERERMQpzg/1vbBCxkNDfUWkglNCRkREREREnOLfLUsOh4M0m4b6iohrUEJGRERERESc4t8tS9nJGFDLkohUfIpyIiIiIiLiFDkJmaw8THa7EqhCRkQqPiVkRERERETEKbITMvasCpnsgb4Wswk3i05VRKRiU5QTERERERGnMJvyDvXN2fLaqtMUEan4FOlERERERMQpcipkshMytqyEjNqVRMQFKCEjIiIiIiJOkb3Lks2et2VJCRkRcQVKyIiIiIiIiFOYs85GMh15W5Y8tMOSiLgARToREREREXGKC1qWcmbIqEJGRCo+JWRERERERMQpsluWMh3/blnSaYqIVHyKdCIiIiIi4hTmrAoZhwMcDgdpGuorIi5ECRkREREREXGK7AoZMLa+zmlZUkJGRFyAEjIiIiIiIuIU2RUyYLQtqWVJRFyJIp2IiIiIiDiFJVdCxm7XUF8RcS1KyIiIiIiIiFPkaVnKVSHjoZYlEXEBSsiIiIiIiIhTmHOdjWTaHaTmDPXVaYqIVHyKdCIiIiIi4hS5K2TsGuorIi5GCRkREREREXEKS0FDfTVDRkRcgBIyIiIiIiLiFCaTiewiGbvdQVqGWpZExHUo0omIiIiIiNNYs6pkMh25Z8ioQkZEKj4lZERERERExGnMWSUy6w/FsvFwHKAKGRFxDVZnL0BERERERFxX9hyZMVM3AhDk407HukHOXJKISKlQQkZERERERJwm905LN7cN4eWBTans4+7EFYmIlA4lZERERERExGkGtKjB5qNxvDigCT0aVnX2ckRESo0SMiIiIiIi4jTv3NLS2UsQEXEKTcsSERERERERESllSsiIiIiIiIiIiJQyJWREREREREREREqZEjIiIiIiIiIiIqVMCRkRERERERERkVKmhIyIiIiIiIiISClTQkZEREREREREpJQpISMiIiIiIiIiUsqUkBERERERERERKWVKyIiIiIiIiIiIlDIlZERERERERERESpkSMiIiIiIiIiIipUwJGRERERERERGRUqaEjIiIiIiIiIhIKVNCRkRERERERESklCkhIyIiIiIiIiJSypSQEREREREREREpZUrIiIiIiIiIiIiUMiVkRERERERERERKmRIyIiIiIiIiIiKlTAkZEREREREREZFSpoSMiIiIiIiIiEgpU0JGRERERERERKSUKSEjIiIiIiIiIlLKrM54U4fDAUB8fLwz3l5ExCmyY152DHQlivsi4qoU+xX7RcT1FDX2OyUhk5CQAEBoaKgz3l5ExKkSEhIICAhw9jJKleK+iLg6xX4REddTWOw3OZyQrrfb7Rw/fhw/Pz9MJlNpv72IiFM4HA4SEhKoWbMmZrNrdYwq7ouIq1LsV+wXEddT1NjvlISMiIiIiIiIiIgrc600vYiIiIiIiIhIGaCEjIiIiIiIiIhIKVNCRkRERERERESklCkhIyIiIiIiIiJSypSQEREREREREREpZUrIiIiIiIiIiIiUMiVkpMI7ffo01atX580338y5bfXq1bi7uzNv3jwnrkxEREqKYr+IiOtR7JfyxuRwOBzOXoRISZs1axY33ngjK1asoHHjxrRp04aBAwfy0UcfOXtpIiJSQhT7RURcj2K/lCdKyIjLGD16NP/88w9XXXUVmzdvZu3atXh6ejp7WSIiUoIU+0VEXI9iv5QXSsiIy0hJSaF58+YcOXKEdevW0bJlS2cvSURESphiv4iI61Hsl/JCM2TEZezfv5/jx49jt9s5dOiQs5cjIiKlQLFfRMT1KPZLeaEKGXEJ6enpdOjQgdatW9O4cWPGjh3L1q1bqVatmrOXJiIiJUSxX0TE9Sj2S3mihIy4hGeeeYZffvmFzZs34+vrS+/evfHz82PmzJnOXpqIiJQQxX4REdej2C/liVqWpMJbtGgRH330EZMnT8bf3x+z2czkyZNZtmwZ48aNc/byRESkBCj2i4i4HsV+KW9UISMiIiIiIiIiUspUISMiIiIiIiIiUsqUkBERERERERERKWVKyIiIiIiIiIiIlDIlZERERERERERESpkSMiIiIiIiIiIipUwJGRERERERERGRUqaEjIiIiIiIiIhIKVNCRkRERERERESklCkhIyIiIiIiIiJSypSQEREREREREREpZUrIiIiIiIiIiIiUMiVkRERERERERERK2f8D3w/V/vYt1v8AAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "\"\"\"\n", - "============================\n", - "Underfitting vs. Overfitting\n", - "============================\n", + "## 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", @@ -2153,13 +2117,25 @@ "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** / **underfitting** by using\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.\n", - "\"\"\"\n", + "training data." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "0b42fc93", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ "\n", - "print(__doc__)\n", + "\n", + "#print(__doc__)\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", @@ -2212,8 +2188,10 @@ }, { "cell_type": "markdown", - "id": "cd98e171", - "metadata": {}, + "id": "d4adf4c3", + "metadata": { + "editable": true + }, "source": [ "## Various steps in cross-validation\n", "\n", @@ -2235,8 +2213,10 @@ }, { "cell_type": "markdown", - "id": "3d78fc14", - "metadata": {}, + "id": "6e6c3fd3", + "metadata": { + "editable": true + }, "source": [ "## Cross-validation in brief\n", "\n", @@ -2261,8 +2241,10 @@ }, { "cell_type": "markdown", - "id": "5305ce70", - "metadata": {}, + "id": "f56b418c", + "metadata": { + "editable": true + }, "source": [ "## Code Example for Cross-validation and $k$-fold Cross-validation\n", "\n", @@ -2272,8 +2254,11 @@ { "cell_type": "code", "execution_count": 6, - "id": "5f27ae22", - "metadata": {}, + "id": "64e72139", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "import numpy as np\n", @@ -2369,8 +2354,10 @@ }, { "cell_type": "markdown", - "id": "3c53a222", - "metadata": {}, + "id": "92d3a119", + "metadata": { + "editable": true + }, "source": [ "## More examples on bootstrap and cross-validation and errors" ] @@ -2378,8 +2365,11 @@ { "cell_type": "code", "execution_count": 7, - "id": "279ce94a", - "metadata": {}, + "id": "20a55cbd", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "# Common imports\n", @@ -2464,16 +2454,20 @@ }, { "cell_type": "markdown", - "id": "f1e3879e", - "metadata": {}, + "id": "0b1ab15d", + "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": "20ef6ef7", - "metadata": {}, + "id": "d04d7a1a", + "metadata": { + "editable": true + }, "source": [ "## The same example but now with cross-validation\n", "\n", @@ -2483,8 +2477,11 @@ { "cell_type": "code", "execution_count": 8, - "id": "6ab2b357", - "metadata": {}, + "id": "bbd6bfa9", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "# Common imports\n", @@ -2558,16 +2555,20 @@ }, { "cell_type": "markdown", - "id": "9e81fda6", - "metadata": {}, + "id": "3d61d3cd", + "metadata": { + "editable": true + }, "source": [ "## Material for the lab sessions" ] }, { "cell_type": "markdown", - "id": "03d51c97", - "metadata": {}, + "id": "33014e05", + "metadata": { + "editable": true + }, "source": [ "## Linking the regression analysis with a statistical interpretation\n", "\n", @@ -2593,8 +2594,10 @@ }, { "cell_type": "markdown", - "id": "2396407c", - "metadata": {}, + "id": "af8973e3", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\begin{align*} \n", @@ -2607,8 +2610,10 @@ }, { "cell_type": "markdown", - "id": "82fe42dd", - "metadata": {}, + "id": "95f08a4f", + "metadata": { + "editable": true + }, "source": [ "The randomness of $\\varepsilon_i$ implies that\n", "$\\mathbf{y}_i$ is also a random variable. In particular,\n", @@ -2624,8 +2629,10 @@ }, { "cell_type": "markdown", - "id": "783548ee", - "metadata": {}, + "id": "69a3772b", + "metadata": { + "editable": true + }, "source": [ "## Assumptions made\n", "\n", @@ -2636,8 +2643,10 @@ }, { "cell_type": "markdown", - "id": "c8d96d50", - "metadata": {}, + "id": "6f44e2d9", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{y} = f(\\boldsymbol{x})+\\boldsymbol{\\varepsilon}\n", @@ -2646,8 +2655,10 @@ }, { "cell_type": "markdown", - "id": "fbfe13b9", - "metadata": {}, + "id": "9f820ddc", + "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" @@ -2655,8 +2666,10 @@ }, { "cell_type": "markdown", - "id": "539cfdb4", - "metadata": {}, + "id": "cab623c2", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{\\tilde{y}} = \\boldsymbol{X}\\boldsymbol{\\beta}.\n", @@ -2665,8 +2678,10 @@ }, { "cell_type": "markdown", - "id": "39d0f44b", - "metadata": {}, + "id": "47218f25", + "metadata": { + "editable": true + }, "source": [ "## Expectation value and variance\n", "\n", @@ -2675,8 +2690,10 @@ }, { "cell_type": "markdown", - "id": "9e2c54ec", - "metadata": {}, + "id": "9290dce4", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\begin{align*} \n", @@ -2689,8 +2706,10 @@ }, { "cell_type": "markdown", - "id": "31c30440", - "metadata": {}, + "id": "65a7ab7d", + "metadata": { + "editable": true + }, "source": [ "while\n", "its variance is" @@ -2698,8 +2717,10 @@ }, { "cell_type": "markdown", - "id": "49d47ccb", - "metadata": {}, + "id": "a35cbd7b", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\begin{align*} \\mbox{Var}(y_i) & = \\mathbb{E} \\{ [y_i\n", @@ -2719,8 +2740,10 @@ }, { "cell_type": "markdown", - "id": "76d35c71", - "metadata": {}, + "id": "0b5e006f", + "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)." @@ -2728,8 +2751,10 @@ }, { "cell_type": "markdown", - "id": "ebe8e4ed", - "metadata": {}, + "id": "77270968", + "metadata": { + "editable": true + }, "source": [ "## Expectation value and variance for $\\boldsymbol{\\beta}$\n", "\n", @@ -2738,8 +2763,10 @@ }, { "cell_type": "markdown", - "id": "c1bbcb19", - "metadata": {}, + "id": "49715a2d", + "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", @@ -2748,8 +2775,10 @@ }, { "cell_type": "markdown", - "id": "f328e259", - "metadata": {}, + "id": "fb6a34f4", + "metadata": { + "editable": true + }, "source": [ "This means that the estimator of the regression parameters is unbiased.\n", "\n", @@ -2760,8 +2789,10 @@ }, { "cell_type": "markdown", - "id": "c03ab625", - "metadata": {}, + "id": "942e7e6a", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\begin{eqnarray*}\n", @@ -2789,8 +2820,10 @@ }, { "cell_type": "markdown", - "id": "b8e6055a", - "metadata": {}, + "id": "f127bfb2", + "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", @@ -2809,8 +2842,10 @@ }, { "cell_type": "markdown", - "id": "0817faf1", - "metadata": {}, + "id": "2def67b5", + "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", @@ -2819,8 +2854,10 @@ }, { "cell_type": "markdown", - "id": "651c7eb5", - "metadata": {}, + "id": "d28e3d89", + "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", @@ -2830,8 +2867,10 @@ }, { "cell_type": "markdown", - "id": "61df0bea", - "metadata": {}, + "id": "ab34b80c", + "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", @@ -2840,8 +2879,10 @@ }, { "cell_type": "markdown", - "id": "013b5610", - "metadata": {}, + "id": "677844a3", + "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", @@ -2850,8 +2891,10 @@ }, { "cell_type": "markdown", - "id": "d6944738", - "metadata": {}, + "id": "89529d82", + "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", @@ -2860,8 +2903,10 @@ }, { "cell_type": "markdown", - "id": "72d180ae", - "metadata": {}, + "id": "688cfbfa", + "metadata": { + "editable": true + }, "source": [ "The difference is non-negative definite since each component of the\n", "matrix product is non-negative definite. \n", @@ -2871,25 +2916,7 @@ ] } ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.18" - } - }, + "metadata": {}, "nbformat": 4, "nbformat_minor": 5 } diff --git a/doc/src/week37/week37.do.txt b/doc/src/week37/week37.do.txt index 49d574eef..2dd3e0323 100644 --- a/doc/src/week37/week37.do.txt +++ b/doc/src/week37/week37.do.txt @@ -1102,11 +1102,6 @@ You may also find this recent "article":"https://www.pnas.org/content/116/32/158 !split ===== Another Example from Scikit-Learn's Repository ===== -!bc pycod -""" -============================ -Underfitting vs. Overfitting -============================ This example demonstrates the problems of underfitting and overfitting and how we can use linear regression with polynomial features to approximate @@ -1115,17 +1110,19 @@ which is a part of the cosine function. In addition, the samples from the real function and the approximations of different models are displayed. The models have polynomial features of different degrees. We can see that a linear function (polynomial with degree 1) is not sufficient to fit the -training samples. This is called **underfitting**. A polynomial of degree 4 +training samples. This is called _underfitting_. A polynomial of degree 4 approximates the true function almost perfectly. However, for higher degrees -the model will **overfit** the training data, i.e. it learns the noise of the +the model will _overfit_ the training data, i.e. it learns the noise of the training data. -We evaluate quantitatively **overfitting** / **underfitting** by using +We evaluate quantitatively overfitting and underfitting by using cross-validation. We calculate the mean squared error (MSE) on the validation set, the higher, the less likely the model generalizes correctly from the training data. -""" -print(__doc__) +!bc pycod + + +#print(__doc__) import numpy as np import matplotlib.pyplot as plt