diff --git a/doc/pub/week37/html/._week37-bs000.html b/doc/pub/week37/html/._week37-bs000.html index 976b10236..b837d09ac 100644 --- a/doc/pub/week37/html/._week37-bs000.html +++ b/doc/pub/week37/html/._week37-bs000.html @@ -279,7 +279,7 @@ MathJax.Hub.Config({
-

Sep 17, 2022

+

May 29, 2023


@@ -318,7 +318,7 @@ MathJax.Hub.Config({ -->
- © 1999-2022, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license + © 1999-2023, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license
diff --git a/doc/pub/week37/html/._week37-bs001.html b/doc/pub/week37/html/._week37-bs001.html index 89e9599d5..23b28b5e2 100644 --- a/doc/pub/week37/html/._week37-bs001.html +++ b/doc/pub/week37/html/._week37-bs001.html @@ -264,14 +264,8 @@ MathJax.Hub.Config({

Plans for week 37

Recommended Reading:

    diff --git a/doc/pub/week37/html/week37-bs.html b/doc/pub/week37/html/week37-bs.html index 976b10236..b837d09ac 100644 --- a/doc/pub/week37/html/week37-bs.html +++ b/doc/pub/week37/html/week37-bs.html @@ -279,7 +279,7 @@ MathJax.Hub.Config({
    -

    Sep 17, 2022

    +

    May 29, 2023


    @@ -318,7 +318,7 @@ MathJax.Hub.Config({ -->
    - © 1999-2022, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license + © 1999-2023, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license
    diff --git a/doc/pub/week37/html/week37-reveal.html b/doc/pub/week37/html/week37-reveal.html index 661ef46d9..0b5020181 100644 --- a/doc/pub/week37/html/week37-reveal.html +++ b/doc/pub/week37/html/week37-reveal.html @@ -184,13 +184,13 @@ MathJax.Hub.Config({
    -

    Sep 17, 2022

    +

    May 29, 2023


    - © 1999-2022, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license + © 1999-2023, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license
    @@ -198,18 +198,8 @@ MathJax.Hub.Config({

    Plans for week 37

    Recommended Reading:

    diff --git a/doc/pub/week37/html/week37-solarized.html b/doc/pub/week37/html/week37-solarized.html index aff5d27e4..a7fcde941 100644 --- a/doc/pub/week37/html/week37-solarized.html +++ b/doc/pub/week37/html/week37-solarized.html @@ -233,7 +233,7 @@ MathJax.Hub.Config({
    -

    Sep 17, 2022

    +

    May 29, 2023


    @@ -241,14 +241,8 @@ MathJax.Hub.Config({

    Plans for week 37

    Recommended Reading:

      @@ -1975,7 +1969,7 @@ plt.show()
      - © 1999-2022, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license + © 1999-2023, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license
      diff --git a/doc/pub/week37/html/week37.html b/doc/pub/week37/html/week37.html index f6b59f908..1fc3b673e 100644 --- a/doc/pub/week37/html/week37.html +++ b/doc/pub/week37/html/week37.html @@ -310,7 +310,7 @@ MathJax.Hub.Config({
      -

      Sep 17, 2022

      +

      May 29, 2023


      @@ -318,14 +318,8 @@ MathJax.Hub.Config({

      Plans for week 37

      Recommended Reading:

        @@ -2052,7 +2046,7 @@ plt.show()
        - © 1999-2022, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license + © 1999-2023, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license
        diff --git a/doc/pub/week37/ipynb/ipynb-week37-src.tar.gz b/doc/pub/week37/ipynb/ipynb-week37-src.tar.gz index 0111b6953..ddfdd9e50 100644 Binary files a/doc/pub/week37/ipynb/ipynb-week37-src.tar.gz and b/doc/pub/week37/ipynb/ipynb-week37-src.tar.gz differ diff --git a/doc/pub/week37/ipynb/week37.ipynb b/doc/pub/week37/ipynb/week37.ipynb index 01c2e9c6a..12fcdb307 100644 --- a/doc/pub/week37/ipynb/week37.ipynb +++ b/doc/pub/week37/ipynb/week37.ipynb @@ -2,8 +2,10 @@ "cells": [ { "cell_type": "markdown", - "id": "9707d916", - "metadata": {}, + "id": "d91aeed2", + "metadata": { + "editable": true + }, "source": [ "\n", @@ -12,31 +14,31 @@ }, { "cell_type": "markdown", - "id": "a044c354", - "metadata": {}, + "id": "46ccb2cc", + "metadata": { + "editable": true + }, "source": [ "# Week 37: Summary of Ridge and Lasso Regression and Resampling Methods\n", "**Morten Hjorth-Jensen**, Department of Physics, University of Oslo and Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University\n", "\n", - "Date: **Sep 17, 2022**\n", + "Date: **May 29, 2023**\n", "\n", - "Copyright 1999-2022, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license" + "Copyright 1999-2023, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license" ] }, { "cell_type": "markdown", - "id": "1c862c30", - "metadata": {}, + "id": "3f4ac73b", + "metadata": { + "editable": true + }, "source": [ "## Plans for week 37\n", "\n", - "* Thursday September 15: Summary of Ridge and Lasso with examples and statistical interpretation. Start resampling techniques and discussion of the **bias-variance** tradeoff.\n", + "* Summary of Ridge and Lasso with examples and statistical interpretation. Start resampling techniques and discussion of the **bias-variance** tradeoff.\n", "\n", - " * [Video of lecture](https://youtu.be/YVQGvcsovpw)\n", - "\n", - "* Friday September 16: Resampling methods, bias-variance, overfitting, Cross-validation and Bootstrapping\n", - "\n", - " * [Video of lecture](https://youtu.be/rbaHRF-7bsQ)\n", + "* Resampling methods, bias-variance, overfitting, Cross-validation and Bootstrapping\n", "\n", "Recommended Reading:\n", "1. Lectures on Resampling methods (these lectures), see also lectures from week 36\n", @@ -50,16 +52,20 @@ }, { "cell_type": "markdown", - "id": "b1c2ddf1", - "metadata": {}, + "id": "01861660", + "metadata": { + "editable": true + }, "source": [ "## Summary of Ridge and Lasso Regression and start Resampling methods" ] }, { "cell_type": "markdown", - "id": "cbd33297", - "metadata": {}, + "id": "aab805ad", + "metadata": { + "editable": true + }, "source": [ "## Deriving OLS from a probability distribution\n", "\n", @@ -79,8 +85,10 @@ }, { "cell_type": "markdown", - "id": "64ad454e", - "metadata": {}, + "id": "a89e6314", + "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", @@ -89,8 +97,10 @@ }, { "cell_type": "markdown", - "id": "b7f8c8f0", - "metadata": {}, + "id": "cac03daf", + "metadata": { + "editable": true + }, "source": [ "## Independent and Identically Distrubuted (iid)\n", "\n", @@ -100,8 +110,10 @@ }, { "cell_type": "markdown", - "id": "00767b73", - "metadata": {}, + "id": "5307fdfc", + "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", @@ -110,8 +122,10 @@ }, { "cell_type": "markdown", - "id": "6d2bcbc3", - "metadata": {}, + "id": "982ae66b", + "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", @@ -120,8 +134,10 @@ }, { "cell_type": "markdown", - "id": "bef396db", - "metadata": {}, + "id": "b5b79e2a", + "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", @@ -130,8 +146,10 @@ }, { "cell_type": "markdown", - "id": "3bc7436d", - "metadata": {}, + "id": "e3165341", + "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" @@ -139,8 +157,10 @@ }, { "cell_type": "markdown", - "id": "6c5c39a0", - "metadata": {}, + "id": "a032bace", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\\dots, (x_{n-1},y_{n-1})].\n", @@ -149,8 +169,10 @@ }, { "cell_type": "markdown", - "id": "58368bc2", - "metadata": {}, + "id": "8d7ff1e2", + "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" @@ -158,8 +180,10 @@ }, { "cell_type": "markdown", - "id": "0626e798", - "metadata": {}, + "id": "1d54d667", + "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", @@ -168,16 +192,20 @@ }, { "cell_type": "markdown", - "id": "c14a62d7", - "metadata": {}, + "id": "eba020db", + "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": "19c85f4b", - "metadata": {}, + "id": "b27a3eea", + "metadata": { + "editable": true + }, "source": [ "## Maximum Likelihood Estimation (MLE)\n", "\n", @@ -205,8 +233,10 @@ }, { "cell_type": "markdown", - "id": "a11f8cc1", - "metadata": {}, + "id": "e25c4ca1", + "metadata": { + "editable": true + }, "source": [ "## A new Cost Function\n", "\n", @@ -215,8 +245,10 @@ }, { "cell_type": "markdown", - "id": "937861b8", - "metadata": {}, + "id": "5a26a3a7", + "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", @@ -225,16 +257,20 @@ }, { "cell_type": "markdown", - "id": "a28e3332", - "metadata": {}, + "id": "833be7d1", + "metadata": { + "editable": true + }, "source": [ "which becomes" ] }, { "cell_type": "markdown", - "id": "5e3a32e7", - "metadata": {}, + "id": "57d9d241", + "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", @@ -243,16 +279,20 @@ }, { "cell_type": "markdown", - "id": "b3cd9181", - "metadata": {}, + "id": "aae63782", + "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": "a5452767", - "metadata": {}, + "id": "816f9e5d", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}^T\\left(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\right) =0,\n", @@ -261,16 +301,20 @@ }, { "cell_type": "markdown", - "id": "3490356b", - "metadata": {}, + "id": "0f470f0a", + "metadata": { + "editable": true + }, "source": [ "which leads to the well-known OLS equation for the optimal paramters $\\beta$" ] }, { "cell_type": "markdown", - "id": "22b9edee", - "metadata": {}, + "id": "216b404c", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\hat{\\boldsymbol{\\beta}}^{\\mathrm{OLS}}=\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y}!\n", @@ -279,8 +323,10 @@ }, { "cell_type": "markdown", - "id": "27507c33", - "metadata": {}, + "id": "c7198de1", + "metadata": { + "editable": true + }, "source": [ "## Bayes' Theorem\n", "\n", @@ -289,8 +335,10 @@ }, { "cell_type": "markdown", - "id": "46dbb3df", - "metadata": {}, + "id": "8f8f4729", + "metadata": { + "editable": true + }, "source": [ "$$\n", "p(X\\vert Y)= \\frac{p(X,Y)}{p(Y)},\n", @@ -299,16 +347,20 @@ }, { "cell_type": "markdown", - "id": "1d2b22da", - "metadata": {}, + "id": "7f203bdb", + "metadata": { + "editable": true + }, "source": [ "which we can rewrite as" ] }, { "cell_type": "markdown", - "id": "e7bcf267", - "metadata": {}, + "id": "26e79731", + "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", @@ -317,16 +369,20 @@ }, { "cell_type": "markdown", - "id": "87dfa89f", - "metadata": {}, + "id": "45028424", + "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": "722016af", - "metadata": {}, + "id": "d2a6d258", + "metadata": { + "editable": true + }, "source": [ "## Interpretations of Bayes' Theorem\n", "\n", @@ -340,8 +396,10 @@ }, { "cell_type": "markdown", - "id": "befa12e7", - "metadata": {}, + "id": "74bda7c5", + "metadata": { + "editable": true + }, "source": [ "## Test Function for what happens with OLS, Ridge and Lasso\n", "\n", @@ -357,8 +415,11 @@ { "cell_type": "code", "execution_count": 1, - "id": "1192fb77", - "metadata": {}, + "id": "eac2bbd6", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "%matplotlib inline\n", @@ -430,16 +491,20 @@ }, { "cell_type": "markdown", - "id": "3db643cb", - "metadata": {}, + "id": "445d6ca4", + "metadata": { + "editable": true + }, "source": [ "How can we understand this?" ] }, { "cell_type": "markdown", - "id": "754feb02", - "metadata": {}, + "id": "e3d95e53", + "metadata": { + "editable": true + }, "source": [ "## Rerunning the above code\n", "\n", @@ -466,8 +531,11 @@ { "cell_type": "code", "execution_count": 2, - "id": "5fe37551", - "metadata": {}, + "id": "ba0ee63c", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "import numpy as np\n", @@ -512,8 +580,10 @@ }, { "cell_type": "markdown", - "id": "10c42e4f", - "metadata": {}, + "id": "83f0e682", + "metadata": { + "editable": true + }, "source": [ "## Invoking Bayes' theorem\n", "\n", @@ -524,8 +594,10 @@ }, { "cell_type": "markdown", - "id": "fb1b5d4f", - "metadata": {}, + "id": "1765ab80", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\\dots, (x_{n-1},y_{n-1})],\n", @@ -534,16 +606,20 @@ }, { "cell_type": "markdown", - "id": "a84af26c", - "metadata": {}, + "id": "e3d26bbc", + "metadata": { + "editable": true + }, "source": [ "is given by" ] }, { "cell_type": "markdown", - "id": "a8b79d61", - "metadata": {}, + "id": "b0257764", + "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", @@ -552,16 +628,20 @@ }, { "cell_type": "markdown", - "id": "d8152df8", - "metadata": {}, + "id": "d0f3bd9e", + "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": "6039e4c0", - "metadata": {}, + "id": "870770ec", + "metadata": { + "editable": true + }, "source": [ "$$\n", "p(\\boldsymbol{\\beta}\\vert\\boldsymbol{D}).\n", @@ -570,16 +650,20 @@ }, { "cell_type": "markdown", - "id": "10e567d6", - "metadata": {}, + "id": "fb0a08c7", + "metadata": { + "editable": true + }, "source": [ "Bayes' theorem comes to our rescue here since (omitting the normalization constant)" ] }, { "cell_type": "markdown", - "id": "8436a81d", - "metadata": {}, + "id": "1453b4eb", + "metadata": { + "editable": true + }, "source": [ "$$\n", "p(\\boldsymbol{\\beta}\\vert\\boldsymbol{D})\\propto p(\\boldsymbol{D}\\vert\\boldsymbol{\\beta})p(\\boldsymbol{\\beta}).\n", @@ -588,16 +672,20 @@ }, { "cell_type": "markdown", - "id": "eb906810", - "metadata": {}, + "id": "319c90a4", + "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": "1521f03f", - "metadata": {}, + "id": "8ab25c72", + "metadata": { + "editable": true + }, "source": [ "## Ridge and Bayes\n", "\n", @@ -610,8 +698,10 @@ }, { "cell_type": "markdown", - "id": "c4186e4b", - "metadata": {}, + "id": "dbf76fe5", + "metadata": { + "editable": true + }, "source": [ "$$\n", "p(\\boldsymbol{\\beta})=\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\beta_j^2}{2\\tau^2}\\right)}.\n", @@ -620,16 +710,20 @@ }, { "cell_type": "markdown", - "id": "7f86d581", - "metadata": {}, + "id": "695f67e1", + "metadata": { + "editable": true + }, "source": [ "Our posterior probability becomes then (omitting the normalization factor which is just a constant)" ] }, { "cell_type": "markdown", - "id": "8fcc90ac", - "metadata": {}, + "id": "4b15acec", + "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", @@ -638,8 +732,10 @@ }, { "cell_type": "markdown", - "id": "f8069c5e", - "metadata": {}, + "id": "77f5d9b3", + "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", @@ -649,8 +745,10 @@ }, { "cell_type": "markdown", - "id": "7d31ce6b", - "metadata": {}, + "id": "32cbbf83", + "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", @@ -659,16 +757,20 @@ }, { "cell_type": "markdown", - "id": "bd0d383f", - "metadata": {}, + "id": "5249d7f1", + "metadata": { + "editable": true + }, "source": [ "and replacing $1/2\\tau^2$ with $\\lambda$ we have" ] }, { "cell_type": "markdown", - "id": "5de8e77b", - "metadata": {}, + "id": "29422e17", + "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", @@ -677,16 +779,20 @@ }, { "cell_type": "markdown", - "id": "51f277ee", - "metadata": {}, + "id": "690b33e7", + "metadata": { + "editable": true + }, "source": [ "which is our Ridge cost function! Nice, isn't it?" ] }, { "cell_type": "markdown", - "id": "0da3b881", - "metadata": {}, + "id": "a646a2eb", + "metadata": { + "editable": true + }, "source": [ "## Lasso and Bayes\n", "\n", @@ -695,8 +801,10 @@ }, { "cell_type": "markdown", - "id": "756063ef", - "metadata": {}, + "id": "f9f18fc1", + "metadata": { + "editable": true + }, "source": [ "$$\n", "p(\\boldsymbol{\\beta})=\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\vert\\beta_j\\vert}{\\tau}\\right)}.\n", @@ -705,16 +813,20 @@ }, { "cell_type": "markdown", - "id": "f4ec070b", - "metadata": {}, + "id": "463d1bc7", + "metadata": { + "editable": true + }, "source": [ "Our posterior probability becomes then (omitting the normalization factor which is just a constant)" ] }, { "cell_type": "markdown", - "id": "78effef0", - "metadata": {}, + "id": "ae1b7e61", + "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", @@ -723,8 +835,10 @@ }, { "cell_type": "markdown", - "id": "12a472ad", - "metadata": {}, + "id": "49b5c310", + "metadata": { + "editable": true + }, "source": [ "Taking the negative\n", "logarithm of the posterior probability and leaving out the\n", @@ -733,8 +847,10 @@ }, { "cell_type": "markdown", - "id": "2446397c", - "metadata": {}, + "id": "23f17df1", + "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", @@ -743,16 +859,20 @@ }, { "cell_type": "markdown", - "id": "88cc7598", - "metadata": {}, + "id": "e9ec5c5f", + "metadata": { + "editable": true + }, "source": [ "and replacing $1/\\tau$ with $\\lambda$ we have" ] }, { "cell_type": "markdown", - "id": "94da09f2", - "metadata": {}, + "id": "7aea8b99", + "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", @@ -761,16 +881,20 @@ }, { "cell_type": "markdown", - "id": "c738c8a5", - "metadata": {}, + "id": "2881efad", + "metadata": { + "editable": true + }, "source": [ "which is our Lasso cost function!" ] }, { "cell_type": "markdown", - "id": "4b809aa9", - "metadata": {}, + "id": "ac7167b6", + "metadata": { + "editable": true + }, "source": [ "## Why resampling methods\n", "\n", @@ -786,8 +910,10 @@ }, { "cell_type": "markdown", - "id": "0422d689", - "metadata": {}, + "id": "5565c36a", + "metadata": { + "editable": true + }, "source": [ "## Resampling methods\n", "Resampling methods are an indispensable tool in modern\n", @@ -812,8 +938,10 @@ }, { "cell_type": "markdown", - "id": "edcbbc94", - "metadata": {}, + "id": "f3d3879b", + "metadata": { + "editable": true + }, "source": [ "## Resampling approaches can be computationally expensive\n", "\n", @@ -836,8 +964,10 @@ }, { "cell_type": "markdown", - "id": "bb8bc020", - "metadata": {}, + "id": "b8f55673", + "metadata": { + "editable": true + }, "source": [ "## Why resampling methods ?\n", "**Statistical analysis.**\n", @@ -851,8 +981,10 @@ }, { "cell_type": "markdown", - "id": "4b5e6fe4", - "metadata": {}, + "id": "53be65ef", + "metadata": { + "editable": true + }, "source": [ "## Statistical analysis\n", "\n", @@ -869,8 +1001,10 @@ }, { "cell_type": "markdown", - "id": "e6ead513", - "metadata": {}, + "id": "5debcca1", + "metadata": { + "editable": true + }, "source": [ "## Resampling methods\n", "\n", @@ -896,8 +1030,10 @@ }, { "cell_type": "markdown", - "id": "6116b137", - "metadata": {}, + "id": "5ac2ee1e", + "metadata": { + "editable": true + }, "source": [ "## Resampling methods: Jackknife and Bootstrap\n", "\n", @@ -919,8 +1055,10 @@ }, { "cell_type": "markdown", - "id": "810a80fb", - "metadata": {}, + "id": "209bafc9", + "metadata": { + "editable": true + }, "source": [ "## Resampling methods: Jackknife\n", "\n", @@ -931,8 +1069,10 @@ }, { "cell_type": "markdown", - "id": "ac902598", - "metadata": {}, + "id": "77140b92", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{x}_i = (x_1,x_2,\\cdots,x_{i-1},x_{i+1},\\cdots,x_n),\n", @@ -941,8 +1081,10 @@ }, { "cell_type": "markdown", - "id": "6d1c87c9", - "metadata": {}, + "id": "8a080bdd", + "metadata": { + "editable": true + }, "source": [ "which equals the vector $\\boldsymbol{x}$ with the exception that observation\n", "number $i$ is left out. Using this notation, define\n", @@ -952,8 +1094,10 @@ }, { "cell_type": "markdown", - "id": "81e9f625", - "metadata": {}, + "id": "9687082c", + "metadata": { + "editable": true + }, "source": [ "## Jackknife code example" ] @@ -961,8 +1105,11 @@ { "cell_type": "code", "execution_count": 3, - "id": "2108cf3e", - "metadata": {}, + "id": "03a76dc9", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "from numpy import *\n", @@ -997,8 +1144,10 @@ }, { "cell_type": "markdown", - "id": "cd1dbd77", - "metadata": {}, + "id": "dbc30dbc", + "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", @@ -1020,8 +1169,10 @@ }, { "cell_type": "markdown", - "id": "dd8a6a19", - "metadata": {}, + "id": "a06525ae", + "metadata": { + "editable": true + }, "source": [ "## The Central Limit Theorem\n", "\n", @@ -1038,8 +1189,10 @@ }, { "cell_type": "markdown", - "id": "11b09a03", - "metadata": {}, + "id": "74247f25", + "metadata": { + "editable": true + }, "source": [ "$$\n", "z=\\frac{x_1+x_2+\\dots+x_m}{m},\n", @@ -1048,16 +1201,20 @@ }, { "cell_type": "markdown", - "id": "9cc18d15", - "metadata": {}, + "id": "092a0ddf", + "metadata": { + "editable": true + }, "source": [ "the question we pose is which is the PDF of the new variable $z$." ] }, { "cell_type": "markdown", - "id": "c8f3836b", - "metadata": {}, + "id": "47352790", + "metadata": { + "editable": true + }, "source": [ "## Finding the Limit\n", "\n", @@ -1069,8 +1226,10 @@ }, { "cell_type": "markdown", - "id": "35f6d279", - "metadata": {}, + "id": "cc3670fd", + "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", @@ -1080,8 +1239,10 @@ }, { "cell_type": "markdown", - "id": "954e305b", - "metadata": {}, + "id": "6c622f4f", + "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", @@ -1091,8 +1252,10 @@ }, { "cell_type": "markdown", - "id": "5004dfbd", - "metadata": {}, + "id": "543e5ed0", + "metadata": { + "editable": true + }, "source": [ "## Rewriting the $\\delta$-function\n", "\n", @@ -1101,8 +1264,10 @@ }, { "cell_type": "markdown", - "id": "bc1494a8", - "metadata": {}, + "id": "e1b0e3b4", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\delta(z-\\frac{x_1+x_2+\\dots+x_m}{m})=\\frac{1}{2\\pi}\\int_{-\\infty}^{\\infty}\n", @@ -1112,8 +1277,10 @@ }, { "cell_type": "markdown", - "id": "051dfc4a", - "metadata": {}, + "id": "7e61322b", + "metadata": { + "editable": true + }, "source": [ "and inserting $e^{i\\mu q-i\\mu q}$ where $\\mu$ is the mean value\n", "we arrive at" @@ -1121,8 +1288,10 @@ }, { "cell_type": "markdown", - "id": "1aee8ced", - "metadata": {}, + "id": "a37caeec", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\tilde{p}(z)=\\frac{1}{2\\pi}\\int_{-\\infty}^{\\infty}\n", @@ -1133,16 +1302,20 @@ }, { "cell_type": "markdown", - "id": "115eb936", - "metadata": {}, + "id": "bbb97441", + "metadata": { + "editable": true + }, "source": [ "with the integral over $x$ resulting in" ] }, { "cell_type": "markdown", - "id": "d8095730", - "metadata": {}, + "id": "82283685", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\int_{-\\infty}^{\\infty}dxp(x)\\exp{\\left(iq(\\mu-x)/m\\right)}=\n", @@ -1153,8 +1326,10 @@ }, { "cell_type": "markdown", - "id": "8e3d928c", - "metadata": {}, + "id": "de5cb84c", + "metadata": { + "editable": true + }, "source": [ "## Identifying Terms\n", "\n", @@ -1164,8 +1339,10 @@ }, { "cell_type": "markdown", - "id": "7a3ebe33", - "metadata": {}, + "id": "de11512b", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\int_{-\\infty}^{\\infty}dxp(x)e^{\\left(iq(\\mu-x)/m\\right)}=\n", @@ -1175,16 +1352,20 @@ }, { "cell_type": "markdown", - "id": "ba88dac3", - "metadata": {}, + "id": "43d9182b", + "metadata": { + "editable": true + }, "source": [ "resulting in" ] }, { "cell_type": "markdown", - "id": "5b700a0c", - "metadata": {}, + "id": "759cd30b", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\left[\\int_{-\\infty}^{\\infty}dxp(x)\\exp{\\left(iq(\\mu-x)/m\\right)}\\right]^m\\approx\n", @@ -1194,16 +1375,20 @@ }, { "cell_type": "markdown", - "id": "680e8a19", - "metadata": {}, + "id": "1519a06b", + "metadata": { + "editable": true + }, "source": [ "and in the limit $m\\rightarrow \\infty$ we obtain" ] }, { "cell_type": "markdown", - "id": "37ec4c6b", - "metadata": {}, + "id": "4f986777", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\tilde{p}(z)=\\frac{1}{\\sqrt{2\\pi}(\\sigma/\\sqrt{m})}\n", @@ -1213,8 +1398,10 @@ }, { "cell_type": "markdown", - "id": "d852821b", - "metadata": {}, + "id": "526eab56", + "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", @@ -1223,8 +1410,10 @@ }, { "cell_type": "markdown", - "id": "0ae2df37", - "metadata": {}, + "id": "9619c359", + "metadata": { + "editable": true + }, "source": [ "## Wrapping it up\n", "\n", @@ -1240,8 +1429,10 @@ }, { "cell_type": "markdown", - "id": "0f9730d2", - "metadata": {}, + "id": "3c6fead9", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\sigma_m=\n", @@ -1251,8 +1442,10 @@ }, { "cell_type": "markdown", - "id": "4b928715", - "metadata": {}, + "id": "f4abcdcb", + "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", @@ -1261,8 +1454,10 @@ }, { "cell_type": "markdown", - "id": "336d1b60", - "metadata": {}, + "id": "556352fa", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\sigma_m\\approx \n", @@ -1272,8 +1467,10 @@ }, { "cell_type": "markdown", - "id": "48e0d6fb", - "metadata": {}, + "id": "3d28eb20", + "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", @@ -1290,8 +1487,10 @@ }, { "cell_type": "markdown", - "id": "9b054871", - "metadata": {}, + "id": "57e8de0d", + "metadata": { + "editable": true + }, "source": [ "## Confidence Intervals\n", "\n", @@ -1311,8 +1510,10 @@ }, { "cell_type": "markdown", - "id": "1b4aca73", - "metadata": {}, + "id": "1f8d01fb", + "metadata": { + "editable": true + }, "source": [ "## Standard Approach based on the Normal Distribution\n", "\n", @@ -1324,8 +1525,10 @@ }, { "cell_type": "markdown", - "id": "692bbecc", - "metadata": {}, + "id": "11903d6d", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\left(\\mu_{\\beta}\\pm \\frac{z\\sigma_{\\beta}}{\\sqrt{n}}\\right),\n", @@ -1334,8 +1537,10 @@ }, { "cell_type": "markdown", - "id": "6c3510cb", - "metadata": {}, + "id": "f9ff6c5d", + "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", @@ -1352,8 +1557,10 @@ }, { "cell_type": "markdown", - "id": "ddee3616", - "metadata": {}, + "id": "1c5829bf", + "metadata": { + "editable": true + }, "source": [ "## Resampling methods: Bootstrap background\n", "\n", @@ -1370,8 +1577,10 @@ }, { "cell_type": "markdown", - "id": "caf51b28", - "metadata": {}, + "id": "724b9334", + "metadata": { + "editable": true + }, "source": [ "## Resampling methods: More Bootstrap background\n", "\n", @@ -1392,8 +1601,10 @@ }, { "cell_type": "markdown", - "id": "bc59d5da", - "metadata": {}, + "id": "c22f8b1e", + "metadata": { + "editable": true + }, "source": [ "## Resampling methods: Bootstrap approach\n", "\n", @@ -1411,8 +1622,10 @@ }, { "cell_type": "markdown", - "id": "017fc1aa", - "metadata": {}, + "id": "e44a4898", + "metadata": { + "editable": true + }, "source": [ "## Resampling methods: Bootstrap steps\n", "\n", @@ -1439,8 +1652,10 @@ }, { "cell_type": "markdown", - "id": "95ffe579", - "metadata": {}, + "id": "bb9080cb", + "metadata": { + "editable": true + }, "source": [ "## Code example for the Bootstrap method\n", "\n", @@ -1461,8 +1676,11 @@ { "cell_type": "code", "execution_count": 4, - "id": "806253ab", - "metadata": {}, + "id": "fe70f1da", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "import numpy as np\n", @@ -1495,16 +1713,20 @@ }, { "cell_type": "markdown", - "id": "2a32924c", - "metadata": {}, + "id": "c6ccd64b", + "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": "63282d77", - "metadata": {}, + "id": "ba0c7ff8", + "metadata": { + "editable": true + }, "source": [ "## Plotting the Histogram" ] @@ -1512,8 +1734,11 @@ { "cell_type": "code", "execution_count": 5, - "id": "45083031", - "metadata": {}, + "id": "cb6ba5ec", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "# the histogram of the bootstrapped data (normalized data if density = True)\n", @@ -1529,8 +1754,10 @@ }, { "cell_type": "markdown", - "id": "c76d90f0", - "metadata": {}, + "id": "764ea54a", + "metadata": { + "editable": true + }, "source": [ "## The bias-variance tradeoff\n", "\n", @@ -1545,8 +1772,10 @@ }, { "cell_type": "markdown", - "id": "261a1910", - "metadata": {}, + "id": "5e352e32", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{y}=f(\\boldsymbol{x}) + \\boldsymbol{\\epsilon}\n", @@ -1555,8 +1784,10 @@ }, { "cell_type": "markdown", - "id": "a5a3c08b", - "metadata": {}, + "id": "25384b44", + "metadata": { + "editable": true + }, "source": [ "where $\\epsilon$ is normally distributed with mean zero and standard deviation $\\sigma^2$.\n", "\n", @@ -1570,8 +1801,10 @@ }, { "cell_type": "markdown", - "id": "db14284a", - "metadata": {}, + "id": "fea91747", + "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", @@ -1580,16 +1813,20 @@ }, { "cell_type": "markdown", - "id": "12e08977", - "metadata": {}, + "id": "42a694dd", + "metadata": { + "editable": true + }, "source": [ "We can rewrite this as" ] }, { "cell_type": "markdown", - "id": "5d82351e", - "metadata": {}, + "id": "68c9ac11", + "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", @@ -1598,8 +1835,10 @@ }, { "cell_type": "markdown", - "id": "3c56182a", - "metadata": {}, + "id": "65bb32e4", + "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", @@ -1613,8 +1852,10 @@ }, { "cell_type": "markdown", - "id": "d42243aa", - "metadata": {}, + "id": "c790f82b", + "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", @@ -1623,16 +1864,20 @@ }, { "cell_type": "markdown", - "id": "716cf198", - "metadata": {}, + "id": "3c57960a", + "metadata": { + "editable": true + }, "source": [ "and adding and subtracting $\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right]$ we get" ] }, { "cell_type": "markdown", - "id": "ca80292a", - "metadata": {}, + "id": "669811bb", + "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", @@ -1641,16 +1886,20 @@ }, { "cell_type": "markdown", - "id": "61026a02", - "metadata": {}, + "id": "14b4bd18", + "metadata": { + "editable": true + }, "source": [ "which, using the abovementioned expectation values can be rewritten as" ] }, { "cell_type": "markdown", - "id": "30ae2571", - "metadata": {}, + "id": "adb20615", + "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", @@ -1659,16 +1908,20 @@ }, { "cell_type": "markdown", - "id": "dcd2508b", - "metadata": {}, + "id": "d7ba19f7", + "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": "62ddee8d", - "metadata": {}, + "id": "5ea7ea62", + "metadata": { + "editable": true + }, "source": [ "## A way to Read the Bias-Variance Tradeoff\n", "\n", @@ -1681,8 +1934,10 @@ }, { "cell_type": "markdown", - "id": "8cca508b", - "metadata": {}, + "id": "27b95bb8", + "metadata": { + "editable": true + }, "source": [ "## Example code for Bias-Variance tradeoff" ] @@ -1690,8 +1945,11 @@ { "cell_type": "code", "execution_count": 6, - "id": "15a3aa89", - "metadata": {}, + "id": "0b1e1e2b", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", @@ -1752,187 +2010,23 @@ }, { "cell_type": "markdown", - "id": "b15ad9a8", - "metadata": {}, + "id": "92d2511e", + "metadata": { + "editable": true + }, "source": [ "## Understanding what happens" ] }, { "cell_type": "code", - "execution_count": 3, - "id": "b12fbc71", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Polynomial degree: 0\n", - "Error: 0.2937910450030775\n", - "Bias^2: 0.2929212799917661\n", - "Var: 0.0008697650113114114\n", - "0.2937910450030775 >= 0.2929212799917661 + 0.0008697650113114114 = 0.2937910450030775\n", - "Polynomial degree: 1\n", - "Error: 0.06894146856540673\n", - "Bias^2: 0.06832043024896824\n", - "Var: 0.0006210383164384982\n", - "0.06894146856540673 >= 0.06832043024896824 + 0.0006210383164384982 = 0.06894146856540674\n", - "Polynomial degree: 2\n", - "Error: 0.06106765054837855\n", - "Bias^2: 0.06054765422099532\n", - "Var: 0.0005199963273832353\n", - "0.06106765054837855 >= 0.06054765422099532 + 0.0005199963273832353 = 0.06106765054837855\n", - "Polynomial degree: 3\n", - "Error: 0.03346202229536658\n", - "Bias^2: 0.033140956468054594\n", - "Var: 0.00032106582731199066\n", - "0.03346202229536658 >= 0.033140956468054594 + 0.00032106582731199066 = 0.033462022295366586\n", - "Polynomial degree: 4\n", - "Error: 0.03352778717048319\n", - "Bias^2: 0.033116075385773665\n", - "Var: 0.00041171178470952977\n", - "0.03352778717048319 >= 0.033116075385773665 + 0.00041171178470952977 = 0.03352778717048319\n", - "Polynomial degree: 5\n", - "Error: 0.025517151530854775\n", - "Bias^2: 0.02496889020925645\n", - "Var: 0.0005482613215983166\n", - "0.025517151530854775 >= 0.02496889020925645 + 0.0005482613215983166 = 0.025517151530854765\n", - "Polynomial degree: 6\n", - "Error: 0.019946076068427937\n", - "Bias^2: 0.01950207688986865\n", - "Var: 0.00044399917855928643\n", - "0.019946076068427937 >= 0.01950207688986865 + 0.00044399917855928643 = 0.019946076068427937\n", - "Polynomial degree: 7\n", - "Error: 0.018695928655417776\n", - "Bias^2: 0.017979840090002395\n", - "Var: 0.0007160885654153815\n", - "0.018695928655417776 >= 0.017979840090002395 + 0.0007160885654153815 = 0.018695928655417776\n", - "Polynomial degree: 8\n", - "Error: 0.010736105188369705\n", - "Bias^2: 0.010376602508045108\n", - "Var: 0.0003595026803245951\n", - "0.010736105188369705 >= 0.010376602508045108 + 0.0003595026803245951 = 0.010736105188369703\n", - "Polynomial degree: 9\n", - "Error: 0.011013290652731648\n", - "Bias^2: 0.010539027867198339\n", - "Var: 0.0004742627855333097\n", - "0.011013290652731648 >= 0.010539027867198339 + 0.0004742627855333097 = 0.011013290652731648\n", - "Polynomial degree: 10\n", - "Error: 0.010972468815260695\n", - "Bias^2: 0.010593565969982321\n", - "Var: 0.0003789028452783743\n", - "0.010972468815260695 >= 0.010593565969982321 + 0.0003789028452783743 = 0.010972468815260695\n", - "Polynomial degree: 11\n", - "Error: 0.010840555937749019\n", - "Bias^2: 0.010348475861970803\n", - "Var: 0.0004920800757782156\n", - "0.010840555937749019 >= 0.010348475861970803 + 0.0004920800757782156 = 0.010840555937749019\n", - "Polynomial degree: 12\n", - "Error: 0.010192472149420886\n", - "Bias^2: 0.009610568640077932\n", - "Var: 0.0005819035093429566\n", - "0.010192472149420886 >= 0.009610568640077932 + 0.0005819035093429566 = 0.010192472149420888\n", - "Polynomial degree: 13\n", - "Error: 0.010312285920735095\n", - "Bias^2: 0.009802534263878348\n", - "Var: 0.0005097516568567488\n", - "0.010312285920735095 >= 0.009802534263878348 + 0.0005097516568567488 = 0.010312285920735097\n", - "Polynomial degree: 14\n", - "Error: 0.010722455299400673\n", - "Bias^2: 0.010088916760115184\n", - "Var: 0.0006335385392854925\n", - "0.010722455299400673 >= 0.010088916760115184 + 0.0006335385392854925 = 0.010722455299400677\n", - "Polynomial degree: 15\n", - "Error: 0.01115543750295569\n", - "Bias^2: 0.01031176122774682\n", - "Var: 0.0008436762752088676\n", - "0.01115543750295569 >= 0.01031176122774682 + 0.0008436762752088676 = 0.011155437502955688\n", - "Polynomial degree: 16\n", - "Error: 0.011028026783572502\n", - "Bias^2: 0.01022357238456908\n", - "Var: 0.0008044543990034224\n", - "0.011028026783572502 >= 0.01022357238456908 + 0.0008044543990034224 = 0.011028026783572502\n", - "Polynomial degree: 17\n", - "Error: 0.011628743128010138\n", - "Bias^2: 0.010533948727421355\n", - "Var: 0.0010947944005887838\n", - "0.011628743128010138 >= 0.010533948727421355 + 0.0010947944005887838 = 0.01162874312801014\n", - "Polynomial degree: 18\n", - "Error: 0.01437168218988819\n", - "Bias^2: 0.010922362277115589\n", - "Var: 0.0034493199127726\n", - "0.01437168218988819 >= 0.010922362277115589 + 0.0034493199127726 = 0.014371682189888189\n", - "Polynomial degree: 19\n", - "Error: 0.02698630625511262\n", - "Bias^2: 0.012141764328955737\n", - "Var: 0.01484454192615689\n", - "0.02698630625511262 >= 0.012141764328955737 + 0.01484454192615689 = 0.026986306255112627\n", - "Polynomial degree: 20\n", - "Error: 0.01224924367469358\n", - "Bias^2: 0.01006785242252074\n", - "Var: 0.00218139125217284\n", - "0.01224924367469358 >= 0.01006785242252074 + 0.00218139125217284 = 0.012249243674693579\n", - "Polynomial degree: 21\n", - "Error: 0.014973172935081075\n", - "Bias^2: 0.01015437128796444\n", - "Var: 0.004818801647116639\n", - "0.014973172935081075 >= 0.01015437128796444 + 0.004818801647116639 = 0.014973172935081078\n", - "Polynomial degree: 22\n", - "Error: 0.014186611568393607\n", - "Bias^2: 0.00959413326440947\n", - "Var: 0.004592478303984134\n", - "0.014186611568393607 >= 0.00959413326440947 + 0.004592478303984134 = 0.014186611568393605\n", - "Polynomial degree: 23\n", - "Error: 0.025574557075127447\n", - "Bias^2: 0.00947751730999793\n", - "Var: 0.016097039765129516\n", - "0.025574557075127447 >= 0.00947751730999793 + 0.016097039765129516 = 0.025574557075127444\n", - "Polynomial degree: 24\n", - "Error: 0.03147297560808652\n", - "Bias^2: 0.009565257541285182\n", - "Var: 0.021907718066801328\n", - "0.03147297560808652 >= 0.009565257541285182 + 0.021907718066801328 = 0.03147297560808651\n", - "Polynomial degree: 25\n", - "Error: 0.03929022375934006\n", - "Bias^2: 0.009776230006649464\n", - "Var: 0.029513993752690603\n", - "0.03929022375934006 >= 0.009776230006649464 + 0.029513993752690603 = 0.03929022375934007\n", - "Polynomial degree: 26\n", - "Error: 0.15813475868985663\n", - "Bias^2: 0.013239747711811887\n", - "Var: 0.14489501097804466\n", - "0.15813475868985663 >= 0.013239747711811887 + 0.14489501097804466 = 0.15813475868985655\n", - "Polynomial degree: 27\n", - "Error: 0.13603193678604983\n", - "Bias^2: 0.013286496181044733\n", - "Var: 0.12274544060500511\n", - "0.13603193678604983 >= 0.013286496181044733 + 0.12274544060500511 = 0.13603193678604986\n", - "Polynomial degree: 28\n", - "Error: 0.7213612740362524\n", - "Bias^2: 0.044334550324851923\n", - "Var: 0.6770267237114005\n", - "0.7213612740362524 >= 0.044334550324851923 + 0.6770267237114005 = 0.7213612740362524\n", - "Polynomial degree: 29\n", - "Error: 0.4847969941238023\n", - "Bias^2: 0.011774752533506906\n", - "Var: 0.4730222415902955\n", - "0.4847969941238023 >= 0.011774752533506906 + 0.4730222415902955 = 0.4847969941238024\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXUAAAD4CAYAAAATpHZ6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAxq0lEQVR4nO3de3xT933w8c9XkmX5fsMGgg02hBiIuQVD2uZG7kmXhmxJk7B2T9O0TZc0fbpL9oKse9I07bas69rsaenWLO3SPVtC0rRLWEugSXNPc8FQCGBDYsBgY3zB2JZtSZYs/Z4/JBnZ+CIbWze+b15+Sefop6Pv0TFf/fw7P32PGGNQSimVGizxDkAppdTU0aSulFIpRJO6UkqlEE3qSimVQjSpK6VUCrHF64VnzJhhysvL4/XySimVlHbu3HnSGFM82uNxS+rl5eXU1NTE6+WVUiopicjRsR7X4RellEohmtSVUiqFaFJXSqkUErcx9ZH4fD6amprweDzxDiWpOBwOSktLSUtLi3coSqk4S6ik3tTURE5ODuXl5YhIvMNJCsYYOjo6aGpqoqKiIt7hKKXiLKGGXzweD0VFRZrQJ0BEKCoq0r9ulFJAgiV1QBP6JOh7ppQKS7ikrpRSyabhZB+vf9ge7zAATepnsFqtrFixYvDn0UcfjXdISqkE9+M3DnPvf+4kEIj/9SkS6kRpIsjIyGD37t1jtvH7/Vit1lGXo32eUio1dPZ5cXn9HO9yU1aYGddYtKcepfLycjZs2MBFF13Ez3/+8zOWn376aZYuXUpVVRUbNmwYfF52djZ/+Zd/yfLly3nnnXfiuAdKqeni9PgAqG/vjXMkUfbUReQG4J8BK/CEMebRYY9/H7gytJgJlBhj8s8msG/+z35qm51ns4kzLDkvl2986sIx27jdblasWDG4/OCDD3LHHXcAUFRUxK5duwDYuHHj4HJzczMf+9jH2LlzJwUFBVx33XU8//zz3HLLLfT19XHxxRfzT//0T1O6L0qpxNHtDiX11l6urCyJayzjJnURsQKbgGuBJmCHiGwxxtSG2xhj/jyi/VeBldMQa0yMNfwSTu7Dl3fs2MHatWspLg4WTvvMZz7DG2+8wS233ILVauXWW2+d1piVUvE1mNTbkqOnvgaoN8YcBhCRzcA6oHaU9uuBb5xtYOP1qOMhKytrzOWROBwOHUdXKsUNJvUEGH6JZkx9DtAYsdwUWncGEZkHVACvjPL4PSJSIyI17e2JMf1nKqxZs4bXX3+dkydP4vf7efrpp7niiiviHZZSKgYCAUNv/wAAH7X2YEx8Z8BM9YnSO4HnjDH+kR40xjxujKk2xlSHhyoSTXhMPfyzcePGcZ8ze/ZsHn30Ua688kqWL1/OqlWrWLduXQyiVUrFW49nAGNgbmEmTs8A7b39cY0nmuGX40BZxHJpaN1I7gS+crZBxZPfP+LnEQ0NDWMur1+/nvXr15/xvN7e+P85ppSaPuGhl1XzCjh2ykV9ay8lOY64xRNNT30HsFBEKkTETjBxbxneSEQWAQWAzttTSp0zwkn9onkFQPzH1cdN6saYAeB+YDtQBzxrjNkvIo+IyM0RTe8ENpt4DygppVQMheeoX1CSTU66jY9a45vUo5qnbozZCmwdtu6hYcsPT11YSimVHLrdPsTaR0/gOAtKsuM+rVG/UaqUUmeh2+3DPuO3fGPHfSwozkr84RellFKj63b7EFsPTm83swpdtPf00+3yxS0eTepKKXUWnG4fFqsLAFvGCQDq23viFo8m9WEaGhqoqqo6Y/0Xv/hFamtH+xKtUupc1e32YUsLXnnMLcHvacbzZKmW3o3SE088Ee8QlFIJKHii1I0BTrgPkW6rjOvJUu2pj2BgYIDPfOYzLF68mNtuuw2Xy8XatWupqakB4N5776W6upoLL7yQb3zjdJmbjRs3smTJEpYtW8YDDzwQr/CVUjHU7fZhLMHhl4OdB1lQnB3Xk6WJ21N/cSO07J3abc5aCjeOfyWjgwcP8pOf/IRLLrmEu+++mx/96EdDHv/bv/1bCgsL8fv9XH311XzwwQfMmTOH//7v/+bAgQOICF1dXVMbu1IqIXV7+jHZHnLScjjRd4JLi+GDY9pTTyhlZWVccsklAHz2s5/lrbfeGvL4s88+y0UXXcTKlSvZv38/tbW15OXl4XA4+MIXvsAvf/lLMjPje/UTpVRsdHu6AVg1axUAeXntHO9y4/IOxCWexO2pR9Gjni4iMurykSNH+O53v8uOHTsoKCjgrrvuwuPxYLPZeP/99/ntb3/Lc889xw9/+ENeeWXEYpVKqRTi9AYv5rNm1hpea3wNSW8GKjjU1sfS0ryYx6M99REcO3Zs8NJzTz31FJdeeungY06nk6ysLPLy8mhtbeXFF18EgoW7uru7+eQnP8n3v/999uzZE5fYlVKxY4yh1xdM6hV5FRRnFNNrjgHxm9aoSX0ElZWVbNq0icWLF9PZ2cm99947+Njy5ctZuXIlixYt4o//+I8Hh2l6enq46aabWLZsGZdeeinf+9734hW+UipGXF4/AQmeJM2z51FZWMlx1yFsFonbtMbEHX6Jk/Lycg4cOHDG+tdee23w/pNPPjnic99///1pikoplYjC0xkBctNzWVS4iHeb32VuUVrcpjVqUldKqUkKJvXTPfVFhYsYMAOcV+ykvj0tLjHp8ItSSk1SZE89x57DosJFAGTltHK0w4V3IBDzmDSpK6XUJDlDPfVMWzZWi5WynDIybBkE0o7jDxgaOvpiHpMmdaWUmqRwTz3XnguARSxUFlTS5T8KxKcGjCZ1pZSapG63D7G4yUs/PR+9srCSxt56RAJxOVmqSV0ppSYpPPxSEJHUFxUuom+gj9kz3HzUFvu56lEldRG5QUQOiki9iGwcpc3tIlIrIvtF5KmpDTM2rrzySrZv3z5k3WOPPTZknvpYHnroIV5++eXpCE0plYCcngGsNjd5jqFJHaCksCMxe+oiYgU2ATcCS4D1IrJkWJuFwIPAJcaYC4E/m/pQp9/69evZvHnzkHWbN29m/fr14z7X7/fzyCOPcM0110xXeEqpBBMeU8+zn07q5+efj0UsOLJbOXyyD3/AxDSmaHrqa4B6Y8xhY4wX2AysG9bmS8AmY0wngDGmbWrDjI3bbruNX//613i9XiB4wYzm5maefvrpEUvtlpeXs2HDBi666CJ+/vOfc9ddd/Hcc88B8Mgjj7B69Wqqqqq45557MCZ4YNeuXcuGDRtYs2YNF1xwAW+++SYQ/FB44IEHqKqqYtmyZfzgBz8AYOfOnVxxxRWsWrWK66+/nhMnTsTyLVFKjaHL7cVYXOSm5w6uc9gcVORW4LU04R0I0HjKFdOYovny0RygMWK5Cbh4WJsLAETkbcAKPGyM2XY2gf3D+//AgVNnfrPzbCwqXMSGNRtGfbywsJA1a9bw4osvsm7dOjZv3sztt9/OX//1X59RanfZsmUAFBUVsWvXLgC2bTu9y/fffz8PPfQQAH/yJ3/Cr371Kz71qU8BwXrt77//Plu3buWb3/wmL7/8Mo8//jgNDQ3s3r0bm83GqVOn8Pl8fPWrX+WFF16guLiYZ555hq9//ev89Kc/ndL3RSk1OV3uXsgMDOmpQ/Bk6bvNwesv1Lf1Uj4jK2YxTdWJUhuwEFgLrAf+TUTyhzcSkXtEpEZEatrb26fopadW5BBMeOhlpFK7YXfccceI23n11Ve5+OKLWbp0Ka+88gr79+8ffOyP/uiPAFi1ahUNDQ0AvPzyy3z5y1/GZgt+zhYWFnLw4EH27dvHtddey4oVK/j2t79NU1PTdOy2UmoSuvuDZXcjZ79AsAN5qr8NrH18FONx9Wh66seBsojl0tC6SE3Ae8YYH3BERD4kmOR3RDYyxjwOPA5QXV095kDTWD3q6bRu3Tr+/M//nF27duFyuSgsLByx1G5YVtaZn8Aej4f77ruPmpoaysrKePjhh4c8Jz09HQCr1crAwOg1l40xXHjhhYMVI5VSiSVcdjc8Tz2ssrASgKKC2J8sjaanvgNYKCIVImIH7gS2DGvzPMFeOiIyg+BwzOGpCzN2srOzufLKK7n77rtZv379qKV2xxJO4DNmzKC3t3dwnH0s1157LT/+8Y8Hk/ypU6eorKykvb19MKn7fL4hPX6lVHyFy+5GjqkDVBaEknphO/UxntY4blI3xgwA9wPbgTrgWWPMfhF5RERuDjXbDnSISC3wKvBXxpiO6Qp6uq1fv549e/awfv36UUvtjiU/P58vfelLVFVVcf3117N69epxn/PFL36RuXPnsmzZMpYvX85TTz2F3W7nueeeY8OGDSxfvpwVK1bwu9/9bip2USl1ljw+PwMEywAMH34pyiiiJKOENEcLh9r7BidKxILE8sUiVVdXm/CFnMPq6upYvHhxXOJJdvreKRVbbT0eLtn09zhm/5KXb3uZmVkzhzx+38v3caC9kcN7/pR3HryK2XkZU/K6IrLTGFM92uP6jVKllJoEZ0TZ3eHDLxA8WdrhawTxxbQGjCZ1pZSahG63DyxubJKGw+o44/HKwkoCxo8lvS2mJ0sTLqnHazgomel7plTshb9Nmp2We8bF6uF0uYDsnNaYTmtMqKTucDjo6OjQJDUBxhg6OjpwOM7sKSilpo/TPYBYXeTYzxx6ASjLKSPTlkleXjuHYpjUE+pydqWlpTQ1NZGoX0xKVA6Hg9LS0niHodQ5JXwpu/xhM1/CLGKhsrCSox3N1B85R5N6WloaFRUV8Q5DKaXGFR5+KcyYO2qbyoJK9re/wKk+Dx29/RRlp097XAk1/KKUUsmi2+3DYnWTN8LMl7BFhYvwGjeS1hmzk6Wa1JVSahKc4bK7owy/wOmTpVbHiZidLNWkrpRSk9DpcoOl/4wKjZEW5C/AKlYcmS3aU1dKqUTW6QlWaBzpi0dhDpuDirwKsnJbNakrpVQi6wqX3R2jpw6hLyHZmjWpK6VUIuv1BasvjjWmDrCoYBEeOmjp66DH45v2uDSpK6XUJPT5Rq6lPly4tro1/URMeuua1JVSaoIG/AE8gWCCHq+nHk7qFkdshmA0qSul1AQ5PQOI1Q2Mn9QLHYWUZJaQlhGbGTCa1JVSaoIiy+5mp2WP235R4SLSszSpK6VUQgqXCMiwZmO1WMdtX1lQyYC1hQ/bOqc9Nk3qSik1QZFld6MR/GZpgGbXETw+/7TGpkldKaUmyOkJDr+MN/MlLFwuwJJ+gsPtfdMZWnRJXURuEJGDIlIvIhtHePwuEWkXkd2hny9OfahKKZUYut0+xOIm3zH2SdKw0pxSHNYMLI5mPmrrmdbYxi29KyJWYBNwLdAE7BCRLcaY2mFNnzHG3D8NMSqlVEIJ11IvdORH1T5cW31Xz4lpv2BGND31NUC9MeawMcYLbAbWTWtUSimVwMJj6gVR9tQBFhcuwuZo4cNW5zRGFl1SnwM0Riw3hdYNd6uIfCAiz4lI2UgbEpF7RKRGRGr06kZKqWTV7Rq/7O5wi4sWYyweDnYcncbIpu5E6f8A5caYZcBLwM9GamSMedwYU22MqS4uLp6il1ZKqdjqdPeABCaU1MPfLG12H8LnD0xXaFEl9eNAZM+7NLRukDGmwxjTH1p8Alg1NeEppVTiGSy7G+XsF4Dz889HsGDszRztcE1XaFEl9R3AQhGpEBE7cCewJbKBiMyOWLwZqJu6EJVSKrGEy+6OVUt9uHRrOnOyyrGmT28NmHFnvxhjBkTkfmA7YAV+aozZLyKPADXGmC3A/xaRm4EB4BRw17RFrJRScdbri66W+nBVMxZz3Pk2/QPT9wWkcZM6gDFmK7B12LqHIu4/CDw4taEppVRi6hsIzjWfSE8doKp4MduO/prLF2VOR1iAfqNUKaUmJBAwuENJfaI99fDJ0oOdB6c8rjBN6kopNQG93gGIsuzucJUFwaT+UedHUx5XWFTDL0oppYKcbh9Y3NjEjsPmmNBzCxwFvHTbS8zMnDlN0WlSV0qpCQmXCMi0jV9HfSSzsmZNcURD6fCLUkpNQDipR1t2N9Y0qSul1AQ4Q3Vfcid4kjRWNKkrpdQEON3B65PmO7SnrpRSSW+iZXdjTZO6UkpNQPgCGTMyC+Idyog0qSul1AR0utyI1TuhYl6xpEldKaUm4JSnC5j4F49iRZO6UkpNgCZ1pZRKId39wcvR6fCLUkqlgB5vMKlrT10ppVKAa5IVGmNFk7pSSkXJGIPHH7xq0URrqceKJnWllIqSxxfAL32AkJ02uYJe002TulJKRSn8bVKHJQurxRrvcEYUVVIXkRtE5KCI1IvIxjHa3SoiRkSqpy5EpZRKDE5PsJhXpi0n3qGMatykLiJWYBNwI7AEWC8iS0ZolwN8DXhvqoNUSqlE0B2q0JioZXchup76GqDeGHPYGOMFNgPrRmj3LeAfAM8UxqeUUgmj2xUcfslL0JOkEF1SnwM0Riw3hdYNEpGLgDJjzK/H2pCI3CMiNSJS097ePuFglVIqnsLFvPITdI46TMGJUhGxAN8D/nK8tsaYx40x1caY6uLi4rN9aaWUiimnxwdWN0UZ+fEOZVTRJPXjQFnEcmloXVgOUAW8JiINwMeALXqyVCmVarpcXsSauGV3IbqkvgNYKCIVImIH7gS2hB80xnQbY2YYY8qNMeXAu8DNxpiaaYlYKaXipMPtRCRAviOJh1+MMQPA/cB2oA541hizX0QeEZGbpztApZRKFB2uLiBxi3kB2KJpZIzZCmwdtu6hUdquPfuwlFIq8XT1dwOJW8wL9BulSikVNWeCl90FTepKKRW1RC+7C5rUlVIqan0DmtSVUipleAKhsrs6/KKUUsnN5w8wQB9W7DhsjniHMypN6kopFYVutw+sLjKsiVlHPUyTulJKRSFc9yUzgSs0giZ1pZSKijNUdjcnLXFrqYMmdaWUikr4qke5CXrB6TBN6kopFYXwBTIKErjuC2hSV0qpqISHXwozNKkrpVTS63S7EYuX4qzELbsLmtSVUioq7aEKjUUOTepKKZX0ToXL7ibw9UlBk7pSSkWl0xMqu6uzX5RSKvk5vYlfSx00qSulVFR6fIlfSx00qSulVFRcAz2AjqkrpVRK8Ph7ACHHngJlAkTkBhE5KCL1IrJxhMf/VET2ishuEXlLRJZMfahKKRUfgYDBSx92ycIiid0XHjc6EbECm4AbgSXA+hGS9lPGmKXGmBXAd4DvTXWgSikVLz2eAcTiTviyuxBdT30NUG+MOWyM8QKbgXWRDYwxzojFLMBMXYhKKRVf4WJeWQledheiS+pzgMaI5abQuiFE5CsicohgT/1/j7QhEblHRGpEpKa9vX0y8dLc6eKVXbWTeq5SSk1GuJhXdoKX3YUpPFFqjNlkjFkAbAD+ZpQ2jxtjqo0x1cXFxZN6naYt3+KKFz5Bd0/PWUSrlFLRc3qCF8jIT/A56hBdUj8OlEUsl4bWjWYzcMtZxDSmjNmVWMXQ9OGe6XoJpZQaInwpuwJHfrxDGVc0SX0HsFBEKkTEDtwJbIlsICILIxb/APho6kIcqnjBCgC6j2pSV0rFRperPynK7gLYxmtgjBkQkfuB7YAV+KkxZr+IPALUGGO2APeLyDWAD+gEPjddAc+ctwSfsRJo1XF1pVRsnHQ5ETEUZyZ2hUaIIqkDGGO2AluHrXso4v7XpjiuUYnNznFbGZnd0/bHgFJKDdHu6gRIiqSe2LPoR9GZfT4zPUfiHYZS6hxxyt0FJH6JAEjSpO4vqmQObXSc6oh3KEqpc0CXJ/hVnESv0AhJmtQzSqsAaP5IT5YqpaafM1ShMdFrqUOSJvWZC1YC4DymSV0pNf16vdpTn1ZFpQtxY8e01cU7FKXUOSBZyu5CkiZ1sdpots0jW2fAKKViwBPowYqddGt6vEMZV1ImdYDunAXM9h7BGK0dppSaPsYYvIFe0i2JX6ERkjipm+LFzKST9vbWeIeilEphLq8fY3HjSIKyu5DEST2zdCkAzR/+Ps6RKKVSWTKV3YUkTuqzzl8BQG/jB/ENRCmV0sJld3M1qU+vgtnz6SUDaT8Q71CUUinMGUrqeUkw8wWSOKkjwom0cnJ76uMdiVIqhYWHX5Kh7C4kc1IHnLnnc563gUBAZ8AopaZHR18fYvFRlJH4xbwgyZM6JUsoEicnmhvHb6uUUpPQ1heq0JiVH99AopTUST1nbrAGTNuhXXGORCmVqjrc3QCUZGlPfdrNOv8iAHob98c5EqVUqjrl6QIg35H4dV8gyZN67ow5dJGD7aTWgFFKTY8uT7CnngwVGiHJkzoitKSXk9erM2CUUtPDGarQmAzFvCDKpC4iN4jIQRGpF5GNIzz+FyJSKyIfiMhvRWTe1Ic6st68hZT6juL3B2L1kkqpc0ivL3nK7kIUSV1ErMAm4EZgCbBeRJYMa/Z7oNoYswx4DvjOVAc6anwlS8gVF8cbD8XqJZVS55Bg2V0hOy11ar+sAeqNMYeNMV5gM7AusoEx5lVjjCu0+C5QOrVhji5v7jIA2uq1BoxSaup5Ar2kkYVFkmO0Opoo5wCRE8GbQutG8wXgxZEeEJF7RKRGRGra29ujj3IM510QvAqS57jOgFFKTT2v6SU9SSo0whSfKBWRzwLVwD+O9Lgx5nFjTLUxprq4uHhKXjMzv4QOCrB1aA0YpdTU8vj8GHGRkURJ3RZFm+NAWcRyaWjdECJyDfB14ApjTP/UhBedVkcFBX06A0YpNbWcnmAxr2zb1HRCYyGanvoOYKGIVIiIHbgT2BLZQERWAj8GbjbGtE19mGNz5V9A2UAjXt9ArF9aKZXCnKFiXjn25JjOCFEkdWPMAHA/sB2oA541xuwXkUdE5OZQs38EsoGfi8huEdkyyuamhXXWEjKln+MNOgSjlJo63W4fYkmesrsQ3fALxpitwNZh6x6KuH/NFMc1IfnzlsNuaD+8h4qFVfEMRSmVQrpcXrC6k6bsLiT7N0pDZi9cDkD/8X1xjkQplUra+roRMczIzI93KFFLiaTuyC6gVYpJP3Uw3qEopVLIYNndzOSo0AgpktQB2jLmU+g6HO8wlFIp5KSrC4BZ2YXxDWQCUiapewoqKfM34umP6WxKpVQK63R3AVCYkR/XOCYiZZJ62qwlpMsAjYd0XF0pNbpAwOCP8hKYXf2hsrtJUswLUiipF1YET5aeOrInzpEopRLZ9176kBXf/A1PvHkY78DY1V2d3mBSz02leerJYvb5ywgYwXeiNt6hKKUSVCBgeG5nEwb49q/ruOGxN3jlQCvGjNxz7/X1AMlTSx1SKKmnObI5YZ2FQ2fAKKVGsaepixanh0fWXci/37UaBO5+soa7/n0H9W09Z7R3+3uwYCfdmh6HaCcnZZI6wMnMBRS5dQaMUmpk2/a1kGbvxJq9j8svKGL7n13O/7lpCbuOdXL9Y2/yzf/ZT7fLN9i+P1R2N5mkVFL3FlxAWaCZvr6+eIeilEowxhi27W9h5vzt/M07f8Wdv76TPe27+MKlFbz2wFruWF3Gz37XwNrvvsp/vnuUAX8Ar+nDYc2Jd+gTklJJ3X5eFTYJ0Fi/N96hKKUSzIGWHo52nqLXsp+LZ11MV38Xn9/+eR54/QH66eDv/nApv/rqZVTOyuFvnt/HTT94Cz99ZGhSj58Z81cA0NmgM2CUUkO9uK+FtJw6/MbH/SvvZ8stW7hvxX283vg6Nz9/M5t2b6K82MbTX/oY//KZi+jtHwhWaEzTpB43s+ZX4TNW/Cf0KkhKqaG272thxswDlGSWsKx4GRm2DO5dfi9bbtnCVWVX8a97/pWbn7+ZF4+8yA1Vs3j5L66gIMdPZcnMeIc+ISmV1K1p6TTb5pDR/VG8Q1FKJZDD7b0cbG/HbavlunnXDbne6Ozs2Xzniu/w5A1PUugoZMObG/jcts9xyHkAb6CXGUlU9wVSLKkDdGbNp0RnwCilImzb34It+wB+4+O68utGbLNq5iqe/oOnefjjD3PUeZT1v1qPx+9Jqi8eQQomdV/hIuaYVrqd3fEORSmVILbta6FoZh0lmSUsL14+ajurxcqtF9zKr/7wV/yvJf8Lm9hYkL8ghpGevZRL6o45VVjEcPzD3fEORSmVAI53ufmguY1+Wy3Xzrt2yNDLaHLsOTyw+gF2/slOriy7MgZRTp2US+rFC4Kfwl1HdQaMUirYS7dl1+HHx3XzRh56GY1FLIjINEU2PaJK6iJyg4gcFJF6Edk4wuOXi8guERkQkdumPszozZy3mH6Thmmti2cYSqkEsX1fCwXFdZRklLCiZEW8w5l24yZ1EbECm4AbgSXAehFZMqzZMeAu4KmpDnCixJrG8bQyMnUGjFLnvPaefnYcO4HPXsc1866Jaugl2UWzh2uAemPMYWOMF9gMrItsYIxpMMZ8AIxdxzJGurIWMLv/SLzDUErF2W9qW7BmH8CPd9RZL6kmmqQ+B2iMWG4KrUtY/uLFzOIkHR0n4x2KUiqOtu1rIa+oluKMYlaWrIx3ODER079FROQeEakRkZr29vZpe53MOVUAHP9o17S9hlIqsXW7fLxzuBm/o/acGXqB6JL6caAsYrk0tG7CjDGPG2OqjTHVxcXFk9lEVGaevwKA3mNa2Eupc9XLda2QOblZL8ksmqS+A1goIhUiYgfuBLZMb1hnp2jO+bhIx7TpDBilzlUv7mshu6iWGRkzzpmhF4giqRtjBoD7ge1AHfCsMWa/iDwiIjcDiMhqEWkCPg38WETiWlFLLFaa0+aR49QZMEqdi/r6B3ij/jhk1HHN3GuwWqzxDilmbNE0MsZsBbYOW/dQxP0dBIdlEkZ3zvnMO/U2xpik+/KAUursvHqwjYCj9pya9RKWsmcOAsWLmUE3ba3N8Q5FKRVj2/a1kFW4nyJHEReVXBTvcGIqZZN6dulSAFo++n2cI1FKxZLH5+fVg02QGfzC0bk09AIpnNRnLQx+OnfseJY3332Xli4Xxpg4R6WUmm5vfXSSfvt+AnjPqVkvYVGNqSejgplzaUkr5SrnC7DtBZwvZlJjWcDJ3CWY2SspWLiGysoqCrPT4x2qUmoKbdvfQkb+PgodhayauSre4cRcyiZ1RJi1cQ/9J2o5UfcO7qM7mHlyL8u7f4G9+xk4AJ1bsnnPej6deRdiW3A5a2+8HZs1Zf94USrl+fwBflPXiGXeAa6Ze8s5N/QCqZzUAaw20kuXUV66DPhycN1AP31NH9BS9y7eYzs579ReVnVuxlbzX7yx92nm3/VjSmfPimvYSqnJee/wKVzWfWScg7NewlI7qY/Elk5W+WoWlK8+vc7npu6Xf8cnan9Iy79eyltXPMalV90UvxiVUpPy4r4TpOftoyC94JwceoEUPlE6IWkZLL7jW3TcvgWb1crHX/8sv9n0NfrcnnhHppSKkj9g2FbbiC3nANfMuwab5dzrs4Im9SFmXngZMx54j4MlN3Bd+5Mc+ccrqKvT+jFKJYNdxzrpZi8B+s/ZoRfQpH4GW2Y+S76ymfrLHqM8cIzSzdfy22d/SCCg0yGVSmTb9rVgz91Lfno+1TOrY/fCfh9sexB+9inonlStwymlSX0U51/9eQJffovWjAVcXft1fvfdW5nOcsFKqclp7+nnlQOt/OqDo6TFeuiltx3+Yx28+yNofB+euBqad8fmtUdxbg46RSl39gJy/uo19m5+iI9/+C+c2PQJdlz9A1ZfdkO8Q1PqnNTZ52Xv8W4+aOrig6Zu9h7v5kR38NyXPXc/6dIfuy8cndgDmz8Dfe3wR09AyWJ46g749xvh1idg0R/EJo5hJF7fsqyurjY1NTVxee3JaNrzKrYXvswMfzvHZDaGM4uEhdeF39F+cdCWvZiBWReRf8HHWLh4JQXZjhhGrVRy8gcMzV1uDrX3crClhw+auvngeBeNp9yDbebPyGJpaR5L5+SxrDSfZxr+nh2t7/HK7a9Mf0993y/g+a9AZiHc+V9wXqi0b08LPL0emn8P130LPn4/THFBQRHZaYwZdXxJk/oE9Pd2UvfM/8HW0wQwmNaFkd9Du7eL2a6DZBH8RXSaTA5aF3IqfylSuoriRZdQef4CMu36B5OaGl0uLzmONKyW5KhM2ts/wOH2Xg6193K4vW/w9sjJPvoHTl/yuLQgg+Wl+SwtzWPZnDwunJOHPW2Ag6cOsr9jP3UddWxr2MZN82/i4U88PH0BB/zwyrfgre/D3I/D7f8B2SVD23hd8PyfQu0LsOou+OR3wZo2ZSFoUo+3gJ++47WcqH2b/qM7yOnYzXn9h7GFrtF93MzgsL2SntyFULSAzFkLKZq7hLlzziMvY+p+EVTqOtbhYuu+E7y49wR7mro5L8/BbatK+XR1GWWFmfEOb4iGk328XNfK6x+282FrD63O/sHHLAJzCzNZUJzN/OKs0G02C0uySbcPcODUAepO1VHbUUttRy2Huw8TMMH/R4WOQqpmVPHgmgcpzZmmKuDuLvjFF6H+JVj1ebjxO2Czj9w2EAgl/+/B/LXw6Z9BRv6UhKFJPRF5XXQerqH9wO8INNZQ2LWXGf5WLBE9/k6TTZPM5lR6KZ7ccqRwPpmzLyBvVgX2rFzs6Vk40tNIt1lJt1lwpFmTpnemzl7DyT5+vfcEL+47wb7jTgCWl+axtrKE3Y1dvPFRO8bAJxYUccfqMq6/cBaOtNh/Zd7nD1DT0MkrB1r57YE2Drf3AbCwJJtlpfmDyXtBcRZzizLxBdw0OBs40n2EBmcDDd0N1HfVc6T7CCb0/6PIUcSSoiVDfmZmzpze6ya0fwib10NnQzCZr/5CdM/7/X/C//wZFM6HP34GCivOOhRN6snC56G//RAdxw7Q03wQf8ch7N1HyHM3UuRvH5LwwzwmDTfpuLHjNun0Y6df0ukXB16LA2dmGYFZy8lfsJrzFy1ndn6mXjAkiR1q72XrByfYuq+FuhPBRL5ybj6frJrNDVWzhvTKm7vcPLeziZ/vbKTxlJtch411K+Zwe3UZVXNyp/X3oLPPy+sftg/2yHs8A9itFi6eX8jVi0q4evFMrPauwWQdTt4NzgZOuk8ObsciFuZkz2F+3vwhCbwks2SMV58GH24P9tCtdrjj/8G8T0zs+UfehGc+CxYr3Pk0zL34rMLRpJ4KfB7c7Yc4ebQO18ljmH4XxucCnwt8bsTnwjLgxuL3YBlwY/O7SfO7KOpvwo4PAKfJ4COZz8ncxZjZKyg8v1pP3CaAQMDQ4xmgy+2l0+Wjy+Wl2+2jy+Wj0+Wly+Wj2+2jttnJwdYeAKrnFXDj0mAin5OfgTGGupO1vN74W95v2UFFXgXXVdxI9azVWLDy7uEOnq1p5MV9LfQPBFg8O5fbq0u5/IJiXP3+wdfuDr1eV+j1u1xeutzB1zfGkGa1kGa1YLNK6L5gswRvg+sttHS72Xm0k4CBGdnpXLWomKsWzeRjC/I55NzP642v81rTaxzpPjL4HuSn51OeW055XjnzcudRkVtBeV45ZTll2K2jDG9MhDHg7YXetuBMld426HcOffz0wtDndtTD2/8XZi+DO/4L8ssmF8PJenjq08F57Lf8CJbeNrntoEn93Ob30d+8n5aD7+I+uouMk3uZ5a4nHS8AvcZBvXU+3ZnzMFgAg5gAYEK/24HTv/DGIASGbD7yBPFI/T6DYERC2w7fFwitMwSXjcWGERsBiw1jSYPBW2vw1pqGsdjAYgvGZwxmMFbABBBjQnEH4zTGYEwAMQFMIDC4L8YEQu0DwfsBc3o/TfB5mPB+n14/+D5IeJbT6dPkkbMbBmdFhV4n+Hx/KO7AsG0HMP4Bgu9GACsBLKH7FgxWAqRZId1iyLRBcYYh3x4gLdCPe6Cf9yxeXkuDN9NttNmsiDFUen0cTbPhtlgoCAS4ymfhOpPJ6rR8sGXT5LJxsBOO9VlxYx88hhJxPO1WIcNmIT3NgiPNQrrNAljwmdAPVnyB8LIM3vcaC/Y0G5Wzcll8Xh75uRbe6T3C68563nQeotvvxiYWqrPncUXeBVRlzqE8vZB8W+bgsQu/i+HfucFlE3Eswm2H3A++z7hOQV9bcP54X1swgfe2wcDpWTMTVnUb3PwDsJ/l+QnXqWCP/ejbcNNjUP35SW1mSpK6iNwA/DNgBZ4wxjw67PF04D+AVUAHcIcxpmGsbWpSjxO/j77j+2k+8C6eo7vI7NhLQX8zAgQklHwhdBv6ry6cTsxnbDByGmdkajeDrS0Ek25wi4Fh6wJY8WM1fqwMYMM/4lDTdAiEP1SG/FiG7G9gMGkH92bI3oY/SIavxwTTslhC2wtvN7gc/lBDBCxWxGLFEv6xWrFarVitNqzW4GOIBSw2WqxW3rB4ec308X6gh34CZImNT6TP5IqsuVyaXUFReh5uby9vO+v5Te8RXve24SJAPhau8qdxncfPGlcfVo8Ty4B78EOW8F6IhPYl/OELfSIETAAJDITeldM/FmOGLDfbrLyemclrmRnsdKQzIEK+389lLg9XuFxc4vaQPa0dSYGsGZBVAtnFodsSyCoO3maXBNc5coPva+TzhmwmtGxJg5yZUxfeQD+8/DB87F7InzupTZx1UhcRK/AhcC3QBOwA1htjaiPa3AcsM8b8qYjcCfyhMeaOsbarSV2NKuAPfvU64IPAAPgHQvf9gwkWsYxyP/xjOfOHyPVDe9jTyYT+sgiE/hIIECBggj8un4sebw9Or5NeXy893p7Ty97Ty4e7D3Ow8yAApdmlrC1by+Wll1M9s5q0MabLeQY8vN38Ni8dfYnXGl+jz9dHrj2Xq+ZexcqSlfT5+uju78bpdQ7eOvuddHu7cfY7cXqd+I1/wvs8P7uMK2auZu3M1SwvuACrWMNvBoO968gPExh6PM54zDLyMR88rqH76blgTe0pwlOR1D8OPGyMuT60/CCAMebvI9psD7V5R0RsQAtQbMbY+GST+pP7nuSxXY8hIgiCRSxYQp+4FrFgwQJy+n7kCaHBPkjouYPrwh/KYkHC/+T0bXh9uA2AwQy5PF74zHz4P/CY90PPNYPDHBFk9DjD+xJOCOHthO8PXx9+jlWsQ24tYgneR7BagreR+zMkvvD+DTuUw9/X8HLk/dH2P3J5xMcNZ7xXw0W+XuTtsD8WBl8jct8i92cw2YaORSA8dDPsvY2MPXK/R7oPp7czuO1JsFls5NpzybHnMDNzJpfNuYzLyy6nIrdiUic6+/39vNP8Dr9p+A2vNr5Kr693MPYcew659lzy0vPIS88bvJ9rzyXXnovVYh364RS6BYZ8WOXZ87hszmWU5U5y7FmNa7ykHs1H2hygMWK5CRh++nawjTFmQES6gSLgZGQjEbkHuAdg7tzJ/emxtHgpd1fdPeSXa8h/PnPmL91ICTVseFKJfM7w/+Dhx8f7cDgjyQ1bjnxu5DZGSqyRMYbjsohlyIdN+INtpA8hv/EPJvvw++IP+IO3ocfCHwAjfaBELkcaEucoiTm8vdHeixHfq2Hv0/D3efgxGxJTxPrR3u/hrwMMeR/PWJaR4x7pdyhyOfyhOXhsRLBgGXLsLFjITMskx55Djj2H7LTswSSebc/GYXVM6SyVdGs6a8vWsrZsLV6/l1ZXK7n2XLLTss/JKwSlqpj+nWKMeRx4HII99clsY9XMVeds8XulpordaqcsR3vTqSiaKo3HgcijXxpaN2Kb0PBLHsETpkoppWIomqS+A1goIhUiYgfuBLYMa7MF+Fzo/m3AK2ONpyullJoe4w6/hMbI7we2E5zS+FNjzH4ReQSoMcZsAX4C/D8RqQdOEUz8SimlYiyqMXVjzFZg67B1D0Xc9wCfntrQlFJKTZRe+UgppVKIJnWllEohmtSVUiqFaFJXSqkUErcqjSLSDhyd5NNnMOzbqikg1fYp1fYHUm+fUm1/IPX2aaT9mWeMKR7tCXFL6mdDRGrGqn2QjFJtn1JtfyD19inV9gdSb58msz86/KKUUilEk7pSSqWQZE3qj8c7gGmQavuUavsDqbdPqbY/kHr7NOH9ScoxdaWUUiNL1p66UkqpEWhSV0qpFJJ0SV1EbhCRgyJSLyIb4x3P2RKRBhHZKyK7RSQpL9oqIj8VkTYR2RexrlBEXhKRj0K3BfGMcSJG2Z+HReR46DjtFpFPxjPGiRKRMhF5VURqRWS/iHwttD4pj9MY+5O0x0lEHCLyvojsCe3TN0PrK0TkvVDOeyZUAn307STTmHo0F8FONiLSAFQbY5L2CxMicjnQC/yHMaYqtO47wCljzKOhD98CY8yGeMYZrVH252Gg1xjz3XjGNlkiMhuYbYzZJSI5wE7gFuAukvA4jbE/t5Okx0mC1y7MMsb0ikga8BbwNeAvgF8aYzaLyL8Ce4wx/zLadpKtp74GqDfGHDbGeIHNwLo4x3TOM8a8QbCOfqR1wM9C939G8D9cUhhlf5KaMeaEMWZX6H4PUEfw2sJJeZzG2J+kZYJ6Q4tpoR8DXAU8F1o/7jFKtqQ+0kWwk/pAEjxovxGRnaELc6eKmcaYE6H7LcDMeAYzRe4XkQ9CwzNJMUwxEhEpB1YC75ECx2nY/kASHycRsYrIbqANeAk4BHQZYwZCTcbNecmW1FPRpcaYi4Abga+E/vRPKaFLGybPON/I/gVYAKwATgD/FNdoJklEsoFfAH9mjHFGPpaMx2mE/Unq42SM8RtjVhC8FvQaYNFEt5FsST2ai2AnFWPM8dBtG/DfBA9kKmgNjXuGxz/b4hzPWTHGtIb+wwWAfyMJj1NonPYXwH8ZY34ZWp20x2mk/UmF4wRgjOkCXgU+DuSLSPgqdePmvGRL6tFcBDtpiEhW6CQPIpIFXAfsG/tZSSPyYuSfA16IYyxnLZz4Qv6QJDtOoZNwPwHqjDHfi3goKY/TaPuTzMdJRIpFJD90P4PghJA6gsn9tlCzcY9RUs1+AQhNUXqM0xfB/tv4RjR5IjKfYO8cgteLfSoZ90dEngbWEiwT2gp8A3geeBaYS7DE8u3GmKQ4+TjK/qwl+Ce9ARqAL0eMRSc8EbkUeBPYCwRCq/+a4Dh00h2nMfZnPUl6nERkGcEToVaCHe5njTGPhPLEZqAQ+D3wWWNM/6jbSbakrpRSanTJNvyilFJqDJrUlVIqhWhSV0qpFKJJXSmlUogmdaWUSiGa1JVSKoVoUldKqRTy/wGVhnoGUwYzXgAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
        " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "execution_count": 7, + "id": "b4bf7d57", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", @@ -1944,9 +2038,9 @@ "\n", "np.random.seed(2018)\n", "\n", - "n = 400\n", + "n = 40\n", "n_boostraps = 100\n", - "maxdegree = 30\n", + "maxdegree = 14\n", "\n", "\n", "# Make data set.\n", @@ -1984,8 +2078,10 @@ }, { "cell_type": "markdown", - "id": "0edc7ea3", - "metadata": {}, + "id": "0cb028c2", + "metadata": { + "editable": true + }, "source": [ "## Summing up\n", "\n", @@ -2020,8 +2116,10 @@ }, { "cell_type": "markdown", - "id": "dc1b4e05", - "metadata": {}, + "id": "ae7c4119", + "metadata": { + "editable": true + }, "source": [ "## Another Example from Scikit-Learn's Repository" ] @@ -2029,8 +2127,11 @@ { "cell_type": "code", "execution_count": 8, - "id": "01de9323", - "metadata": {}, + "id": "c506fcb6", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "\"\"\"\n", @@ -2108,8 +2209,10 @@ }, { "cell_type": "markdown", - "id": "5ad3f9ac", - "metadata": {}, + "id": "ec92a13d", + "metadata": { + "editable": true + }, "source": [ "## Various steps in cross-validation\n", "\n", @@ -2131,8 +2234,10 @@ }, { "cell_type": "markdown", - "id": "5916aa2e", - "metadata": {}, + "id": "20a37b77", + "metadata": { + "editable": true + }, "source": [ "## Cross-validation in brief\n", "\n", @@ -2157,8 +2262,10 @@ }, { "cell_type": "markdown", - "id": "ea8461c5", - "metadata": {}, + "id": "7462645b", + "metadata": { + "editable": true + }, "source": [ "## Code Example for Cross-validation and $k$-fold Cross-validation\n", "\n", @@ -2167,23 +2274,13 @@ }, { "cell_type": "code", - "execution_count": 3, - "id": "1a35e97f", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEGCAYAAABvtY4XAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAqW0lEQVR4nO3dd3xUVf7/8dcnIRCahBKKhCa9t4AgCIgCUhRFWUBAQL/iCgr2+t1Vv5bVVde+uqigIhZQUQRWbCAqCCIdKUqTUCS00EJCMuf3RwZ+CTVgbu7M5P18PPIgM+fOPe9J4MOZc+8915xziIhI5InyO4CIiHhDBV5EJEKpwIuIRCgVeBGRCKUCLyISoQr5HSC7cuXKuerVq/sdQ0QkbPz88887nHPxJ2oLqQJfvXp1FixY4HcMEZGwYWYbT9amKRoRkQilAi8iEqFU4EVEIlRIzcGfyOHDh0lKSuLQoUN+R5GzEBsbS0JCAjExMX5HESlwQr7AJyUlUbJkSapXr46Z+R1HzoBzjp07d5KUlESNGjX8jiNS4IT8FM2hQ4coW7asinsYMjPKli2rT18iPgn5Ag+ouIcx/e5E/BMWBV5EJFL9vGwDr3+3Di+Wbve0wJvZbWa2wsyWm9l7ZhbrZX8iIuFk+8q1VG3Xkr3PvcTB9Mw8379nBd7MKgOjgETnXCMgGujvVX8F3YYNG2jUqJHfMUQklw4fSmNXrysplpbKVaMHULxI3p/z4vUUTSGgqJkVAooBWzzuL99lZGT4HcEXBfV9i+SVBcNupd66Zaz8v2eo1qGVJ314dpqkc26zmT0N/A6kAl845744djszGw4MB6hateop9/nwZyv4ZcvePM3Z4NxzePCyhqfc5u233+bpp5/GzGjSpAnR0dHExsayaNEi2rVrx7XXXstf//pXDh48SM2aNRk7diylS5fmhRde4NVXX6VQoUI0aNCA999/n2+//ZbRo0cDWQcgZ8+eTcmSJY/rs3///gwePJiePXsCMHToUHr16kViYiKDBw/mwIEDALz00ktccMEFp32fK1asYNiwYaSnpxMIBPjoo4+oXbv2ce9t/PjxbNiwgeuuu44dO3YQHx/PuHHjqFq1KkOHDs3xvkeOHMnIkSNJTk6mWLFivPbaa9SrV+9MfwUiBc6KCZ9y/vv/YX6n3rS+5ybP+vGswJtZaaA3UAPYA0wys0HOuXeyb+ecGwOMAUhMTAy5G8SuWLGCRx99lDlz5lCuXDl27drF7bffTlJSEnPmzCE6OpomTZrw4osv0rFjR/7+97/z8MMP89xzz/HEE0+wfv16ihQpwp49ewB4+umnefnll2nXrh379+8nNvbEhyX69evHxIkT6dmzJ+np6Xz99de88sorOOf48ssviY2N5ddff2XAgAG5WqDt1VdfZfTo0QwcOJD09HQyMzNP+N4AbrnlFoYMGcKQIUMYO3Yso0aN4pNPPgHI8b4vvvhiXn31VWrXrs28efMYMWIE33zzTZ783EUi1Z6D6Tw2P5kRDdvR/MM3Pe3LywudLgHWO+eSAczsY+AC4J1TvuoUTjfS9sI333xD3759KVeuHABlypQBoG/fvkRHR5OSksKePXvo2LEjAEOGDKFv374ANGnShIEDB3LFFVdwxRVXANCuXTtuv/12Bg4cSJ8+fUhISDhhv927d2f06NGkpaXx+eef06FDB4oWLUpKSgo333wzixcvJjo6mjVr1uTqfbRt25bHHnuMpKQk+vTpQ+3atU/63ubOncvHH38MwODBg7n77ruP7ufI+96/fz9z5sw5+l4B0tLScpVFpCB7bNpK5hU/l/s+n0rxsqU87cvLOfjfgTZmVsyyToa+GFjpYX/5qnjx4qfdZtq0aYwcOZKFCxfSqlUrMjIyuPfee3n99ddJTU2lXbt2rFq16oSvjY2NpVOnTsyYMYMPPviAfv36AfDss89SoUIFlixZwoIFC0hPT89V3muuuYYpU6ZQtGhRevTocdYj7SPvOxAIEBcXx+LFi49+rVwZMb9eEU8sf/tjEh+5i5tblqdxgrfFHTws8M65ecCHwEJgWbCvMV7155XOnTszadIkdu7cCXB0GuOIUqVKUbp0ab777jsAxo8fT8eOHQkEAmzatImLLrqIJ598kpSUFPbv38/atWtp3Lgx99xzD61atTppgYesaZpx48bx3XffcemllwKQkpJCpUqViIqKYvz48WRm5u7UqnXr1nHeeecxatQoevfuzdKlS0/63i644ALef/99ACZMmMCFF1543P7OOeccatSowaRJk4CsZQmWLFmSqywiBdGhvfuJu/0W2m35hZu65M+xKk/XonHOPQg86GUfXmvYsCEPPPAAHTt2JDo6mubNmx+3zVtvvXX0IOt5553HuHHjyMzMZNCg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\n", - "text/plain": [ - "
        " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "execution_count": 9, + "id": "a9e30fb2", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", @@ -2197,7 +2294,7 @@ "np.random.seed(3155)\n", "\n", "# Generate the data.\n", - "nsamples = 1000\n", + "nsamples = 100\n", "x = np.random.randn(nsamples)\n", "y = 3*x**2 + np.random.randn(nsamples)\n", "\n", @@ -2211,7 +2308,7 @@ "lambdas = np.logspace(-3, 5, nlambdas)\n", "\n", "# Initialize a KFold instance\n", - "k = 10\n", + "k = 5\n", "kfold = KFold(n_splits = k)\n", "\n", "# Perform the cross-validation to estimate MSE\n", @@ -2278,8 +2375,10 @@ }, { "cell_type": "markdown", - "id": "109bd9f2", - "metadata": {}, + "id": "07b8794b", + "metadata": { + "editable": true + }, "source": [ "## More examples on bootstrap and cross-validation and errors" ] @@ -2287,8 +2386,11 @@ { "cell_type": "code", "execution_count": 10, - "id": "a00dca0c", - "metadata": {}, + "id": "7f2a0aea", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "# Common imports\n", @@ -2373,16 +2475,20 @@ }, { "cell_type": "markdown", - "id": "8a218b0e", - "metadata": {}, + "id": "8083460a", + "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": "c883f354", - "metadata": {}, + "id": "34f8bb76", + "metadata": { + "editable": true + }, "source": [ "## The same example but now with cross-validation\n", "\n", @@ -2391,31 +2497,13 @@ }, { "cell_type": "code", - "execution_count": 6, - "id": "a399bb68", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_17573/3517936899.py:63: RuntimeWarning: divide by zero encountered in log10\n", - " plt.plot(polynomial, np.log10(estimated_mse_sklearn), label='Test Error')\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
        " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "execution_count": 11, + "id": "d8d087eb", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "# Common imports\n", "import os\n", @@ -2466,7 +2554,7 @@ "X[:,0] = 1.0\n", "estimated_mse_sklearn = np.zeros(Maxpolydegree)\n", "polynomial = np.zeros(Maxpolydegree)\n", - "k =30\n", + "k =5\n", "kfold = KFold(n_splits = k)\n", "\n", "for polydegree in range(1, Maxpolydegree):\n", @@ -2485,35 +2573,9 @@ "plt.legend()\n", "plt.show()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "482bdaa3", - "metadata": {}, - "outputs": [], - "source": [] } ], - "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.14" - } - }, + "metadata": {}, "nbformat": 4, "nbformat_minor": 5 } diff --git a/doc/src/week37/week37.do.txt b/doc/src/week37/week37.do.txt index 650841127..18475b871 100644 --- a/doc/src/week37/week37.do.txt +++ b/doc/src/week37/week37.do.txt @@ -5,10 +5,8 @@ DATE: today !split ===== Plans for week 37 ===== -* Thursday September 15: Summary of Ridge and Lasso with examples and statistical interpretation. Start resampling techniques and discussion of the _bias-variance_ tradeoff. - * "Video of lecture":"https://youtu.be/YVQGvcsovpw" -* Friday September 16: Resampling methods, bias-variance, overfitting, Cross-validation and Bootstrapping - * "Video of lecture":"https://youtu.be/rbaHRF-7bsQ" +* Summary of Ridge and Lasso with examples and statistical interpretation. Start resampling techniques and discussion of the _bias-variance_ tradeoff. +* Resampling methods, bias-variance, overfitting, Cross-validation and Bootstrapping Recommended Reading: o Lectures on Resampling methods (these lectures), see also lectures from week 36