From 5ca5421c583a753032b96f061ef91f053d47bad4 Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Thu, 16 Sep 2021 08:27:06 +0200 Subject: [PATCH] further update --- doc/pub/week37/html/._week37-bs000.html | 45 +- doc/pub/week37/html/._week37-bs001.html | 45 +- doc/pub/week37/html/._week37-bs002.html | 45 +- doc/pub/week37/html/._week37-bs003.html | 45 +- doc/pub/week37/html/._week37-bs004.html | 45 +- doc/pub/week37/html/._week37-bs005.html | 45 +- doc/pub/week37/html/._week37-bs006.html | 45 +- doc/pub/week37/html/._week37-bs007.html | 45 +- doc/pub/week37/html/._week37-bs008.html | 45 +- doc/pub/week37/html/._week37-bs009.html | 45 +- doc/pub/week37/html/._week37-bs010.html | 45 +- doc/pub/week37/html/._week37-bs011.html | 45 +- doc/pub/week37/html/._week37-bs012.html | 45 +- doc/pub/week37/html/._week37-bs013.html | 45 +- doc/pub/week37/html/._week37-bs014.html | 45 +- doc/pub/week37/html/._week37-bs015.html | 45 +- doc/pub/week37/html/._week37-bs016.html | 45 +- doc/pub/week37/html/._week37-bs017.html | 45 +- doc/pub/week37/html/._week37-bs018.html | 45 +- doc/pub/week37/html/._week37-bs019.html | 45 +- doc/pub/week37/html/._week37-bs020.html | 45 +- doc/pub/week37/html/._week37-bs021.html | 45 +- doc/pub/week37/html/._week37-bs022.html | 45 +- doc/pub/week37/html/._week37-bs023.html | 45 +- doc/pub/week37/html/._week37-bs024.html | 45 +- doc/pub/week37/html/._week37-bs025.html | 45 +- doc/pub/week37/html/._week37-bs026.html | 45 +- doc/pub/week37/html/._week37-bs027.html | 45 +- doc/pub/week37/html/._week37-bs028.html | 45 +- doc/pub/week37/html/._week37-bs029.html | 62 +- doc/pub/week37/html/._week37-bs030.html | 79 +- doc/pub/week37/html/._week37-bs031.html | 71 +- doc/pub/week37/html/._week37-bs032.html | 71 +- doc/pub/week37/html/._week37-bs033.html | 74 +- doc/pub/week37/html/._week37-bs034.html | 111 +- doc/pub/week37/html/._week37-bs035.html | 104 +- doc/pub/week37/html/._week37-bs036.html | 117 +- doc/pub/week37/html/._week37-bs037.html | 107 +- doc/pub/week37/html/._week37-bs038.html | 105 +- doc/pub/week37/html/._week37-bs039.html | 109 +- doc/pub/week37/html/week37-bs.html | 45 +- doc/pub/week37/html/week37-reveal.html | 49 + doc/pub/week37/html/week37-solarized.html | 51 + doc/pub/week37/html/week37.html | 51 + doc/pub/week37/ipynb/ipynb-week37-src.tar.gz | Bin 1022352 -> 1022352 bytes doc/pub/week37/ipynb/week37.ipynb | 46 + doc/src/week37/._week37-bs000.html | 349 -- doc/src/week37/._week37-bs001.html | 337 -- doc/src/week37/._week37-bs002.html | 326 -- doc/src/week37/._week37-bs003.html | 346 -- doc/src/week37/._week37-bs004.html | 360 -- doc/src/week37/._week37-bs005.html | 354 -- doc/src/week37/._week37-bs006.html | 354 -- doc/src/week37/._week37-bs007.html | 345 -- doc/src/week37/._week37-bs008.html | 341 -- doc/src/week37/._week37-bs009.html | 413 -- doc/src/week37/._week37-bs010.html | 398 -- doc/src/week37/._week37-bs011.html | 364 -- doc/src/week37/._week37-bs012.html | 370 -- doc/src/week37/._week37-bs013.html | 364 -- doc/src/week37/._week37-bs014.html | 346 -- doc/src/week37/._week37-bs015.html | 363 -- doc/src/week37/._week37-bs016.html | 359 -- doc/src/week37/._week37-bs017.html | 346 -- doc/src/week37/._week37-bs018.html | 352 -- doc/src/week37/._week37-bs019.html | 358 -- doc/src/week37/._week37-bs020.html | 352 -- doc/src/week37/._week37-bs021.html | 348 -- doc/src/week37/._week37-bs022.html | 365 -- doc/src/week37/._week37-bs023.html | 357 -- doc/src/week37/._week37-bs024.html | 351 -- doc/src/week37/._week37-bs025.html | 349 -- doc/src/week37/._week37-bs026.html | 358 -- doc/src/week37/._week37-bs027.html | 360 -- doc/src/week37/._week37-bs028.html | 366 -- doc/src/week37/._week37-bs029.html | 334 -- doc/src/week37/._week37-bs030.html | 345 -- doc/src/week37/._week37-bs031.html | 351 -- doc/src/week37/._week37-bs032.html | 347 -- doc/src/week37/._week37-bs033.html | 354 -- doc/src/week37/._week37-bs034.html | 386 -- doc/src/week37/._week37-bs035.html | 349 -- doc/src/week37/._week37-bs036.html | 395 -- doc/src/week37/._week37-bs037.html | 337 -- doc/src/week37/._week37-bs038.html | 391 -- doc/src/week37/._week37-bs039.html | 381 -- doc/src/week37/._week37-bs040.html | 363 -- doc/src/week37/._week37-bs041.html | 404 -- doc/src/week37/._week37-bs042.html | 345 -- doc/src/week37/._week37-bs043.html | 355 -- doc/src/week37/._week37-bs044.html | 344 -- doc/src/week37/._week37-bs045.html | 421 -- doc/src/week37/._week37-bs046.html | 407 -- doc/src/week37/._week37-bs047.html | 395 -- doc/src/week37/._week37-bs048.html | 361 -- doc/src/week37/ipynb-week37-src.tar.gz | Bin 1022352 -> 0 bytes doc/src/week37/reveal.js/.gitignore | 8 - doc/src/week37/reveal.js/.travis.yml | 5 - doc/src/week37/reveal.js/CONTRIBUTING.md | 23 - doc/src/week37/reveal.js/Gruntfile.js | 140 - doc/src/week37/reveal.js/LICENSE | 19 - doc/src/week37/reveal.js/README.md | 1052 ---- doc/src/week37/reveal.js/bower.json | 27 - .../reveal.js/css/images/cbc_footer.png | Bin 10008 -> 0 bytes .../reveal.js/css/images/cbc_symbol.png | Bin 2946 -> 0 bytes .../reveal.js/css/images/simula_footer.png | Bin 2513 -> 0 bytes .../reveal.js/css/images/simula_logo.png | Bin 2138 -> 0 bytes .../reveal.js/css/images/simula_symbol.png | Bin 2138 -> 0 bytes .../reveal.js/css/images/uio_footer.png | Bin 18189 -> 0 bytes .../reveal.js/css/images/uio_symbol.png | Bin 11352 -> 0 bytes doc/src/week37/reveal.js/css/print/paper.css | 202 - doc/src/week37/reveal.js/css/print/pdf.css | 157 - doc/src/week37/reveal.js/css/reveal.css | 1886 ------- doc/src/week37/reveal.js/css/reveal.scss | 1319 ----- doc/src/week37/reveal.js/css/theme/README.md | 23 - doc/src/week37/reveal.js/css/theme/beige.css | 154 - .../week37/reveal.js/css/theme/beigesmall.css | 155 - doc/src/week37/reveal.js/css/theme/black.css | 273 - doc/src/week37/reveal.js/css/theme/blood.css | 180 - doc/src/week37/reveal.js/css/theme/cbc.css | 144 - .../week37/reveal.js/css/theme/darkgray.css | 153 - .../week37/reveal.js/css/theme/default.css | 153 - doc/src/week37/reveal.js/css/theme/league.css | 279 - doc/src/week37/reveal.js/css/theme/moon.css | 153 - doc/src/week37/reveal.js/css/theme/night.css | 141 - doc/src/week37/reveal.js/css/theme/serif.css | 143 - doc/src/week37/reveal.js/css/theme/simple.css | 144 - doc/src/week37/reveal.js/css/theme/simula.css | 144 - doc/src/week37/reveal.js/css/theme/sky.css | 150 - .../week37/reveal.js/css/theme/solarized.css | 153 - .../reveal.js/css/theme/source/beige.scss | 50 - .../css/theme/source/beigesmall.scss | 51 - .../reveal.js/css/theme/source/black.scss | 49 - .../reveal.js/css/theme/source/blood.scss | 91 - .../reveal.js/css/theme/source/cbc.scss | 39 - .../reveal.js/css/theme/source/darkgray.scss | 42 - .../reveal.js/css/theme/source/default.scss | 42 - .../reveal.js/css/theme/source/league.scss | 34 - .../reveal.js/css/theme/source/moon.scss | 68 - .../reveal.js/css/theme/source/night.scss | 35 - .../reveal.js/css/theme/source/serif.scss | 35 - .../reveal.js/css/theme/source/simple.scss | 38 - .../reveal.js/css/theme/source/simula.scss | 39 - .../reveal.js/css/theme/source/sky.scss | 46 - .../reveal.js/css/theme/source/solarized.scss | 74 - .../reveal.js/css/theme/source/white.scss | 49 - .../reveal.js/css/theme/template/mixins.scss | 29 - .../css/theme/template/settings.scss | 34 - .../reveal.js/css/theme/template/theme.scss | 171 - doc/src/week37/reveal.js/css/theme/white.css | 273 - doc/src/week37/reveal.js/index.html | 411 -- doc/src/week37/reveal.js/js/reveal.js | 4508 ----------------- doc/src/week37/reveal.js/lib/css/zenburn.css | 117 - .../reveal.js/lib/font/league-gothic/LICENSE | 2 - .../lib/font/league-gothic/league-gothic.css | 10 - .../lib/font/league-gothic/league-gothic.eot | Bin 25696 -> 0 bytes .../lib/font/league-gothic/league-gothic.ttf | Bin 64256 -> 0 bytes .../lib/font/league-gothic/league-gothic.woff | Bin 30764 -> 0 bytes .../lib/font/source-sans-pro/LICENSE | 45 - .../source-sans-pro-italic.eot | Bin 75720 -> 0 bytes .../source-sans-pro-italic.ttf | Bin 238084 -> 0 bytes .../source-sans-pro-italic.woff | Bin 98556 -> 0 bytes .../source-sans-pro-regular.eot | Bin 88070 -> 0 bytes .../source-sans-pro-regular.ttf | Bin 288008 -> 0 bytes .../source-sans-pro-regular.woff | Bin 114324 -> 0 bytes .../source-sans-pro-semibold.eot | Bin 89897 -> 0 bytes .../source-sans-pro-semibold.ttf | Bin 284640 -> 0 bytes .../source-sans-pro-semibold.woff | Bin 115648 -> 0 bytes .../source-sans-pro-semibolditalic.eot | Bin 75706 -> 0 bytes .../source-sans-pro-semibolditalic.ttf | Bin 240944 -> 0 bytes .../source-sans-pro-semibolditalic.woff | Bin 98816 -> 0 bytes .../font/source-sans-pro/source-sans-pro.css | 39 - doc/src/week37/reveal.js/lib/js/classList.js | 2 - doc/src/week37/reveal.js/lib/js/head.min.js | 8 - doc/src/week37/reveal.js/lib/js/html5shiv.js | 7 - doc/src/week37/reveal.js/package.json | 45 - .../reveal.js/plugin/highlight/highlight.js | 30 - doc/src/week37/reveal.js/plugin/leap/leap.js | 159 - .../reveal.js/plugin/markdown/example.html | 129 - .../reveal.js/plugin/markdown/example.md | 31 - .../reveal.js/plugin/markdown/markdown.js | 393 -- .../reveal.js/plugin/markdown/marked.js | 6 - doc/src/week37/reveal.js/plugin/math/math.js | 64 - .../reveal.js/plugin/multiplex/client.js | 13 - .../reveal.js/plugin/multiplex/index.js | 56 - .../reveal.js/plugin/multiplex/master.js | 51 - .../reveal.js/plugin/notes-server/client.js | 60 - .../reveal.js/plugin/notes-server/index.js | 66 - .../reveal.js/plugin/notes-server/notes.html | 396 -- .../week37/reveal.js/plugin/notes/notes.html | 406 -- .../week37/reveal.js/plugin/notes/notes.js | 122 - .../reveal.js/plugin/print-pdf/print-pdf.js | 48 - .../reveal.js/plugin/remotes/remotes.js | 39 - .../week37/reveal.js/plugin/search/search.js | 196 - .../week37/reveal.js/plugin/zoom-js/zoom.js | 278 - .../reveal.js/test/examples/assets/image1.png | Bin 21991 -> 0 bytes .../reveal.js/test/examples/assets/image2.png | Bin 10237 -> 0 bytes .../reveal.js/test/examples/barebones.html | 41 - .../test/examples/embedded-media.html | 49 - .../week37/reveal.js/test/examples/math.html | 185 - .../test/examples/slide-backgrounds.html | 144 - .../test/examples/slide-transitions.html | 101 - .../week37/reveal.js/test/qunit-1.12.0.css | 244 - doc/src/week37/reveal.js/test/qunit-1.12.0.js | 2212 -------- .../test-markdown-element-attributes.html | 134 - .../test/test-markdown-element-attributes.js | 46 - .../test/test-markdown-slide-attributes.html | 128 - .../test/test-markdown-slide-attributes.js | 47 - .../week37/reveal.js/test/test-markdown.html | 52 - .../week37/reveal.js/test/test-markdown.js | 15 - doc/src/week37/reveal.js/test/test-pdf.html | 83 - doc/src/week37/reveal.js/test/test-pdf.js | 15 - doc/src/week37/reveal.js/test/test.html | 85 - doc/src/week37/reveal.js/test/test.js | 589 --- doc/src/week37/week37-bs.html | 349 -- doc/src/week37/week37-reveal.html | 2076 -------- doc/src/week37/week37-solarized.html | 1937 ------- doc/src/week37/week37.dlog | 18 - doc/src/week37/week37.do.txt | 42 + doc/src/week37/week37.html | 1942 ------- doc/src/week37/week37.ipynb | 2095 -------- 221 files changed, 1519 insertions(+), 47789 deletions(-) delete mode 100644 doc/src/week37/._week37-bs000.html delete mode 100644 doc/src/week37/._week37-bs001.html delete mode 100644 doc/src/week37/._week37-bs002.html delete mode 100644 doc/src/week37/._week37-bs003.html delete mode 100644 doc/src/week37/._week37-bs004.html delete mode 100644 doc/src/week37/._week37-bs005.html delete mode 100644 doc/src/week37/._week37-bs006.html delete mode 100644 doc/src/week37/._week37-bs007.html delete mode 100644 doc/src/week37/._week37-bs008.html delete mode 100644 doc/src/week37/._week37-bs009.html delete mode 100644 doc/src/week37/._week37-bs010.html delete mode 100644 doc/src/week37/._week37-bs011.html delete mode 100644 doc/src/week37/._week37-bs012.html delete mode 100644 doc/src/week37/._week37-bs013.html delete mode 100644 doc/src/week37/._week37-bs014.html delete mode 100644 doc/src/week37/._week37-bs015.html delete mode 100644 doc/src/week37/._week37-bs016.html delete mode 100644 doc/src/week37/._week37-bs017.html delete mode 100644 doc/src/week37/._week37-bs018.html delete mode 100644 doc/src/week37/._week37-bs019.html delete mode 100644 doc/src/week37/._week37-bs020.html delete mode 100644 doc/src/week37/._week37-bs021.html delete mode 100644 doc/src/week37/._week37-bs022.html delete mode 100644 doc/src/week37/._week37-bs023.html delete mode 100644 doc/src/week37/._week37-bs024.html delete mode 100644 doc/src/week37/._week37-bs025.html delete mode 100644 doc/src/week37/._week37-bs026.html delete mode 100644 doc/src/week37/._week37-bs027.html delete mode 100644 doc/src/week37/._week37-bs028.html delete mode 100644 doc/src/week37/._week37-bs029.html delete mode 100644 doc/src/week37/._week37-bs030.html delete mode 100644 doc/src/week37/._week37-bs031.html delete mode 100644 doc/src/week37/._week37-bs032.html delete mode 100644 doc/src/week37/._week37-bs033.html delete mode 100644 doc/src/week37/._week37-bs034.html delete mode 100644 doc/src/week37/._week37-bs035.html delete mode 100644 doc/src/week37/._week37-bs036.html delete mode 100644 doc/src/week37/._week37-bs037.html delete mode 100644 doc/src/week37/._week37-bs038.html delete mode 100644 doc/src/week37/._week37-bs039.html delete mode 100644 doc/src/week37/._week37-bs040.html delete mode 100644 doc/src/week37/._week37-bs041.html delete mode 100644 doc/src/week37/._week37-bs042.html delete mode 100644 doc/src/week37/._week37-bs043.html delete mode 100644 doc/src/week37/._week37-bs044.html delete mode 100644 doc/src/week37/._week37-bs045.html delete mode 100644 doc/src/week37/._week37-bs046.html delete mode 100644 doc/src/week37/._week37-bs047.html delete mode 100644 doc/src/week37/._week37-bs048.html delete mode 100644 doc/src/week37/ipynb-week37-src.tar.gz delete mode 100644 doc/src/week37/reveal.js/.gitignore delete mode 100644 doc/src/week37/reveal.js/.travis.yml delete mode 100644 doc/src/week37/reveal.js/CONTRIBUTING.md delete mode 100644 doc/src/week37/reveal.js/Gruntfile.js delete mode 100644 doc/src/week37/reveal.js/LICENSE delete mode 100644 doc/src/week37/reveal.js/README.md delete mode 100644 doc/src/week37/reveal.js/bower.json delete mode 100644 doc/src/week37/reveal.js/css/images/cbc_footer.png delete mode 100644 doc/src/week37/reveal.js/css/images/cbc_symbol.png delete mode 100644 doc/src/week37/reveal.js/css/images/simula_footer.png delete mode 100644 doc/src/week37/reveal.js/css/images/simula_logo.png delete mode 100644 doc/src/week37/reveal.js/css/images/simula_symbol.png delete mode 100644 doc/src/week37/reveal.js/css/images/uio_footer.png delete mode 100644 doc/src/week37/reveal.js/css/images/uio_symbol.png delete mode 100644 doc/src/week37/reveal.js/css/print/paper.css delete mode 100644 doc/src/week37/reveal.js/css/print/pdf.css delete mode 100644 doc/src/week37/reveal.js/css/reveal.css delete mode 100644 doc/src/week37/reveal.js/css/reveal.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/README.md delete mode 100644 doc/src/week37/reveal.js/css/theme/beige.css delete mode 100644 doc/src/week37/reveal.js/css/theme/beigesmall.css delete mode 100644 doc/src/week37/reveal.js/css/theme/black.css delete mode 100644 doc/src/week37/reveal.js/css/theme/blood.css delete mode 100644 doc/src/week37/reveal.js/css/theme/cbc.css delete mode 100644 doc/src/week37/reveal.js/css/theme/darkgray.css delete mode 100644 doc/src/week37/reveal.js/css/theme/default.css delete mode 100644 doc/src/week37/reveal.js/css/theme/league.css delete mode 100644 doc/src/week37/reveal.js/css/theme/moon.css delete mode 100644 doc/src/week37/reveal.js/css/theme/night.css delete mode 100644 doc/src/week37/reveal.js/css/theme/serif.css delete mode 100644 doc/src/week37/reveal.js/css/theme/simple.css delete mode 100644 doc/src/week37/reveal.js/css/theme/simula.css delete mode 100644 doc/src/week37/reveal.js/css/theme/sky.css delete mode 100644 doc/src/week37/reveal.js/css/theme/solarized.css delete mode 100644 doc/src/week37/reveal.js/css/theme/source/beige.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/source/beigesmall.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/source/black.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/source/blood.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/source/cbc.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/source/darkgray.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/source/default.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/source/league.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/source/moon.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/source/night.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/source/serif.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/source/simple.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/source/simula.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/source/sky.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/source/solarized.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/source/white.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/template/mixins.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/template/settings.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/template/theme.scss delete mode 100644 doc/src/week37/reveal.js/css/theme/white.css delete mode 100644 doc/src/week37/reveal.js/index.html delete mode 100644 doc/src/week37/reveal.js/js/reveal.js delete mode 100644 doc/src/week37/reveal.js/lib/css/zenburn.css delete mode 100644 doc/src/week37/reveal.js/lib/font/league-gothic/LICENSE delete mode 100644 doc/src/week37/reveal.js/lib/font/league-gothic/league-gothic.css delete mode 100644 doc/src/week37/reveal.js/lib/font/league-gothic/league-gothic.eot delete mode 100644 doc/src/week37/reveal.js/lib/font/league-gothic/league-gothic.ttf delete mode 100644 doc/src/week37/reveal.js/lib/font/league-gothic/league-gothic.woff delete mode 100644 doc/src/week37/reveal.js/lib/font/source-sans-pro/LICENSE delete mode 100644 doc/src/week37/reveal.js/lib/font/source-sans-pro/source-sans-pro-italic.eot delete mode 100644 doc/src/week37/reveal.js/lib/font/source-sans-pro/source-sans-pro-italic.ttf delete mode 100644 doc/src/week37/reveal.js/lib/font/source-sans-pro/source-sans-pro-italic.woff delete mode 100644 doc/src/week37/reveal.js/lib/font/source-sans-pro/source-sans-pro-regular.eot delete mode 100644 doc/src/week37/reveal.js/lib/font/source-sans-pro/source-sans-pro-regular.ttf delete mode 100644 doc/src/week37/reveal.js/lib/font/source-sans-pro/source-sans-pro-regular.woff delete mode 100644 doc/src/week37/reveal.js/lib/font/source-sans-pro/source-sans-pro-semibold.eot delete mode 100644 doc/src/week37/reveal.js/lib/font/source-sans-pro/source-sans-pro-semibold.ttf delete mode 100644 doc/src/week37/reveal.js/lib/font/source-sans-pro/source-sans-pro-semibold.woff delete mode 100644 doc/src/week37/reveal.js/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot delete mode 100644 doc/src/week37/reveal.js/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf delete mode 100644 doc/src/week37/reveal.js/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff delete mode 100644 doc/src/week37/reveal.js/lib/font/source-sans-pro/source-sans-pro.css delete mode 100644 doc/src/week37/reveal.js/lib/js/classList.js delete mode 100644 doc/src/week37/reveal.js/lib/js/head.min.js delete mode 100644 doc/src/week37/reveal.js/lib/js/html5shiv.js delete mode 100644 doc/src/week37/reveal.js/package.json delete mode 100644 doc/src/week37/reveal.js/plugin/highlight/highlight.js delete mode 100644 doc/src/week37/reveal.js/plugin/leap/leap.js delete mode 100644 doc/src/week37/reveal.js/plugin/markdown/example.html delete mode 100644 doc/src/week37/reveal.js/plugin/markdown/example.md delete mode 100644 doc/src/week37/reveal.js/plugin/markdown/markdown.js delete mode 100644 doc/src/week37/reveal.js/plugin/markdown/marked.js delete mode 100644 doc/src/week37/reveal.js/plugin/math/math.js delete mode 100644 doc/src/week37/reveal.js/plugin/multiplex/client.js delete mode 100644 doc/src/week37/reveal.js/plugin/multiplex/index.js delete mode 100644 doc/src/week37/reveal.js/plugin/multiplex/master.js delete mode 100644 doc/src/week37/reveal.js/plugin/notes-server/client.js delete mode 100644 doc/src/week37/reveal.js/plugin/notes-server/index.js delete mode 100644 doc/src/week37/reveal.js/plugin/notes-server/notes.html delete mode 100644 doc/src/week37/reveal.js/plugin/notes/notes.html delete mode 100644 doc/src/week37/reveal.js/plugin/notes/notes.js delete mode 100644 doc/src/week37/reveal.js/plugin/print-pdf/print-pdf.js delete mode 100644 doc/src/week37/reveal.js/plugin/remotes/remotes.js delete mode 100644 doc/src/week37/reveal.js/plugin/search/search.js delete mode 100644 doc/src/week37/reveal.js/plugin/zoom-js/zoom.js delete mode 100644 doc/src/week37/reveal.js/test/examples/assets/image1.png delete mode 100644 doc/src/week37/reveal.js/test/examples/assets/image2.png delete mode 100644 doc/src/week37/reveal.js/test/examples/barebones.html delete mode 100644 doc/src/week37/reveal.js/test/examples/embedded-media.html delete mode 100644 doc/src/week37/reveal.js/test/examples/math.html delete mode 100644 doc/src/week37/reveal.js/test/examples/slide-backgrounds.html delete mode 100644 doc/src/week37/reveal.js/test/examples/slide-transitions.html delete mode 100644 doc/src/week37/reveal.js/test/qunit-1.12.0.css delete mode 100644 doc/src/week37/reveal.js/test/qunit-1.12.0.js delete mode 100644 doc/src/week37/reveal.js/test/test-markdown-element-attributes.html delete mode 100644 doc/src/week37/reveal.js/test/test-markdown-element-attributes.js delete mode 100644 doc/src/week37/reveal.js/test/test-markdown-slide-attributes.html delete mode 100644 doc/src/week37/reveal.js/test/test-markdown-slide-attributes.js delete mode 100644 doc/src/week37/reveal.js/test/test-markdown.html delete mode 100644 doc/src/week37/reveal.js/test/test-markdown.js delete mode 100644 doc/src/week37/reveal.js/test/test-pdf.html delete mode 100644 doc/src/week37/reveal.js/test/test-pdf.js delete mode 100644 doc/src/week37/reveal.js/test/test.html delete mode 100644 doc/src/week37/reveal.js/test/test.js delete mode 100644 doc/src/week37/week37-bs.html delete mode 100644 doc/src/week37/week37-reveal.html delete mode 100644 doc/src/week37/week37-solarized.html delete mode 100644 doc/src/week37/week37.dlog delete mode 100644 doc/src/week37/week37.html delete mode 100644 doc/src/week37/week37.ipynb diff --git a/doc/pub/week37/html/._week37-bs000.html b/doc/pub/week37/html/._week37-bs000.html index 90c36c573..a875d46ec 100644 --- a/doc/pub/week37/html/._week37-bs000.html +++ b/doc/pub/week37/html/._week37-bs000.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -321,7 +326,7 @@ MathJax.Hub.Config({
  • 9
  • 10
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs001.html b/doc/pub/week37/html/._week37-bs001.html index 525437987..bd1e8ecb4 100644 --- a/doc/pub/week37/html/._week37-bs001.html +++ b/doc/pub/week37/html/._week37-bs001.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -309,7 +314,7 @@ Recommended Reading:
  • 10
  • 11
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs002.html b/doc/pub/week37/html/._week37-bs002.html index 75d4e4db3..e72847e92 100644 --- a/doc/pub/week37/html/._week37-bs002.html +++ b/doc/pub/week37/html/._week37-bs002.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -298,7 +303,7 @@ MathJax.Hub.Config({
  • 11
  • 12
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs003.html b/doc/pub/week37/html/._week37-bs003.html index b59aaa0c6..4b76ff135 100644 --- a/doc/pub/week37/html/._week37-bs003.html +++ b/doc/pub/week37/html/._week37-bs003.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -318,7 +323,7 @@ $$
  • 12
  • 13
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs004.html b/doc/pub/week37/html/._week37-bs004.html index 3b09478a9..92e0cb797 100644 --- a/doc/pub/week37/html/._week37-bs004.html +++ b/doc/pub/week37/html/._week37-bs004.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -332,7 +337,7 @@ It is a conditional probability (see below) and reads as the likelihood of a dom
  • 13
  • 14
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs005.html b/doc/pub/week37/html/._week37-bs005.html index eb68e88a7..696f77f10 100644 --- a/doc/pub/week37/html/._week37-bs005.html +++ b/doc/pub/week37/html/._week37-bs005.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -326,7 +331,7 @@ is equivalent to the maximization/minimization of the function itself.
  • 14
  • 15
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs006.html b/doc/pub/week37/html/._week37-bs006.html index 9a0bd0f18..fcc4b2ef2 100644 --- a/doc/pub/week37/html/._week37-bs006.html +++ b/doc/pub/week37/html/._week37-bs006.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -326,7 +331,7 @@ $$
  • 15
  • 16
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs007.html b/doc/pub/week37/html/._week37-bs007.html index 060ce84f0..881f68e30 100644 --- a/doc/pub/week37/html/._week37-bs007.html +++ b/doc/pub/week37/html/._week37-bs007.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -317,7 +322,7 @@ which is Bayes' theorem. It allows us to evaluate the uncertainty in in \( X \)
  • 16
  • 17
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs008.html b/doc/pub/week37/html/._week37-bs008.html index 782c02532..1091586bf 100644 --- a/doc/pub/week37/html/._week37-bs008.html +++ b/doc/pub/week37/html/._week37-bs008.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -313,7 +318,7 @@ The function \( p(X) \) on the right hand side is called the prior while the fun
  • 17
  • 18
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs009.html b/doc/pub/week37/html/._week37-bs009.html index ddc95d872..53cbd3faf 100644 --- a/doc/pub/week37/html/._week37-bs009.html +++ b/doc/pub/week37/html/._week37-bs009.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -385,7 +390,7 @@ How can we understand this?
  • 18
  • 19
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs010.html b/doc/pub/week37/html/._week37-bs010.html index 533203d1e..14a7e4182 100644 --- a/doc/pub/week37/html/._week37-bs010.html +++ b/doc/pub/week37/html/._week37-bs010.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -370,7 +375,7 @@ lambdas = np.19
  • 20
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs011.html b/doc/pub/week37/html/._week37-bs011.html index 13b0683b2..30046fcfd 100644 --- a/doc/pub/week37/html/._week37-bs011.html +++ b/doc/pub/week37/html/._week37-bs011.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -336,7 +341,7 @@ We have a model for \( p(\boldsymbol{D}\vert\boldsymbol{\beta}) \) but need one
  • 20
  • 21
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs012.html b/doc/pub/week37/html/._week37-bs012.html index 012c8e223..b601102c1 100644 --- a/doc/pub/week37/html/._week37-bs012.html +++ b/doc/pub/week37/html/._week37-bs012.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -342,7 +347,7 @@ which is our Ridge cost function! Nice, isn't it?
  • 21
  • 22
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs013.html b/doc/pub/week37/html/._week37-bs013.html index 92de2c566..5dbaa7e5b 100644 --- a/doc/pub/week37/html/._week37-bs013.html +++ b/doc/pub/week37/html/._week37-bs013.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -336,7 +341,7 @@ which is our Lasso cost function!
  • 22
  • 23
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs014.html b/doc/pub/week37/html/._week37-bs014.html index 44b585130..7188c2993 100644 --- a/doc/pub/week37/html/._week37-bs014.html +++ b/doc/pub/week37/html/._week37-bs014.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -318,7 +323,7 @@ and discuss how to select a given model (one of the difficult parts in machine l
  • 23
  • 24
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs015.html b/doc/pub/week37/html/._week37-bs015.html index bc7bbd54d..191af6385 100644 --- a/doc/pub/week37/html/._week37-bs015.html +++ b/doc/pub/week37/html/._week37-bs015.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -335,7 +340,7 @@ cross-validation and the bootstrap method.
  • 24
  • 25
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs016.html b/doc/pub/week37/html/._week37-bs016.html index 4ae2cc1dd..f38127961 100644 --- a/doc/pub/week37/html/._week37-bs016.html +++ b/doc/pub/week37/html/._week37-bs016.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -331,7 +336,7 @@ bootstrap is widely used.
  • 25
  • 26
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs017.html b/doc/pub/week37/html/._week37-bs017.html index bc0b9197f..4132e5b49 100644 --- a/doc/pub/week37/html/._week37-bs017.html +++ b/doc/pub/week37/html/._week37-bs017.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -318,7 +323,7 @@ MathJax.Hub.Config({
  • 26
  • 27
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs018.html b/doc/pub/week37/html/._week37-bs018.html index 5dc9cc2b0..bdaf94e8e 100644 --- a/doc/pub/week37/html/._week37-bs018.html +++ b/doc/pub/week37/html/._week37-bs018.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -324,7 +329,7 @@ MathJax.Hub.Config({
  • 27
  • 28
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs019.html b/doc/pub/week37/html/._week37-bs019.html index 4cf039cf9..8a320e3fb 100644 --- a/doc/pub/week37/html/._week37-bs019.html +++ b/doc/pub/week37/html/._week37-bs019.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -330,7 +335,7 @@ training error reaches a saturation.
  • 28
  • 29
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs020.html b/doc/pub/week37/html/._week37-bs020.html index 5cdcbe802..3536f8fe1 100644 --- a/doc/pub/week37/html/._week37-bs020.html +++ b/doc/pub/week37/html/._week37-bs020.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -324,7 +329,7 @@ need for bootstrapping.
  • 29
  • 30
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs021.html b/doc/pub/week37/html/._week37-bs021.html index 4720dff62..a066d0e55 100644 --- a/doc/pub/week37/html/._week37-bs021.html +++ b/doc/pub/week37/html/._week37-bs021.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -320,7 +325,7 @@ number \( i \) is left out. Using this notation, define
  • 30
  • 31
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs022.html b/doc/pub/week37/html/._week37-bs022.html index 0bc5446aa..4cbef0650 100644 --- a/doc/pub/week37/html/._week37-bs022.html +++ b/doc/pub/week37/html/._week37-bs022.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -337,7 +342,7 @@ t = jackknife(x, stat)
  • 31
  • 32
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs023.html b/doc/pub/week37/html/._week37-bs023.html index 2f517da77..eef1a79a9 100644 --- a/doc/pub/week37/html/._week37-bs023.html +++ b/doc/pub/week37/html/._week37-bs023.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -329,7 +334,7 @@ Before we proceed however, we need to remind ourselves about a central theorem i
  • 32
  • 33
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs024.html b/doc/pub/week37/html/._week37-bs024.html index c83575a69..e9fdfa5c1 100644 --- a/doc/pub/week37/html/._week37-bs024.html +++ b/doc/pub/week37/html/._week37-bs024.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -323,7 +328,7 @@ the question we pose is which is the PDF of the new variable \( z \).
  • 33
  • 34
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs025.html b/doc/pub/week37/html/._week37-bs025.html index 1dea5c181..997d46288 100644 --- a/doc/pub/week37/html/._week37-bs025.html +++ b/doc/pub/week37/html/._week37-bs025.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -321,7 +326,7 @@ product of individual \( p(x_i) \). The independence assumption is important in
  • 34
  • 35
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs026.html b/doc/pub/week37/html/._week37-bs026.html index d5f3f4423..179f172d8 100644 --- a/doc/pub/week37/html/._week37-bs026.html +++ b/doc/pub/week37/html/._week37-bs026.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -330,7 +335,7 @@ $$
  • 35
  • 36
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs027.html b/doc/pub/week37/html/._week37-bs027.html index 0eb1e4da9..be548ef7f 100644 --- a/doc/pub/week37/html/._week37-bs027.html +++ b/doc/pub/week37/html/._week37-bs027.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -332,7 +337,7 @@ and \( \mu \) is also the mean of the PDF \( p(x) \).
  • 36
  • 37
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs028.html b/doc/pub/week37/html/._week37-bs028.html index 9a94e716c..8ee114b55 100644 --- a/doc/pub/week37/html/._week37-bs028.html +++ b/doc/pub/week37/html/._week37-bs028.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -338,7 +343,7 @@ in particular if correlations are strong, may be too simplistic.
  • 37
  • 38
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs029.html b/doc/pub/week37/html/._week37-bs029.html index 8a968dea6..e12afed29 100644 --- a/doc/pub/week37/html/._week37-bs029.html +++ b/doc/pub/week37/html/._week37-bs029.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -280,6 +285,23 @@ MathJax.Hub.Config({

    Confidence Intervals

    +

    +Confidence intervals are used in statistics is a type of estimate +computed from the observed data. This gives a range of values for an +unknown parameter such as the parameters \( \boldsymbol{\beta} \) from linear regression. + +

    +With the OLS expressions for the parameters \( \boldsymbol{\beta} \) we found +\( \mathbb{E}(\boldsymbol{\beta}) = \boldsymbol{\beta} \), which means that the estimator of the regression parameters is unbiased. + +

    +We found also that the variance of the estimate of the \( j \)-th regression coefficient is +\( \boldsymbol{\sigma}^2 (\boldsymbol{\beta}_j ) = \boldsymbol{\sigma}^2 [(\mathbf{X}^{T} \mathbf{X})^{-1}]_{jj} \). + +

    +This quantity will be used to +construct a confidence interval for the estimates. +

    @@ -306,7 +328,7 @@ MathJax.Hub.Config({

  • 38
  • 39
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs030.html b/doc/pub/week37/html/._week37-bs030.html index 6f77ecd2f..41ca0cf00 100644 --- a/doc/pub/week37/html/._week37-bs030.html +++ b/doc/pub/week37/html/._week37-bs030.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -278,18 +283,32 @@ MathJax.Hub.Config({ -

    Resampling methods: Bootstrap background

    +

    Standard Approach based on the Normal Distribution

    -Since \( \widehat{\beta} = \widehat{\beta}(\boldsymbol{X}) \) is a function of random variables, -\( \widehat{\beta} \) itself must be a random variable. Thus it has -a pdf, call this function \( p(\boldsymbol{t}) \). The aim of the bootstrap is to -estimate \( p(\boldsymbol{t}) \) by the relative frequency of -\( \widehat{\beta} \). You can think of this as using a histogram -in the place of \( p(\boldsymbol{t}) \). If the relative frequency closely -resembles \( p(\vec{t}) \), then using numerics, it is straight forward to -estimate all the interesting parameters of \( p(\boldsymbol{t}) \) using point -estimators. +We will assume that the parameters \( \beta \) follow a normal +distribution. We can then define the confidence interval. Here we will be using as +shorthands \( \mu_{\beta} \) for the above mean value and \( \sigma_{\beta} \) +for the standard deviation. We have then a confidence interval + +$$ +\left(\mu_{\beta}\pm \frac{z\sigma_{\beta}}{\sqrt{n}}\right), +$$ + +

    +where \( z \) defines the level of certainty (or confidence). For a normal +distribution typical parameters are \( z=2.576 \) which corresponds to a +confidence of \( 99\% \) while \( z=1.96 \) corresponds to a confidence of +\( 95\% \). A confidence level of \( 95\% \) is commonly used and it is +normally referred to as a two-sigmas confidence level, that is we +approximate \( z\approx 2 \). + +

    +For more discussions of confidence intervals (and in particular linked with a discussion of the bootstrap method), see chapter 5 of the textbook by Davison on the Bootstrap Methods and their Applications + +

    +In this text you will also find an in-depth discussion of the +Bootstrap method, why it works and various theorems related to it.

    @@ -317,7 +336,7 @@ estimators.

  • 39
  • 40
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs031.html b/doc/pub/week37/html/._week37-bs031.html index 967a7319a..3216467fa 100644 --- a/doc/pub/week37/html/._week37-bs031.html +++ b/doc/pub/week37/html/._week37-bs031.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -278,24 +283,18 @@ MathJax.Hub.Config({ -

    Resampling methods: More Bootstrap background

    +

    Resampling methods: Bootstrap background

    -In the case that \( \widehat{\beta} \) has -more than one component, and the components are independent, we use the -same estimator on each component separately. If the probability -density function of \( X_i \), \( p(x) \), had been known, then it would have -been straightforward to do this by: - -

      -
    1. Drawing lots of numbers from \( p(x) \), suppose we call one such set of numbers \( (X_1^*, X_2^*, \cdots, X_n^*) \).
    2. -
    3. Then using these numbers, we could compute a replica of \( \widehat{\beta} \) called \( \widehat{\beta}^* \).
    4. -
    - -By repeated use of the above two points, many -estimates of \( \widehat{\beta} \) can be obtained. The -idea is to use the relative frequency of \( \widehat{\beta}^* \) -(think of a histogram) as an estimate of \( p(\boldsymbol{t}) \). +Since \( \widehat{\beta} = \widehat{\beta}(\boldsymbol{X}) \) is a function of random variables, +\( \widehat{\beta} \) itself must be a random variable. Thus it has +a pdf, call this function \( p(\boldsymbol{t}) \). The aim of the bootstrap is to +estimate \( p(\boldsymbol{t}) \) by the relative frequency of +\( \widehat{\beta} \). You can think of this as using a histogram +in the place of \( p(\boldsymbol{t}) \). If the relative frequency closely +resembles \( p(\vec{t}) \), then using numerics, it is straight forward to +estimate all the interesting parameters of \( p(\boldsymbol{t}) \) using point +estimators.

    @@ -323,7 +322,7 @@ idea is to use the relative frequency of \( \widehat{\beta}^* \)

  • 40
  • 41
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs032.html b/doc/pub/week37/html/._week37-bs032.html index c3b39e6a9..07bd0eda2 100644 --- a/doc/pub/week37/html/._week37-bs032.html +++ b/doc/pub/week37/html/._week37-bs032.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -278,20 +283,24 @@ MathJax.Hub.Config({ -

    Resampling methods: Bootstrap approach

    +

    Resampling methods: More Bootstrap background

    -But -unless there is enough information available about the process that -generated \( X_1,X_2,\cdots,X_n \), \( p(x) \) is in general -unknown. Therefore, Efron in 1979 asked the -question: What if we replace \( p(x) \) by the relative frequency -of the observation \( X_i \)? +In the case that \( \widehat{\beta} \) has +more than one component, and the components are independent, we use the +same estimator on each component separately. If the probability +density function of \( X_i \), \( p(x) \), had been known, then it would have +been straightforward to do this by: -

    -If we draw observations in accordance with -the relative frequency of the observations, will we obtain the same -result in some asymptotic sense? The answer is yes. +

      +
    1. Drawing lots of numbers from \( p(x) \), suppose we call one such set of numbers \( (X_1^*, X_2^*, \cdots, X_n^*) \).
    2. +
    3. Then using these numbers, we could compute a replica of \( \widehat{\beta} \) called \( \widehat{\beta}^* \).
    4. +
    + +By repeated use of the above two points, many +estimates of \( \widehat{\beta} \) can be obtained. The +idea is to use the relative frequency of \( \widehat{\beta}^* \) +(think of a histogram) as an estimate of \( p(\boldsymbol{t}) \).

    @@ -319,7 +328,7 @@ result in some asymptotic sense? The answer is yes.

  • 41
  • 42
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs033.html b/doc/pub/week37/html/._week37-bs033.html index 93bbdb824..a5326292c 100644 --- a/doc/pub/week37/html/._week37-bs033.html +++ b/doc/pub/week37/html/._week37-bs033.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -278,27 +283,20 @@ MathJax.Hub.Config({ -

    Resampling methods: Bootstrap steps

    +

    Resampling methods: Bootstrap approach

    -The independent bootstrap works like this: +But +unless there is enough information available about the process that +generated \( X_1,X_2,\cdots,X_n \), \( p(x) \) is in general +unknown. Therefore, Efron in 1979 asked the +question: What if we replace \( p(x) \) by the relative frequency +of the observation \( X_i \)? -

      -
    1. Draw with replacement \( n \) numbers for the observed variables \( \boldsymbol{x} = (x_1,x_2,\cdots,x_n) \).
    2. -
    3. Define a vector \( \boldsymbol{x}^* \) containing the values which were drawn from \( \boldsymbol{x} \).
    4. -
    5. Using the vector \( \boldsymbol{x}^* \) compute \( \widehat{\beta}^* \) by evaluating \( \widehat \beta \) under the observations \( \boldsymbol{x}^* \).
    6. -
    7. Repeat this process \( k \) times.
    8. -
    - -When you are done, you can draw a histogram of the relative frequency -of \( \widehat \beta^* \). This is your estimate of the probability -distribution \( p(t) \). Using this probability distribution you can -estimate any statistics thereof. In principle you never draw the -histogram of the relative frequency of \( \widehat{\beta}^* \). Instead -you use the estimators corresponding to the statistic of interest. For -example, if you are interested in estimating the variance of \( \widehat -\beta \), apply the etsimator \( \widehat \sigma^2 \) to the values -\( \widehat \beta^* \). +

    +If we draw observations in accordance with +the relative frequency of the observations, will we obtain the same +result in some asymptotic sense? The answer is yes.

    @@ -326,7 +324,7 @@ example, if you are interested in estimating the variance of \( \widehat

  • 42
  • 43
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs034.html b/doc/pub/week37/html/._week37-bs034.html index 2a1d959bf..075043c3d 100644 --- a/doc/pub/week37/html/._week37-bs034.html +++ b/doc/pub/week37/html/._week37-bs034.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -278,59 +283,27 @@ MathJax.Hub.Config({ -

    Code example for the Bootstrap method

    +

    Resampling methods: Bootstrap steps

    -The following code starts with a Gaussian distribution with mean value -\( \mu =100 \) and variance \( \sigma=15 \). We use this to generate the data -used in the bootstrap analysis. The bootstrap analysis returns a data -set after a given number of bootstrap operations (as many as we have -data points). This data set consists of estimated mean values for each -bootstrap operation. The histogram generated by the bootstrap method -shows that the distribution for these mean values is also a Gaussian, -centered around the mean value \( \mu=100 \) but with standard deviation -\( \sigma/\sqrt{n} \), where \( n \) is the number of bootstrap samples (in -this case the same as the number of original data points). The value -of the standard deviation is what we expect from the central limit -theorem. +The independent bootstrap works like this: -

    +

      +
    1. Draw with replacement \( n \) numbers for the observed variables \( \boldsymbol{x} = (x_1,x_2,\cdots,x_n) \).
    2. +
    3. Define a vector \( \boldsymbol{x}^* \) containing the values which were drawn from \( \boldsymbol{x} \).
    4. +
    5. Using the vector \( \boldsymbol{x}^* \) compute \( \widehat{\beta}^* \) by evaluating \( \widehat \beta \) under the observations \( \boldsymbol{x}^* \).
    6. +
    7. Repeat this process \( k \) times.
    8. +
    - -
    from numpy import *
    -from numpy.random import randint, randn
    -from time import time
    -import matplotlib.mlab as mlab
    -import matplotlib.pyplot as plt
    -
    -# Returns mean of bootstrap samples                                                                              # Alternatively, we can run it using Scikit-Learn's function resample                                            # See the examples below
    -
    -def statistics(data):
    -    return mean(data)
    -
    -
    -# Bootstrap algorithm
    -def bootstrap(data, statistic, R):
    -    t = zeros(R); n = len(data); inds = arange(n); t0 = time()
    -    # non-parametric bootstrap         
    -    for i in range(R):
    -        t[i] = statistic(data[randint(0,n,n)])
    -
    -    # analysis    
    -    print("Runtime: %g sec" % (time()-t0)); print("Bootstrap Statistics :")
    -    print("original           bias      std. error")
    -    print("%8g %8g %14g %15g" % (statistic(data), std(data),mean(t),std(t)))
    -    return t
    -
    -
    -mu, sigma = 100, 15
    -datapoints = 10000
    -x = mu + sigma*random.randn(datapoints)
    -# bootstrap returns the data sample                                    
    -t = bootstrap(x, statistics, datapoints)
    -
    -

    -We see that our new variance and from that the standard deviation, agrees with the central limit theorem. +When you are done, you can draw a histogram of the relative frequency +of \( \widehat \beta^* \). This is your estimate of the probability +distribution \( p(t) \). Using this probability distribution you can +estimate any statistics thereof. In principle you never draw the +histogram of the relative frequency of \( \widehat{\beta}^* \). Instead +you use the estimators corresponding to the statistic of interest. For +example, if you are interested in estimating the variance of \( \widehat +\beta \), apply the etsimator \( \widehat \sigma^2 \) to the values +\( \widehat \beta^* \).

    @@ -358,7 +331,7 @@ We see that our new variance and from that the standard deviation, agrees with t

  • 43
  • 44
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs035.html b/doc/pub/week37/html/._week37-bs035.html index e2fb6f7a4..e462a453f 100644 --- a/doc/pub/week37/html/._week37-bs035.html +++ b/doc/pub/week37/html/._week37-bs035.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -278,23 +283,60 @@ MathJax.Hub.Config({ -

    Plotting the Histogram

    +

    Code example for the Bootstrap method

    + +

    +The following code starts with a Gaussian distribution with mean value +\( \mu =100 \) and variance \( \sigma=15 \). We use this to generate the data +used in the bootstrap analysis. The bootstrap analysis returns a data +set after a given number of bootstrap operations (as many as we have +data points). This data set consists of estimated mean values for each +bootstrap operation. The histogram generated by the bootstrap method +shows that the distribution for these mean values is also a Gaussian, +centered around the mean value \( \mu=100 \) but with standard deviation +\( \sigma/\sqrt{n} \), where \( n \) is the number of bootstrap samples (in +this case the same as the number of original data points). The value +of the standard deviation is what we expect from the central limit +theorem. +

    -

    # the histogram of the bootstrapped  data                                                                                                    
    -n, binsboot, patches = plt.hist(t, 50, normed=1, facecolor='red', alpha=0.75)
    +
    from numpy import *
    +from numpy.random import randint, randn
    +from time import time
    +import matplotlib.mlab as mlab
    +import matplotlib.pyplot as plt
     
    -# add a 'best fit' line  
    -y = mlab.normpdf( binsboot, mean(t), std(t))
    -lt = plt.plot(binsboot, y, 'r--', linewidth=1)
    -plt.xlabel('Smarts')
    -plt.ylabel('Probability')
    -plt.axis([99.5, 100.6, 0, 3.0])
    -plt.grid(True)
    +# Returns mean of bootstrap samples                                                                              # Alternatively, we can run it using Scikit-Learn's function resample                                            # See the examples below
     
    -plt.show()
    +def statistics(data):
    +    return mean(data)
    +
    +
    +# Bootstrap algorithm
    +def bootstrap(data, statistic, R):
    +    t = zeros(R); n = len(data); inds = arange(n); t0 = time()
    +    # non-parametric bootstrap         
    +    for i in range(R):
    +        t[i] = statistic(data[randint(0,n,n)])
    +
    +    # analysis    
    +    print("Runtime: %g sec" % (time()-t0)); print("Bootstrap Statistics :")
    +    print("original           bias      std. error")
    +    print("%8g %8g %14g %15g" % (statistic(data), std(data),mean(t),std(t)))
    +    return t
    +
    +
    +mu, sigma = 100, 15
    +datapoints = 10000
    +x = mu + sigma*random.randn(datapoints)
    +# bootstrap returns the data sample                                    
    +t = bootstrap(x, statistics, datapoints)
     
    +

    +We see that our new variance and from that the standard deviation, agrees with the central limit theorem. +

    @@ -321,7 +363,7 @@ plt.show()

  • 44
  • 45
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs036.html b/doc/pub/week37/html/._week37-bs036.html index 89fcaeb1c..dc3ca707e 100644 --- a/doc/pub/week37/html/._week37-bs036.html +++ b/doc/pub/week37/html/._week37-bs036.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -278,69 +283,23 @@ MathJax.Hub.Config({ -

    The bias-variance tradeoff

    - +

    Plotting the Histogram

    -We will discuss the bias-variance tradeoff in the context of -continuous predictions such as regression. However, many of the -intuitions and ideas discussed here also carry over to classification -tasks. Consider a dataset \( \mathcal{L} \) consisting of the data -\( \mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\} \). -

    -Let us assume that the true data is generated from a noisy model + +

    # the histogram of the bootstrapped  data                                                                                                    
    +n, binsboot, patches = plt.hist(t, 50, normed=1, facecolor='red', alpha=0.75)
     
    -$$
    -\boldsymbol{y}=f(\boldsymbol{x}) + \boldsymbol{\epsilon}
    -$$
    -
    -

    -where \( \epsilon \) is normally distributed with mean zero and standard deviation \( \sigma^2 \). - -

    -In our derivation of the ordinary least squares method we defined then -an approximation to the function \( f \) in terms of the parameters -\( \boldsymbol{\beta} \) and the design matrix \( \boldsymbol{X} \) which embody our model, -that is \( \boldsymbol{\tilde{y}}=\boldsymbol{X}\boldsymbol{\beta} \). - -

    -Thereafter we found the parameters \( \boldsymbol{\beta} \) by optimizing the means squared error via the so-called cost function -$$ -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]. -$$ - -

    -We can rewrite this as -$$ -\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. -$$ - -

    -The three terms represent the square of the bias of the learning -method, which can be thought of as the error caused by the simplifying -assumptions built into the method. The second term represents the -variance of the chosen model and finally the last terms is variance of -the error \( \boldsymbol{\epsilon} \). - -

    -To derive this equation, we need to recall that the variance of \( \boldsymbol{y} \) and \( \boldsymbol{\epsilon} \) are both equal to \( \sigma^2 \). The mean value of \( \boldsymbol{\epsilon} \) is by definition equal to zero. Furthermore, the function \( f \) is not a stochastics variable, idem for \( \boldsymbol{\tilde{y}} \). -We use a more compact notation in terms of the expectation value -$$ -\mathbb{E}\left[(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2\right]=\mathbb{E}\left[(\boldsymbol{f}+\boldsymbol{\epsilon}-\boldsymbol{\tilde{y}})^2\right], -$$ - -and adding and subtracting \( \mathbb{E}\left[\boldsymbol{\tilde{y}}\right] \) we get -$$ -\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], -$$ - -which, using the abovementioned expectation values can be rewritten as -$$ -\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, -$$ - -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} \). +# add a 'best fit' line +y = mlab.normpdf( binsboot, mean(t), std(t)) +lt = plt.plot(binsboot, y, 'r--', linewidth=1) +plt.xlabel('Smarts') +plt.ylabel('Probability') +plt.axis([99.5, 100.6, 0, 3.0]) +plt.grid(True) +plt.show() +

    @@ -367,7 +326,7 @@ that is the rewriting in terms of the so-called bias, the variance of the model

  • 45
  • 46
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs037.html b/doc/pub/week37/html/._week37-bs037.html index 312464bb6..39584b03e 100644 --- a/doc/pub/week37/html/._week37-bs037.html +++ b/doc/pub/week37/html/._week37-bs037.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -278,10 +283,68 @@ MathJax.Hub.Config({ -

    A way to Read the Bias-Variance Tradeoff

    +

    The bias-variance tradeoff

    -



    +We will discuss the bias-variance tradeoff in the context of +continuous predictions such as regression. However, many of the +intuitions and ideas discussed here also carry over to classification +tasks. Consider a dataset \( \mathcal{L} \) consisting of the data +\( \mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\} \). + +

    +Let us assume that the true data is generated from a noisy model + +$$ +\boldsymbol{y}=f(\boldsymbol{x}) + \boldsymbol{\epsilon} +$$ + +

    +where \( \epsilon \) is normally distributed with mean zero and standard deviation \( \sigma^2 \). + +

    +In our derivation of the ordinary least squares method we defined then +an approximation to the function \( f \) in terms of the parameters +\( \boldsymbol{\beta} \) and the design matrix \( \boldsymbol{X} \) which embody our model, +that is \( \boldsymbol{\tilde{y}}=\boldsymbol{X}\boldsymbol{\beta} \). + +

    +Thereafter we found the parameters \( \boldsymbol{\beta} \) by optimizing the means squared error via the so-called cost function +$$ +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]. +$$ + +

    +We can rewrite this as +$$ +\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. +$$ + +

    +The three terms represent the square of the bias of the learning +method, which can be thought of as the error caused by the simplifying +assumptions built into the method. The second term represents the +variance of the chosen model and finally the last terms is variance of +the error \( \boldsymbol{\epsilon} \). + +

    +To derive this equation, we need to recall that the variance of \( \boldsymbol{y} \) and \( \boldsymbol{\epsilon} \) are both equal to \( \sigma^2 \). The mean value of \( \boldsymbol{\epsilon} \) is by definition equal to zero. Furthermore, the function \( f \) is not a stochastics variable, idem for \( \boldsymbol{\tilde{y}} \). +We use a more compact notation in terms of the expectation value +$$ +\mathbb{E}\left[(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2\right]=\mathbb{E}\left[(\boldsymbol{f}+\boldsymbol{\epsilon}-\boldsymbol{\tilde{y}})^2\right], +$$ + +and adding and subtracting \( \mathbb{E}\left[\boldsymbol{\tilde{y}}\right] \) we get +$$ +\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], +$$ + +which, using the abovementioned expectation values can be rewritten as +$$ +\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, +$$ + +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} \).

    @@ -309,7 +372,7 @@ MathJax.Hub.Config({

  • 46
  • 47
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs038.html b/doc/pub/week37/html/._week37-bs038.html index c7a6fa753..a87e4533e 100644 --- a/doc/pub/week37/html/._week37-bs038.html +++ b/doc/pub/week37/html/._week37-bs038.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -278,65 +283,11 @@ MathJax.Hub.Config({ -

    Example code for Bias-Variance tradeoff

    +

    A way to Read the Bias-Variance Tradeoff

    +

    +



    - -
    import matplotlib.pyplot as plt
    -import numpy as np
    -from sklearn.linear_model import LinearRegression, Ridge, Lasso
    -from sklearn.preprocessing import PolynomialFeatures
    -from sklearn.model_selection import train_test_split
    -from sklearn.pipeline import make_pipeline
    -from sklearn.utils import resample
    -
    -np.random.seed(2018)
    -
    -n = 500
    -n_boostraps = 100
    -degree = 18  # A quite high value, just to show.
    -noise = 0.1
    -
    -# Make data set.
    -x = np.linspace(-1, 3, n).reshape(-1, 1)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2) + np.random.normal(0, 0.1, x.shape)
    -
    -# Hold out some test data that is never used in training.
    -x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
    -
    -# Combine x transformation and model into one operation.
    -# Not neccesary, but convenient.
    -model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))
    -
    -# The following (m x n_bootstraps) matrix holds the column vectors y_pred
    -# for each bootstrap iteration.
    -y_pred = np.empty((y_test.shape[0], n_boostraps))
    -for i in range(n_boostraps):
    -    x_, y_ = resample(x_train, y_train)
    -
    -    # Evaluate the new model on the same test data each time.
    -    y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel()
    -
    -# Note: Expectations and variances taken w.r.t. different training
    -# data sets, hence the axis=1. Subsequent means are taken across the test data
    -# set in order to obtain a total value, but before this we have error/bias/variance
    -# calculated per data point in the test set.
    -# Note 2: The use of keepdims=True is important in the calculation of bias as this 
    -# maintains the column vector form. Dropping this yields very unexpected results.
    -error = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) )
    -bias = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 )
    -variance = np.mean( np.var(y_pred, axis=1, keepdims=True) )
    -print('Error:', error)
    -print('Bias^2:', bias)
    -print('Var:', variance)
    -print('{} >= {} + {} = {}'.format(error, bias, variance, bias+variance))
    -
    -plt.plot(x[::5, :], y[::5, :], label='f(x)')
    -plt.scatter(x_test, y_test, label='Data points')
    -plt.scatter(x_test, np.mean(y_pred, axis=1), label='Pred')
    -plt.legend()
    -plt.show()
    -

    @@ -363,7 +314,7 @@ plt.show()

  • 47
  • 48
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/._week37-bs039.html b/doc/pub/week37/html/._week37-bs039.html index eec737109..782349de7 100644 --- a/doc/pub/week37/html/._week37-bs039.html +++ b/doc/pub/week37/html/._week37-bs039.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -278,7 +283,7 @@ MathJax.Hub.Config({ -

    Understanding what happens

    +

    Example code for Bias-Variance tradeoff

    @@ -292,40 +297,48 @@ MathJax.Hub.Config({ np.random.seed(2018) -n = 40 +n = 500 n_boostraps = 100 -maxdegree = 14 - +degree = 18 # A quite high value, just to show. +noise = 0.1 # Make data set. -x = np.linspace(-3, 3, n).reshape(-1, 1) -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape) -error = np.zeros(maxdegree) -bias = np.zeros(maxdegree) -variance = np.zeros(maxdegree) -polydegree = np.zeros(maxdegree) +x = np.linspace(-1, 3, n).reshape(-1, 1) +y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2) + np.random.normal(0, 0.1, x.shape) + +# Hold out some test data that is never used in training. x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2) -for degree in range(maxdegree): - model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False)) - y_pred = np.empty((y_test.shape[0], n_boostraps)) - for i in range(n_boostraps): - x_, y_ = resample(x_train, y_train) - y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel() +# Combine x transformation and model into one operation. +# Not neccesary, but convenient. +model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False)) - polydegree[degree] = degree - error[degree] = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) ) - bias[degree] = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 ) - variance[degree] = np.mean( np.var(y_pred, axis=1, keepdims=True) ) - print('Polynomial degree:', degree) - print('Error:', error[degree]) - print('Bias^2:', bias[degree]) - print('Var:', variance[degree]) - print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree])) +# The following (m x n_bootstraps) matrix holds the column vectors y_pred +# for each bootstrap iteration. +y_pred = np.empty((y_test.shape[0], n_boostraps)) +for i in range(n_boostraps): + x_, y_ = resample(x_train, y_train) -plt.plot(polydegree, error, label='Error') -plt.plot(polydegree, bias, label='bias') -plt.plot(polydegree, variance, label='Variance') + # Evaluate the new model on the same test data each time. + y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel() + +# Note: Expectations and variances taken w.r.t. different training +# data sets, hence the axis=1. Subsequent means are taken across the test data +# set in order to obtain a total value, but before this we have error/bias/variance +# calculated per data point in the test set. +# Note 2: The use of keepdims=True is important in the calculation of bias as this +# maintains the column vector form. Dropping this yields very unexpected results. +error = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) ) +bias = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 ) +variance = np.mean( np.var(y_pred, axis=1, keepdims=True) ) +print('Error:', error) +print('Bias^2:', bias) +print('Var:', variance) +print('{} >= {} + {} = {}'.format(error, bias, variance, bias+variance)) + +plt.plot(x[::5, :], y[::5, :], label='f(x)') +plt.scatter(x_test, y_test, label='Data points') +plt.scatter(x_test, np.mean(y_pred, axis=1), label='Pred') plt.legend() plt.show()

    @@ -354,6 +367,8 @@ plt.show()
  • 47
  • 48
  • 49
  • +
  • ...
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/week37-bs.html b/doc/pub/week37/html/week37-bs.html index 90c36c573..a875d46ec 100644 --- a/doc/pub/week37/html/week37-bs.html +++ b/doc/pub/week37/html/week37-bs.html @@ -107,6 +107,10 @@ Automatically generated HTML file from DocOnce source ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -244,25 +248,26 @@ MathJax.Hub.Config({
  • Identifying Terms
  • Wrapping it up
  • Confidence Intervals
  • -
  • Resampling methods: Bootstrap background
  • -
  • Resampling methods: More Bootstrap background
  • -
  • Resampling methods: Bootstrap approach
  • -
  • Resampling methods: Bootstrap steps
  • -
  • Code example for the Bootstrap method
  • -
  • Plotting the Histogram
  • -
  • The bias-variance tradeoff
  • -
  • A way to Read the Bias-Variance Tradeoff
  • -
  • Example code for Bias-Variance tradeoff
  • -
  • Understanding what happens
  • -
  • Summing up
  • -
  • Another Example from Scikit-Learn's Repository
  • -
  • Various steps in cross-validation
  • -
  • How to set up the cross-validation for Ridge and/or Lasso
  • -
  • Cross-validation in brief
  • -
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • -
  • More examples on bootstrap and cross-validation and errors
  • -
  • The same example but now with cross-validation
  • -
  • Cross-validation with Ridge
  • +
  • Standard Approach based on the Normal Distribution
  • +
  • Resampling methods: Bootstrap background
  • +
  • Resampling methods: More Bootstrap background
  • +
  • Resampling methods: Bootstrap approach
  • +
  • Resampling methods: Bootstrap steps
  • +
  • Code example for the Bootstrap method
  • +
  • Plotting the Histogram
  • +
  • The bias-variance tradeoff
  • +
  • A way to Read the Bias-Variance Tradeoff
  • +
  • Example code for Bias-Variance tradeoff
  • +
  • Understanding what happens
  • +
  • Summing up
  • +
  • Another Example from Scikit-Learn's Repository
  • +
  • Various steps in cross-validation
  • +
  • How to set up the cross-validation for Ridge and/or Lasso
  • +
  • Cross-validation in brief
  • +
  • Code Example for Cross-validation and \( k \)-fold Cross-validation
  • +
  • More examples on bootstrap and cross-validation and errors
  • +
  • The same example but now with cross-validation
  • +
  • Cross-validation with Ridge
  • @@ -321,7 +326,7 @@ MathJax.Hub.Config({
  • 9
  • 10
  • ...
  • -
  • 49
  • +
  • 50
  • »
  • diff --git a/doc/pub/week37/html/week37-reveal.html b/doc/pub/week37/html/week37-reveal.html index 2f6b49944..01abf33b2 100644 --- a/doc/pub/week37/html/week37-reveal.html +++ b/doc/pub/week37/html/week37-reveal.html @@ -1058,6 +1058,55 @@ in particular if correlations are strong, may be too simplistic.

    Confidence Intervals

    + +

    +Confidence intervals are used in statistics is a type of estimate +computed from the observed data. This gives a range of values for an +unknown parameter such as the parameters \( \boldsymbol{\beta} \) from linear regression. + +

    +With the OLS expressions for the parameters \( \boldsymbol{\beta} \) we found +\( \mathbb{E}(\boldsymbol{\beta}) = \boldsymbol{\beta} \), which means that the estimator of the regression parameters is unbiased. + +

    +We found also that the variance of the estimate of the \( j \)-th regression coefficient is +\( \boldsymbol{\sigma}^2 (\boldsymbol{\beta}_j ) = \boldsymbol{\sigma}^2 [(\mathbf{X}^{T} \mathbf{X})^{-1}]_{jj} \). + +

    +This quantity will be used to +construct a confidence interval for the estimates. +

    + + +
    +

    Standard Approach based on the Normal Distribution

    + +

    +We will assume that the parameters \( \beta \) follow a normal +distribution. We can then define the confidence interval. Here we will be using as +shorthands \( \mu_{\beta} \) for the above mean value and \( \sigma_{\beta} \) +for the standard deviation. We have then a confidence interval + +

     
    +$$ +\left(\mu_{\beta}\pm \frac{z\sigma_{\beta}}{\sqrt{n}}\right), +$$ +

     
    + +

    +where \( z \) defines the level of certainty (or confidence). For a normal +distribution typical parameters are \( z=2.576 \) which corresponds to a +confidence of \( 99\% \) while \( z=1.96 \) corresponds to a confidence of +\( 95\% \). A confidence level of \( 95\% \) is commonly used and it is +normally referred to as a two-sigmas confidence level, that is we +approximate \( z\approx 2 \). + +

    +For more discussions of confidence intervals (and in particular linked with a discussion of the bootstrap method), see chapter 5 of the textbook by Davison on the Bootstrap Methods and their Applications + +

    +In this text you will also find an in-depth discussion of the +Bootstrap method, why it works and various theorems related to it.

    diff --git a/doc/pub/week37/html/week37-solarized.html b/doc/pub/week37/html/week37-solarized.html index ead40591c..30d039770 100644 --- a/doc/pub/week37/html/week37-solarized.html +++ b/doc/pub/week37/html/week37-solarized.html @@ -127,6 +127,10 @@ div { text-align: justify; text-justify: inter-word; } ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -1076,6 +1080,53 @@ in particular if correlations are strong, may be too simplistic.

    Confidence Intervals

    +

    +Confidence intervals are used in statistics is a type of estimate +computed from the observed data. This gives a range of values for an +unknown parameter such as the parameters \( \boldsymbol{\beta} \) from linear regression. + +

    +With the OLS expressions for the parameters \( \boldsymbol{\beta} \) we found +\( \mathbb{E}(\boldsymbol{\beta}) = \boldsymbol{\beta} \), which means that the estimator of the regression parameters is unbiased. + +

    +We found also that the variance of the estimate of the \( j \)-th regression coefficient is +\( \boldsymbol{\sigma}^2 (\boldsymbol{\beta}_j ) = \boldsymbol{\sigma}^2 [(\mathbf{X}^{T} \mathbf{X})^{-1}]_{jj} \). + +

    +This quantity will be used to +construct a confidence interval for the estimates. + +

    +









    + +

    Standard Approach based on the Normal Distribution

    + +

    +We will assume that the parameters \( \beta \) follow a normal +distribution. We can then define the confidence interval. Here we will be using as +shorthands \( \mu_{\beta} \) for the above mean value and \( \sigma_{\beta} \) +for the standard deviation. We have then a confidence interval + +$$ +\left(\mu_{\beta}\pm \frac{z\sigma_{\beta}}{\sqrt{n}}\right), +$$ + +

    +where \( z \) defines the level of certainty (or confidence). For a normal +distribution typical parameters are \( z=2.576 \) which corresponds to a +confidence of \( 99\% \) while \( z=1.96 \) corresponds to a confidence of +\( 95\% \). A confidence level of \( 95\% \) is commonly used and it is +normally referred to as a two-sigmas confidence level, that is we +approximate \( z\approx 2 \). + +

    +For more discussions of confidence intervals (and in particular linked with a discussion of the bootstrap method), see chapter 5 of the textbook by Davison on the Bootstrap Methods and their Applications + +

    +In this text you will also find an in-depth discussion of the +Bootstrap method, why it works and various theorems related to it. +











    diff --git a/doc/pub/week37/html/week37.html b/doc/pub/week37/html/week37.html index 059126495..d729b7279 100644 --- a/doc/pub/week37/html/week37.html +++ b/doc/pub/week37/html/week37.html @@ -132,6 +132,10 @@ div { text-align: justify; text-justify: inter-word; } ('Identifying Terms', 2, None, 'identifying-terms'), ('Wrapping it up', 2, None, 'wrapping-it-up'), ('Confidence Intervals', 2, None, 'confidence-intervals'), + ('Standard Approach based on the Normal Distribution', + 2, + None, + 'standard-approach-based-on-the-normal-distribution'), ('Resampling methods: Bootstrap background', 2, None, @@ -1081,6 +1085,53 @@ in particular if correlations are strong, may be too simplistic.

    Confidence Intervals

    +

    +Confidence intervals are used in statistics is a type of estimate +computed from the observed data. This gives a range of values for an +unknown parameter such as the parameters \( \boldsymbol{\beta} \) from linear regression. + +

    +With the OLS expressions for the parameters \( \boldsymbol{\beta} \) we found +\( \mathbb{E}(\boldsymbol{\beta}) = \boldsymbol{\beta} \), which means that the estimator of the regression parameters is unbiased. + +

    +We found also that the variance of the estimate of the \( j \)-th regression coefficient is +\( \boldsymbol{\sigma}^2 (\boldsymbol{\beta}_j ) = \boldsymbol{\sigma}^2 [(\mathbf{X}^{T} \mathbf{X})^{-1}]_{jj} \). + +

    +This quantity will be used to +construct a confidence interval for the estimates. + +

    +









    + +

    Standard Approach based on the Normal Distribution

    + +

    +We will assume that the parameters \( \beta \) follow a normal +distribution. We can then define the confidence interval. Here we will be using as +shorthands \( \mu_{\beta} \) for the above mean value and \( \sigma_{\beta} \) +for the standard deviation. We have then a confidence interval + +$$ +\left(\mu_{\beta}\pm \frac{z\sigma_{\beta}}{\sqrt{n}}\right), +$$ + +

    +where \( z \) defines the level of certainty (or confidence). For a normal +distribution typical parameters are \( z=2.576 \) which corresponds to a +confidence of \( 99\% \) while \( z=1.96 \) corresponds to a confidence of +\( 95\% \). A confidence level of \( 95\% \) is commonly used and it is +normally referred to as a two-sigmas confidence level, that is we +approximate \( z\approx 2 \). + +

    +For more discussions of confidence intervals (and in particular linked with a discussion of the bootstrap method), see chapter 5 of the textbook by Davison on the Bootstrap Methods and their Applications + +

    +In this text you will also find an in-depth discussion of the +Bootstrap method, why it works and various theorems related to it. +











    diff --git a/doc/pub/week37/ipynb/ipynb-week37-src.tar.gz b/doc/pub/week37/ipynb/ipynb-week37-src.tar.gz index 8893c7353fb3e3cfe930e6be9edd16cf87c9abfd..162a3d26780b4da0cc032987e107f3086e0ef304 100644 GIT binary patch delta 62 zcmWN_sS$uM002SWBm5=MNqR$^0TW9PxC|B12&~+cW6F{348{HKNGX-n(nu@+bP}YO NK}MNmmgQkRt`8wn55WKc delta 62 zcmWN_IT3&`002SWBm5F@5LS19)PKuW2kmPT6nr;{MP N3^K|jvn&tmd4CY54{ZPd diff --git a/doc/pub/week37/ipynb/week37.ipynb b/doc/pub/week37/ipynb/week37.ipynb index 59ea57c5a..55f6f8646 100644 --- a/doc/pub/week37/ipynb/week37.ipynb +++ b/doc/pub/week37/ipynb/week37.ipynb @@ -1105,6 +1105,52 @@ "\n", "## Confidence Intervals\n", "\n", + "Confidence intervals are used in statistics is a type of estimate\n", + "computed from the observed data. This gives a range of values for an\n", + "unknown parameter such as the parameters $\\boldsymbol{\\beta}$ from linear regression.\n", + "\n", + "With the OLS expressions for the parameters $\\boldsymbol{\\beta}$ we found \n", + "$\\mathbb{E}(\\boldsymbol{\\beta}) = \\boldsymbol{\\beta}$, which means that the estimator of the regression parameters is unbiased.\n", + "\n", + "We found also that the variance of the estimate of the $j$-th regression coefficient is\n", + "$\\boldsymbol{\\sigma}^2 (\\boldsymbol{\\beta}_j ) = \\boldsymbol{\\sigma}^2 [(\\mathbf{X}^{T} \\mathbf{X})^{-1}]_{jj} $.\n", + "\n", + "This quantity will be used to\n", + "construct a confidence interval for the estimates.\n", + "\n", + "\n", + "## Standard Approach based on the Normal Distribution\n", + "\n", + "We will assume that the parameters $\\beta$ follow a normal\n", + "distribution. We can then define the confidence interval. Here we will be using as\n", + "shorthands $\\mu_{\\beta}$ for the above mean value and $\\sigma_{\\beta}$\n", + "for the standard deviation. We have then a confidence interval" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\left(\\mu_{\\beta}\\pm \\frac{z\\sigma_{\\beta}}{\\sqrt{n}}\\right),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $z$ defines the level of certainty (or confidence). For a normal\n", + "distribution typical parameters are $z=2.576$ which corresponds to a\n", + "confidence of $99\\%$ while $z=1.96$ corresponds to a confidence of\n", + "$95\\%$. A confidence level of $95\\%$ is commonly used and it is\n", + "normally referred to as a *two-sigmas* confidence level, that is we\n", + "approximate $z\\approx 2$.\n", + "\n", + "For more discussions of confidence intervals (and in particular linked with a discussion of the bootstrap method), see chapter 5 of the textbook by [Davison on the Bootstrap Methods and their Applications](https://www.cambridge.org/core/books/bootstrap-methods-and-their-application/ED2FD043579F27952363566DC09CBD6A)\n", + "\n", + "In this text you will also find an in-depth discussion of the\n", + "Bootstrap method, why it works and various theorems related to it. \n", "\n", "## Resampling methods: Bootstrap background\n", "\n", diff --git a/doc/src/week37/._week37-bs000.html b/doc/src/week37/._week37-bs000.html deleted file mode 100644 index 90c36c573..000000000 --- a/doc/src/week37/._week37-bs000.html +++ /dev/null @@ -1,349 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - -

    - - -
    - -

     

     

     

    - - - - - - -
    -

    Week 37: Summary of Ridge and Lasso Regression and Resampling Methods

    - -

    - - -

    -Morten Hjorth-Jensen [1, 2] -
    - -

    - - -

    [1] Department of Physics, University of Oslo
    -
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University
    -
    -

    -

    Sep 16, 2021

    -
    -

    - - -

    Read »

    - - -
    - -

    - -

    - - -
    - - - - - - - -
    - © 1999-2021, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license -
    - - - - - - diff --git a/doc/src/week37/._week37-bs001.html b/doc/src/week37/._week37-bs001.html deleted file mode 100644 index 525437987..000000000 --- a/doc/src/week37/._week37-bs001.html +++ /dev/null @@ -1,337 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Plans for week 37

    - -
      -
    • Thursday September 16: Summary of Ridge and Lasso with examples and start resampling techniques
    • -
    • Friday September 17: Resampling methods, Cross-validation, Bootstrapping and jackknife
    • -
    - -Recommended Reading: - -
      -
    1. Lectures on Resampling methods (these lectures)
    2. -
    3. Bishop 1.3 (cross-validation) and 3.2 (bias-variance tradeoff)
    4. -
    5. Hastie et al Chapter 7, here we recommend 7.1-7.5 and 7.10 (cross-validation) and 7.11 (bootstrap). This chapter is better than Bishop's on these topics. Goodfellow et al discuss this in a superficial way in sections 5.2-5.5.
    6. -
    - -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs002.html b/doc/src/week37/._week37-bs002.html deleted file mode 100644 index 75d4e4db3..000000000 --- a/doc/src/week37/._week37-bs002.html +++ /dev/null @@ -1,326 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Thursday September 16, Summary of Ridge and Lasso Regression and start Resampling methods

    - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs003.html b/doc/src/week37/._week37-bs003.html deleted file mode 100644 index b59aaa0c6..000000000 --- a/doc/src/week37/._week37-bs003.html +++ /dev/null @@ -1,346 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Deriving OLS from a probability distribution

    - -

    -Our basic assumption when we derived the OLS equations was to assume -that our output is determined by a given continuous function -\( f(\boldsymbol{x}) \) and a random noise \( \boldsymbol{\epsilon} \) given by the normal -distribution with zero mean value and an undetermined variance -\( \sigma^2 \). - -

    -We found above that the outputs \( \boldsymbol{y} \) have a mean value given by -\( \boldsymbol{X}\hat{\boldsymbol{\beta}} \) and variance \( \sigma^2 \). Since the entries to -the design matrix are not stochastic variables, we can assume that the -probability distribution of our targets is also a normal distribution -but now with mean value \( \boldsymbol{X}\hat{\boldsymbol{\beta}} \). This means that a -single output \( y_i \) is given by the Gaussian distribution - -$$ -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]}. -$$ - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs004.html b/doc/src/week37/._week37-bs004.html deleted file mode 100644 index 3b09478a9..000000000 --- a/doc/src/week37/._week37-bs004.html +++ /dev/null @@ -1,360 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Independent and Identically Distrubuted (iid)

    - -

    -We assume now that the various \( y_i \) values are stochastically distributed according to the above Gaussian distribution. -We define this distribution as -$$ -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]}, -$$ - -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} \). - -

    -Since these events are assumed to be independent and identicall distributed we can build the probability distribution function (PDF) for all possible event \( \boldsymbol{y} \) as the product of the single events, that is we have - -$$ -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}). -$$ - -

    -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 -in case we have a simple one-dimensional input and output case -$$ -\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\dots, (x_{n-1},y_{n-1})]. -$$ - -In the more general case the various inputs should be replaced by the possible features represented by the input data set \( \boldsymbol{X} \). -We can now rewrite the above probability as -$$ -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]}. -$$ - -

    -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} \). - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs005.html b/doc/src/week37/._week37-bs005.html deleted file mode 100644 index eb68e88a7..000000000 --- a/doc/src/week37/._week37-bs005.html +++ /dev/null @@ -1,354 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Maximum Likelihood Estimation (MLE)

    - -

    -In statistics, maximum likelihood estimation (MLE) is a method of -estimating the parameters of an assumed probability distribution, -given some observed data. This is achieved by maximizing a likelihood -function so that, under the assumed statistical model, the observed -data is the most probable. - -

    -We will assume here that our events are given by the above Gaussian -distribution and we will determine the optimal parameters \( \beta \) by -maximizing the above PDF. However, computing the derivatives of a -product function is cumbersome and can easily lead to overflow and/or -underflowproblems, with potentials for loss of numerical precision. - -

    -In practice, it is more convenient to maximize the logarithm of the -PDF because it is a monotonically increasing function of the argument. -Alternatively, and this will be our option, we will minimize the -negative of the logarithm since this is a monotonically decreasing -function. - -

    -Note also that maximization/minimization of the logarithm of the PDF -is equivalent to the maximization/minimization of the function itself. - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs006.html b/doc/src/week37/._week37-bs006.html deleted file mode 100644 index 9a0bd0f18..000000000 --- a/doc/src/week37/._week37-bs006.html +++ /dev/null @@ -1,354 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    A new Cost Function

    - -

    -We could now define a new cost function to minimize, namely the negative logarithm of the above PDF - -$$ -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})}, -$$ - -which becomes -$$ -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}. -$$ - -

    -Taking the derivative of the new cost function with respect to the parameters \( \beta \) we recognize our familiar OLS equation, namely - -$$ -\boldsymbol{X}^T\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\right) =0, -$$ - -which leads to the well-known OLS equation for the optimal paramters \( \beta \) -$$ -\hat{\boldsymbol{\beta}}^{\mathrm{OLS}}=\left(\boldsymbol{X}^T\boldsymbol{X}\right)^{-1}\boldsymbol{X}^T\boldsymbol{y}! -$$ - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs007.html b/doc/src/week37/._week37-bs007.html deleted file mode 100644 index 060ce84f0..000000000 --- a/doc/src/week37/._week37-bs007.html +++ /dev/null @@ -1,345 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Bayes' Theorem

    - -

    -If we combine the conditional probability with the marginal probability and the standard product rule, we have -$$ -p(X\vert Y)= \frac{p(X,Y)}{p(Y)}, -$$ - -which we can rewrite as - -$$ -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)}, -$$ - -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 \). - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs008.html b/doc/src/week37/._week37-bs008.html deleted file mode 100644 index 782c02532..000000000 --- a/doc/src/week37/._week37-bs008.html +++ /dev/null @@ -1,341 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Interpretations of Bayes' Theorem

    - -

    -The quantity \( p(Y\vert X) \) on the right-hand side of the theorem is -evaluated for the observed data \( Y \) and can be viewed as a function of -the parameter space represented by \( X \). This function is not -necesseraly normalized and is normally called the likelihood function. - -

    -The function \( p(X) \) on the right hand side is called the prior while the function on the left hand side is the called the posterior probability. The denominator on the right hand side serves as a normalization factor for the posterior distribution. - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs009.html b/doc/src/week37/._week37-bs009.html deleted file mode 100644 index ddc95d872..000000000 --- a/doc/src/week37/._week37-bs009.html +++ /dev/null @@ -1,413 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Test Function for what happens with OLS, Ridge and Lasso

    - -

    -We will play around with a study of the values for the optimal -parameters \( \boldsymbol{\beta} \) using OLS, Ridge and Lasso regression. For -OLS, you will notice as function of the noise and polynomial degree, -that the parameters \( \beta \) will fluctuate from order to order in the -polynomial fit and that for larger and larger polynomial degrees of freedom, the parameters will tend to increase in value for OLS. - -

    -For Ridge and Lasso regression, the higher order parameters will typically be reduced, providing thereby less fluctuations from one order to another one. - -

    - - -

    import numpy as np
    -import matplotlib.pyplot as plt
    -from sklearn.model_selection import train_test_split
    -from sklearn import linear_model
    -
    -def R2(y_data, y_model):
    -    return 1 - np.sum((y_data - y_model) ** 2) / np.sum((y_data - np.mean(y_data)) ** 2)
    -def MSE(y_data,y_model):
    -    n = np.size(y_model)
    -    return np.sum((y_data-y_model)**2)/n
    -
    -# Make data set.
    -n = 10000
    -x = np.random.rand(n)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.randn(n)
    -
    -Maxpolydegree = 5
    -X = np.zeros((len(x),Maxpolydegree))
    -X[:,0] = 1.0
    -
    -for polydegree in range(1, Maxpolydegree):
    -    for degree in range(polydegree):
    -        X[:,degree] = x**(degree)
    -
    -
    -# We split the data in test and training data
    -X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
    -
    -# matrix inversion to find beta
    -OLSbeta = np.linalg.pinv(X_train.T @ X_train) @ X_train.T @ y_train
    -print(OLSbeta)
    -ypredictOLS = X_test @ OLSbeta
    -print("Test MSE OLS")
    -print(MSE(y_test,ypredictOLS))
    -# Repeat now for Lasso and Ridge regression and various values of the regularization parameter using Scikit-Learn
    -# Decide which values of lambda to use
    -nlambdas = 4
    -MSERidgePredict = np.zeros(nlambdas)
    -MSELassoPredict = np.zeros(nlambdas)
    -lambdas = np.logspace(-3, 1, nlambdas)
    -for i in range(nlambdas):
    -    lmb = lambdas[i]
    -    # Make the fit using Ridge and Lasso
    -    RegRidge = linear_model.Ridge(lmb,fit_intercept=False)
    -    RegRidge.fit(X_train,y_train)
    -    RegLasso = linear_model.Lasso(lmb,fit_intercept=False)
    -    RegLasso.fit(X_train,y_train)
    -    # and then make the prediction
    -    ypredictRidge = RegRidge.predict(X_test)
    -    ypredictLasso = RegLasso.predict(X_test)
    -    # Compute the MSE and print it
    -    MSERidgePredict[i] = MSE(y_test,ypredictRidge)
    -    MSELassoPredict[i] = MSE(y_test,ypredictLasso)
    -    print(lmb,RegRidge.coef_)
    -    print(lmb,RegLasso.coef_)
    -# Now plot the results
    -plt.figure()
    -plt.plot(np.log10(lambdas), MSERidgePredict, 'b', label = 'MSE Ridge Test')
    -plt.plot(np.log10(lambdas), MSELassoPredict, 'r', label = 'MSE Lasso Test')
    -plt.xlabel('log10(lambda)')
    -plt.ylabel('MSE')
    -plt.legend()
    -plt.show()
    -
    -

    -How can we understand this? - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs010.html b/doc/src/week37/._week37-bs010.html deleted file mode 100644 index 533203d1e..000000000 --- a/doc/src/week37/._week37-bs010.html +++ /dev/null @@ -1,398 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Rerunning the above code

    - -

    -Let us write out the values of the coefficients \( \beta_i \) as functions -of the polynomial degree and noise. We will focus only on the Ridge -results and some few selected values of the hyperparameter \( \lambda \). - -

    -If we don't include any noise and run this code for different values -of the polynomial degree, we notice that the results for \( \beta_i \) do -not show great changes from one order to the next. This is an -indication that for higher polynomial orders, our parameters become -less important. - -

    -If we however add noise, what happens is that the polynomial fit is -trying to adjust the fit to traverse in the best possible way all data -points. This can lead to large fluctuations in the parameters -\( \beta_i \) as functions of polynomial order. It will also be reflected -in a larger value of the variance of each parameter \( \beta_i \). What -Ridge regression (and Lasso as well) are doing then is to try to -quench the fluctuations in the parameters of \( \beta_i \) which have a -large variance (normally for higher orders in the polynomial). - -

    - - -

    import numpy as np
    -import pandas as pd
    -from IPython.display import display
    -import matplotlib.pyplot as plt
    -from sklearn.model_selection import train_test_split
    -from sklearn import linear_model
    -
    -# Make data set.
    -n = 1000
    -x = np.random.rand(n)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.randn(n)
    -
    -Maxpolydegree = 5
    -X = np.zeros((len(x),Maxpolydegree))
    -X[:,0] = 1.0
    -
    -for polydegree in range(1, Maxpolydegree):
    -    for degree in range(polydegree):
    -        X[:,degree] = x**(degree)
    -
    -
    -# We split the data in test and training data
    -X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
    -
    -# Decide which values of lambda to use
    -nlambdas = 5
    -lambdas = np.logspace(-3, 2, nlambdas)
    -for i in range(nlambdas):
    -    lmb = lambdas[i]
    -    # Make the fit using Ridge only
    -    RegRidge = linear_model.Ridge(lmb,fit_intercept=False)
    -    RegRidge.fit(X_train,y_train)
    -    # and then make the prediction
    -    ypredictRidge = RegRidge.predict(X_test)
    -    Coeffs = np.array(RegRidge.coef_)
    -    BetaValues = pd.DataFrame(Coeffs)
    -    BetaValues.columns = ['beta']
    -    display(BetaValues)    
    -
    -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs011.html b/doc/src/week37/._week37-bs011.html deleted file mode 100644 index 13b0683b2..000000000 --- a/doc/src/week37/._week37-bs011.html +++ /dev/null @@ -1,364 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Invoking Bayes' theorem

    - -

    -Using Bayes' theorem we can gain a better intuition about Ridge and Lasso regression. - -

    -For ordinary least squares we postulated that the maximum likelihood for the doamin of events \( \boldsymbol{D} \) (one-dimensional case) -$$ -\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\dots, (x_{n-1},y_{n-1})], -$$ - -is given by -$$ -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]}. -$$ - -

    -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 - -$$ -p(\boldsymbol{\beta}\vert\boldsymbol{D}). -$$ - -

    -Bayes' theorem comes to our rescue here since (omitting the normalization constant) -$$ -p(\boldsymbol{\beta}\vert\boldsymbol{D})\propto p(\boldsymbol{D}\vert\boldsymbol{\beta})p(\boldsymbol{\beta}). -$$ - -

    -We have a model for \( p(\boldsymbol{D}\vert\boldsymbol{\beta}) \) but need one for the prior \( p(\boldsymbol{\beta} \)! - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs012.html b/doc/src/week37/._week37-bs012.html deleted file mode 100644 index 012c8e223..000000000 --- a/doc/src/week37/._week37-bs012.html +++ /dev/null @@ -1,370 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Ridge and Bayes

    - -

    -With the posterior probability defined by a likelihood which we have -already modeled and an unknown prior, we are now ready to make -additional models for the prior. - -

    -We can, based on our discussions of the variance of \( \boldsymbol{\beta} \) and the mean value, assume that the prior for the values \( \boldsymbol{\beta} \) is given by a Gaussian with mean value zero and variance \( \tau^2 \), that is - -$$ -p(\boldsymbol{\beta})=\prod_{j=0}^{p-1}\exp{\left(-\frac{\beta_j^2}{2\tau^2}\right)}. -$$ - -

    -Our posterior probability becomes then (omitting the normalization factor which is just a constant) -$$ -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)}. -$$ - -

    -We can now optimize this quantity with respect to \( \boldsymbol{\beta} \). As we -did for OLS, this is most conveniently done by taking the negative -logarithm of the posterior probability. Doing so and leaving out the -constants terms that do not depend on \( \beta \), we have - -$$ -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, -$$ - -and replacing \( 1/2\tau^2 \) with \( \lambda \) we have - -$$ -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, -$$ - -which is our Ridge cost function! Nice, isn't it? - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs013.html b/doc/src/week37/._week37-bs013.html deleted file mode 100644 index 92de2c566..000000000 --- a/doc/src/week37/._week37-bs013.html +++ /dev/null @@ -1,364 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Lasso and Bayes

    - -

    -To derive the Lasso cost function, we simply replace the Gaussian prior with an exponential distribution (Laplace in this case) with zero mean value, that is - -$$ -p(\boldsymbol{\beta})=\prod_{j=0}^{p-1}\exp{\left(-\frac{\vert\beta_j\vert}{\tau}\right)}. -$$ - -

    -Our posterior probability becomes then (omitting the normalization factor which is just a constant) -$$ -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)}. -$$ - -

    -Taking the negative -logarithm of the posterior probability and leaving out the -constants terms that do not depend on \( \beta \), we have - -$$ -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, -$$ - -and replacing \( 1/\tau \) with \( \lambda \) we have - -$$ -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, -$$ - -which is our Lasso cost function! - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs014.html b/doc/src/week37/._week37-bs014.html deleted file mode 100644 index 44b585130..000000000 --- a/doc/src/week37/._week37-bs014.html +++ /dev/null @@ -1,346 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Why resampling methods

    - -

    -Before we proceed, we need to rethink what we have been doing. In our -eager to fit the data, we have omitted several important elements in -our regression analysis. In what follows we will - -

      -
    1. look at statistical properties, including a discussion of mean values, variance and the so-called bias-variance tradeoff
    2. -
    3. introduce resampling techniques like cross-validation, bootstrapping and jackknife and more
    4. -
    - -and discuss how to select a given model (one of the difficult parts in machine learning). - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs015.html b/doc/src/week37/._week37-bs015.html deleted file mode 100644 index bc7bbd54d..000000000 --- a/doc/src/week37/._week37-bs015.html +++ /dev/null @@ -1,363 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Resampling methods

    -
    -
    -

    -Resampling methods are an indispensable tool in modern -statistics. They involve repeatedly drawing samples from a training -set and refitting a model of interest on each sample in order to -obtain additional information about the fitted model. For example, in -order to estimate the variability of a linear regression fit, we can -repeatedly draw different samples from the training data, fit a linear -regression to each new sample, and then examine the extent to which -the resulting fits differ. Such an approach may allow us to obtain -information that would not be available from fitting the model only -once using the original training sample. - -

    -Two resampling methods are often used in Machine Learning analyses, - -

      -
    1. The bootstrap method
    2. -
    3. and Cross-Validation
    4. -
    - -In addition there are several other methods such as the Jackknife and the Blocking methods. We will discuss in particular -cross-validation and the bootstrap method. - -

    -

    -
    - - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs016.html b/doc/src/week37/._week37-bs016.html deleted file mode 100644 index 4ae2cc1dd..000000000 --- a/doc/src/week37/._week37-bs016.html +++ /dev/null @@ -1,359 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Resampling approaches can be computationally expensive

    -
    -
    -

    - -

    -Resampling approaches can be computationally expensive, because they -involve fitting the same statistical method multiple times using -different subsets of the training data. However, due to recent -advances in computing power, the computational requirements of -resampling methods generally are not prohibitive. In this chapter, we -discuss two of the most commonly used resampling methods, -cross-validation and the bootstrap. Both methods are important tools -in the practical application of many statistical learning -procedures. For example, cross-validation can be used to estimate the -test error associated with a given statistical learning method in -order to evaluate its performance, or to select the appropriate level -of flexibility. The process of evaluating a model’s performance is -known as model assessment, whereas the process of selecting the proper -level of flexibility for a model is known as model selection. The -bootstrap is widely used. - -

    -

    -
    - - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs017.html b/doc/src/week37/._week37-bs017.html deleted file mode 100644 index bc0b9197f..000000000 --- a/doc/src/week37/._week37-bs017.html +++ /dev/null @@ -1,346 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Why resampling methods ?

    -
    -
    -

    - -

      -
    • Our simulations can be treated as computer experiments. This is particularly the case for Monte Carlo methods which are widely used in statistical analyses.
    • -
    • The results can be analysed with the same statistical tools as we would use when analysing experimental data.
    • -
    • As in all experiments, we are looking for expectation values and an estimate of how accurate they are, i.e., possible sources for errors.
    • -
    -
    -
    - - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs018.html b/doc/src/week37/._week37-bs018.html deleted file mode 100644 index 5dc9cc2b0..000000000 --- a/doc/src/week37/._week37-bs018.html +++ /dev/null @@ -1,352 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Statistical analysis

    -
    -
    -

    - -

      -
    • As in other experiments, many numerical experiments have two classes of errors:
    • - -
        -
      • Statistical errors
      • -
      • Systematical errors
      • -
      - -
    • Statistical errors can be estimated using standard tools from statistics
    • -
    • Systematical errors are method specific and must be treated differently from case to case.
    • -
    -
    -
    - - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs019.html b/doc/src/week37/._week37-bs019.html deleted file mode 100644 index 4cf039cf9..000000000 --- a/doc/src/week37/._week37-bs019.html +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Resampling methods

    - -

    -With all these analytical equations for both the OLS and Ridge -regression, we will now outline how to assess a given model. This will -lead to a discussion of the so-called bias-variance tradeoff (see -below) and so-called resampling methods. - -

    -One of the quantities we have discussed as a way to measure errors is -the mean-squared error (MSE), mainly used for fitting of continuous -functions. Another choice is the absolute error. - -

    -In the discussions below we will focus on the MSE and in particular since we will split the data into test and training data, -we discuss the - -

      -
    1. prediction error or simply the test error \( \mathrm{Err_{Test}} \), where we have a fixed training set and the test error is the MSE arising from the data reserved for testing. We discuss also the
    2. -
    3. training error \( \mathrm{Err_{Train}} \), which is the average loss over the training data.
    4. -
    - -As our model becomes more and more complex, more of the training data tends to used. The training may thence adapt to more complicated structures in the data. This may lead to a decrease in the bias (see below for code example) and a slight increase of the variance for the test error. -For a certain level of complexity the test error will reach minimum, before starting to increase again. The -training error reaches a saturation. - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs020.html b/doc/src/week37/._week37-bs020.html deleted file mode 100644 index 5cdcbe802..000000000 --- a/doc/src/week37/._week37-bs020.html +++ /dev/null @@ -1,352 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Resampling methods: Jackknife and Bootstrap

    - -

    -Two famous -resampling methods are the independent bootstrap and the jackknife. - -

    -The jackknife is a special case of the independent bootstrap. Still, the jackknife was made -popular prior to the independent bootstrap. And as the popularity of -the independent bootstrap soared, new variants, such as the dependent bootstrap have also been developed.. - -

    -The Jackknife and independent bootstrap work for -independent, identically distributed random variables. -If these conditions are not -satisfied, the methods will fail. Yet, it should be said that if the data are -independent, identically distributed, and we only want to estimate the -variance of \( \overline{X} \) (which often is the case), then there is no -need for bootstrapping. - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs021.html b/doc/src/week37/._week37-bs021.html deleted file mode 100644 index 4720dff62..000000000 --- a/doc/src/week37/._week37-bs021.html +++ /dev/null @@ -1,348 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Resampling methods: Jackknife

    - -

    -The Jackknife works by making many replicas of the estimator \( \widehat{\beta} \). -The jackknife is a resampling method where we systematically leave out one observation from the vector of observed values \( \boldsymbol{x} = (x_1,x_2,\cdots,X_n) \). -Let \( \boldsymbol{x}_i \) denote the vector -$$ -\boldsymbol{x}_i = (x_1,x_2,\cdots,x_{i-1},x_{i+1},\cdots,x_n), -$$ - -

    -which equals the vector \( \boldsymbol{x} \) with the exception that observation -number \( i \) is left out. Using this notation, define -\( \widehat{\beta}_i \) to be the estimator -\( \widehat{\beta} \) computed using \( \vec{X}_i \). - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs022.html b/doc/src/week37/._week37-bs022.html deleted file mode 100644 index 0bc5446aa..000000000 --- a/doc/src/week37/._week37-bs022.html +++ /dev/null @@ -1,365 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Jackknife code example

    -

    - - -

    from numpy import *
    -from numpy.random import randint, randn
    -from time import time
    -
    -def jackknife(data, stat):
    -    n = len(data);t = zeros(n); inds = arange(n); t0 = time()
    -    ## 'jackknifing' by leaving out an observation for each i                                                                                                                      
    -    for i in range(n):
    -        t[i] = stat(delete(data,i) )
    -
    -    # analysis                                                                                                                                                                     
    -    print("Runtime: %g sec" % (time()-t0)); print("Jackknife Statistics :")
    -    print("original           bias      std. error")
    -    print("%8g %14g %15g" % (stat(data),(n-1)*mean(t)/n, (n*var(t))**.5))
    -
    -    return t
    -
    -
    -# Returns mean of data samples                                                                                                                                                     
    -def stat(data):
    -    return mean(data)
    -
    -
    -mu, sigma = 100, 15
    -datapoints = 10000
    -x = mu + sigma*random.randn(datapoints)
    -# jackknife returns the data sample                                                                                                                                                
    -t = jackknife(x, stat)
    -
    -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs023.html b/doc/src/week37/._week37-bs023.html deleted file mode 100644 index 2f517da77..000000000 --- a/doc/src/week37/._week37-bs023.html +++ /dev/null @@ -1,357 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Resampling methods: Bootstrap

    -
    -
    -

    -Bootstrapping is a non-parametric approach to statistical inference -that substitutes computation for more traditional distributional -assumptions and asymptotic results. Bootstrapping offers a number of -advantages: - -

      -
    1. The bootstrap is quite general, although there are some cases in which it fails.
    2. -
    3. Because it does not require distributional assumptions (such as normally distributed errors), the bootstrap can provide more accurate inferences when the data are not well behaved or when the sample size is small.
    4. -
    5. It is possible to apply the bootstrap to statistics with sampling distributions that are difficult to derive, even asymptotically.
    6. -
    7. It is relatively simple to apply the bootstrap to complex data-collection plans (such as stratified and clustered samples).
    8. -
    -
    -
    - - -

    -The textbook by Davison on the Bootstrap Methods and their Applications provides many more insights and proofs. In this course we will take a more practical approach and use the results and theorems provided in the literature. For those interested in reading more about the bootstrap methods, we recommend the above text and the one by Efron and Tibshirani. - -

    -Before we proceed however, we need to remind ourselves about a central theorem in statistics, namely the so-called central limit theorem. - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs024.html b/doc/src/week37/._week37-bs024.html deleted file mode 100644 index c83575a69..000000000 --- a/doc/src/week37/._week37-bs024.html +++ /dev/null @@ -1,351 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    The Central Limit Theorem

    - -

    -Suppose we have a PDF \( p(x) \) from which we generate a series \( N \) -of averages \( \langle x_i \rangle \). Each mean value \( \langle x_i \rangle \) -is viewed as the average of a specific measurement, e.g., throwing -dice 100 times and then taking the average value, or producing a certain -amount of random numbers. -For notational ease, we set \( \langle x_i \rangle=x_i \) in the discussion -which follows. - -

    -If we compute the mean \( z \) of \( m \) such mean values \( x_i \) -$$ - z=\frac{x_1+x_2+\dots+x_m}{m}, -$$ - -the question we pose is which is the PDF of the new variable \( z \). - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs025.html b/doc/src/week37/._week37-bs025.html deleted file mode 100644 index 1dea5c181..000000000 --- a/doc/src/week37/._week37-bs025.html +++ /dev/null @@ -1,349 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Finding the Limit

    - -

    -The probability of obtaining an average value \( z \) is the product of the -probabilities of obtaining arbitrary individual mean values \( x_i \), -but with the constraint that the average is \( z \). We can express this through -the following expression -$$ - \tilde{p}(z)=\int dx_1p(x_1)\int dx_2p(x_2)\dots\int dx_mp(x_m) - \delta(z-\frac{x_1+x_2+\dots+x_m}{m}), -$$ - -where the \( \delta \)-function enbodies the constraint that the mean is \( z \). -All measurements that lead to each individual \( x_i \) are expected to -be independent, which in turn means that we can express \( \tilde{p} \) as the -product of individual \( p(x_i) \). The independence assumption is important in the derivation of the central limit theorem. - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs026.html b/doc/src/week37/._week37-bs026.html deleted file mode 100644 index d5f3f4423..000000000 --- a/doc/src/week37/._week37-bs026.html +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Rewriting the \( \delta \)-function

    - -

    -If we use the integral expression for the \( \delta \)-function - -$$ - \delta(z-\frac{x_1+x_2+\dots+x_m}{m})=\frac{1}{2\pi}\int_{-\infty}^{\infty} - dq\exp{\left(iq(z-\frac{x_1+x_2+\dots+x_m}{m})\right)}, -$$ - -and inserting \( e^{i\mu q-i\mu q} \) where \( \mu \) is the mean value -we arrive at -$$ - \tilde{p}(z)=\frac{1}{2\pi}\int_{-\infty}^{\infty} - dq\exp{\left(iq(z-\mu)\right)}\left[\int_{-\infty}^{\infty} - dxp(x)\exp{\left(iq(\mu-x)/m\right)}\right]^m, -$$ - -with the integral over \( x \) resulting in - -$$ - \int_{-\infty}^{\infty}dxp(x)\exp{\left(iq(\mu-x)/m\right)}= - \int_{-\infty}^{\infty}dxp(x) - \left[1+\frac{iq(\mu-x)}{m}-\frac{q^2(\mu-x)^2}{2m^2}+\dots\right]. -$$ - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs027.html b/doc/src/week37/._week37-bs027.html deleted file mode 100644 index 0eb1e4da9..000000000 --- a/doc/src/week37/._week37-bs027.html +++ /dev/null @@ -1,360 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Identifying Terms

    - -

    -The second term on the rhs disappears since this is just the mean and -employing the definition of \( \sigma^2 \) we have -$$ - \int_{-\infty}^{\infty}dxp(x)e^{\left(iq(\mu-x)/m\right)}= - 1-\frac{q^2\sigma^2}{2m^2}+\dots, -$$ - -resulting in - -$$ - \left[\int_{-\infty}^{\infty}dxp(x)\exp{\left(iq(\mu-x)/m\right)}\right]^m\approx - \left[1-\frac{q^2\sigma^2}{2m^2}+\dots \right]^m, -$$ - -and in the limit \( m\rightarrow \infty \) we obtain - -$$ - \tilde{p}(z)=\frac{1}{\sqrt{2\pi}(\sigma/\sqrt{m})} - \exp{\left(-\frac{(z-\mu)^2}{2(\sigma/\sqrt{m})^2}\right)}, -$$ - -which is the normal distribution with variance -\( \sigma^2_m=\sigma^2/m \), where \( \sigma \) is the variance of the PDF \( p(x) \) -and \( \mu \) is also the mean of the PDF \( p(x) \). - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs028.html b/doc/src/week37/._week37-bs028.html deleted file mode 100644 index 9a94e716c..000000000 --- a/doc/src/week37/._week37-bs028.html +++ /dev/null @@ -1,366 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Wrapping it up

    - -

    -Thus, the central limit theorem states that the PDF \( \tilde{p}(z) \) of -the average of \( m \) random values corresponding to a PDF \( p(x) \) -is a normal distribution whose mean is the -mean value of the PDF \( p(x) \) and whose variance is the variance -of the PDF \( p(x) \) divided by \( m \), the number of values used to compute \( z \). - -

    -The theorem is satisfied by a large class of PDFs. Note however that for a -finite \( m \), it is not always possible to find a closed expression for -\( \tilde{p}(x) \). -The central limit theorem leads then to the well-known expression for the -standard deviation, given by - -$$ - \sigma_m= -\frac{\sigma}{\sqrt{m}}. -$$ - -

    -The latter is true only if the average value is known exactly. This is obtained in the limit -\( m\rightarrow \infty \) only. Because the mean and the variance are measured quantities we obtain -the familiar expression in statistics -$$ - \sigma_m\approx -\frac{\sigma}{\sqrt{m-1}}. -$$ - -

    -In many cases however the above estimate for the standard deviation, -in particular if correlations are strong, may be too simplistic. - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs029.html b/doc/src/week37/._week37-bs029.html deleted file mode 100644 index 8a968dea6..000000000 --- a/doc/src/week37/._week37-bs029.html +++ /dev/null @@ -1,334 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Confidence Intervals

    - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs030.html b/doc/src/week37/._week37-bs030.html deleted file mode 100644 index 6f77ecd2f..000000000 --- a/doc/src/week37/._week37-bs030.html +++ /dev/null @@ -1,345 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Resampling methods: Bootstrap background

    - -

    -Since \( \widehat{\beta} = \widehat{\beta}(\boldsymbol{X}) \) is a function of random variables, -\( \widehat{\beta} \) itself must be a random variable. Thus it has -a pdf, call this function \( p(\boldsymbol{t}) \). The aim of the bootstrap is to -estimate \( p(\boldsymbol{t}) \) by the relative frequency of -\( \widehat{\beta} \). You can think of this as using a histogram -in the place of \( p(\boldsymbol{t}) \). If the relative frequency closely -resembles \( p(\vec{t}) \), then using numerics, it is straight forward to -estimate all the interesting parameters of \( p(\boldsymbol{t}) \) using point -estimators. - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs031.html b/doc/src/week37/._week37-bs031.html deleted file mode 100644 index 967a7319a..000000000 --- a/doc/src/week37/._week37-bs031.html +++ /dev/null @@ -1,351 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Resampling methods: More Bootstrap background

    - -

    -In the case that \( \widehat{\beta} \) has -more than one component, and the components are independent, we use the -same estimator on each component separately. If the probability -density function of \( X_i \), \( p(x) \), had been known, then it would have -been straightforward to do this by: - -

      -
    1. Drawing lots of numbers from \( p(x) \), suppose we call one such set of numbers \( (X_1^*, X_2^*, \cdots, X_n^*) \).
    2. -
    3. Then using these numbers, we could compute a replica of \( \widehat{\beta} \) called \( \widehat{\beta}^* \).
    4. -
    - -By repeated use of the above two points, many -estimates of \( \widehat{\beta} \) can be obtained. The -idea is to use the relative frequency of \( \widehat{\beta}^* \) -(think of a histogram) as an estimate of \( p(\boldsymbol{t}) \). - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs032.html b/doc/src/week37/._week37-bs032.html deleted file mode 100644 index c3b39e6a9..000000000 --- a/doc/src/week37/._week37-bs032.html +++ /dev/null @@ -1,347 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Resampling methods: Bootstrap approach

    - -

    -But -unless there is enough information available about the process that -generated \( X_1,X_2,\cdots,X_n \), \( p(x) \) is in general -unknown. Therefore, Efron in 1979 asked the -question: What if we replace \( p(x) \) by the relative frequency -of the observation \( X_i \)? - -

    -If we draw observations in accordance with -the relative frequency of the observations, will we obtain the same -result in some asymptotic sense? The answer is yes. - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs033.html b/doc/src/week37/._week37-bs033.html deleted file mode 100644 index 93bbdb824..000000000 --- a/doc/src/week37/._week37-bs033.html +++ /dev/null @@ -1,354 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Resampling methods: Bootstrap steps

    - -

    -The independent bootstrap works like this: - -

      -
    1. Draw with replacement \( n \) numbers for the observed variables \( \boldsymbol{x} = (x_1,x_2,\cdots,x_n) \).
    2. -
    3. Define a vector \( \boldsymbol{x}^* \) containing the values which were drawn from \( \boldsymbol{x} \).
    4. -
    5. Using the vector \( \boldsymbol{x}^* \) compute \( \widehat{\beta}^* \) by evaluating \( \widehat \beta \) under the observations \( \boldsymbol{x}^* \).
    6. -
    7. Repeat this process \( k \) times.
    8. -
    - -When you are done, you can draw a histogram of the relative frequency -of \( \widehat \beta^* \). This is your estimate of the probability -distribution \( p(t) \). Using this probability distribution you can -estimate any statistics thereof. In principle you never draw the -histogram of the relative frequency of \( \widehat{\beta}^* \). Instead -you use the estimators corresponding to the statistic of interest. For -example, if you are interested in estimating the variance of \( \widehat -\beta \), apply the etsimator \( \widehat \sigma^2 \) to the values -\( \widehat \beta^* \). - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs034.html b/doc/src/week37/._week37-bs034.html deleted file mode 100644 index 2a1d959bf..000000000 --- a/doc/src/week37/._week37-bs034.html +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Code example for the Bootstrap method

    - -

    -The following code starts with a Gaussian distribution with mean value -\( \mu =100 \) and variance \( \sigma=15 \). We use this to generate the data -used in the bootstrap analysis. The bootstrap analysis returns a data -set after a given number of bootstrap operations (as many as we have -data points). This data set consists of estimated mean values for each -bootstrap operation. The histogram generated by the bootstrap method -shows that the distribution for these mean values is also a Gaussian, -centered around the mean value \( \mu=100 \) but with standard deviation -\( \sigma/\sqrt{n} \), where \( n \) is the number of bootstrap samples (in -this case the same as the number of original data points). The value -of the standard deviation is what we expect from the central limit -theorem. - -

    - - -

    from numpy import *
    -from numpy.random import randint, randn
    -from time import time
    -import matplotlib.mlab as mlab
    -import matplotlib.pyplot as plt
    -
    -# Returns mean of bootstrap samples                                                                              # Alternatively, we can run it using Scikit-Learn's function resample                                            # See the examples below
    -
    -def statistics(data):
    -    return mean(data)
    -
    -
    -# Bootstrap algorithm
    -def bootstrap(data, statistic, R):
    -    t = zeros(R); n = len(data); inds = arange(n); t0 = time()
    -    # non-parametric bootstrap         
    -    for i in range(R):
    -        t[i] = statistic(data[randint(0,n,n)])
    -
    -    # analysis    
    -    print("Runtime: %g sec" % (time()-t0)); print("Bootstrap Statistics :")
    -    print("original           bias      std. error")
    -    print("%8g %8g %14g %15g" % (statistic(data), std(data),mean(t),std(t)))
    -    return t
    -
    -
    -mu, sigma = 100, 15
    -datapoints = 10000
    -x = mu + sigma*random.randn(datapoints)
    -# bootstrap returns the data sample                                    
    -t = bootstrap(x, statistics, datapoints)
    -
    -

    -We see that our new variance and from that the standard deviation, agrees with the central limit theorem. - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs035.html b/doc/src/week37/._week37-bs035.html deleted file mode 100644 index e2fb6f7a4..000000000 --- a/doc/src/week37/._week37-bs035.html +++ /dev/null @@ -1,349 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Plotting the Histogram

    -

    - - -

    # the histogram of the bootstrapped  data                                                                                                    
    -n, binsboot, patches = plt.hist(t, 50, normed=1, facecolor='red', alpha=0.75)
    -
    -# add a 'best fit' line  
    -y = mlab.normpdf( binsboot, mean(t), std(t))
    -lt = plt.plot(binsboot, y, 'r--', linewidth=1)
    -plt.xlabel('Smarts')
    -plt.ylabel('Probability')
    -plt.axis([99.5, 100.6, 0, 3.0])
    -plt.grid(True)
    -
    -plt.show()
    -
    -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs036.html b/doc/src/week37/._week37-bs036.html deleted file mode 100644 index 89fcaeb1c..000000000 --- a/doc/src/week37/._week37-bs036.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    The bias-variance tradeoff

    - -

    -We will discuss the bias-variance tradeoff in the context of -continuous predictions such as regression. However, many of the -intuitions and ideas discussed here also carry over to classification -tasks. Consider a dataset \( \mathcal{L} \) consisting of the data -\( \mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\} \). - -

    -Let us assume that the true data is generated from a noisy model - -$$ -\boldsymbol{y}=f(\boldsymbol{x}) + \boldsymbol{\epsilon} -$$ - -

    -where \( \epsilon \) is normally distributed with mean zero and standard deviation \( \sigma^2 \). - -

    -In our derivation of the ordinary least squares method we defined then -an approximation to the function \( f \) in terms of the parameters -\( \boldsymbol{\beta} \) and the design matrix \( \boldsymbol{X} \) which embody our model, -that is \( \boldsymbol{\tilde{y}}=\boldsymbol{X}\boldsymbol{\beta} \). - -

    -Thereafter we found the parameters \( \boldsymbol{\beta} \) by optimizing the means squared error via the so-called cost function -$$ -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]. -$$ - -

    -We can rewrite this as -$$ -\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. -$$ - -

    -The three terms represent the square of the bias of the learning -method, which can be thought of as the error caused by the simplifying -assumptions built into the method. The second term represents the -variance of the chosen model and finally the last terms is variance of -the error \( \boldsymbol{\epsilon} \). - -

    -To derive this equation, we need to recall that the variance of \( \boldsymbol{y} \) and \( \boldsymbol{\epsilon} \) are both equal to \( \sigma^2 \). The mean value of \( \boldsymbol{\epsilon} \) is by definition equal to zero. Furthermore, the function \( f \) is not a stochastics variable, idem for \( \boldsymbol{\tilde{y}} \). -We use a more compact notation in terms of the expectation value -$$ -\mathbb{E}\left[(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2\right]=\mathbb{E}\left[(\boldsymbol{f}+\boldsymbol{\epsilon}-\boldsymbol{\tilde{y}})^2\right], -$$ - -and adding and subtracting \( \mathbb{E}\left[\boldsymbol{\tilde{y}}\right] \) we get -$$ -\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], -$$ - -which, using the abovementioned expectation values can be rewritten as -$$ -\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, -$$ - -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} \). - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs037.html b/doc/src/week37/._week37-bs037.html deleted file mode 100644 index 312464bb6..000000000 --- a/doc/src/week37/._week37-bs037.html +++ /dev/null @@ -1,337 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    A way to Read the Bias-Variance Tradeoff

    - -

    -



    - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs038.html b/doc/src/week37/._week37-bs038.html deleted file mode 100644 index c7a6fa753..000000000 --- a/doc/src/week37/._week37-bs038.html +++ /dev/null @@ -1,391 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Example code for Bias-Variance tradeoff

    -

    - - -

    import matplotlib.pyplot as plt
    -import numpy as np
    -from sklearn.linear_model import LinearRegression, Ridge, Lasso
    -from sklearn.preprocessing import PolynomialFeatures
    -from sklearn.model_selection import train_test_split
    -from sklearn.pipeline import make_pipeline
    -from sklearn.utils import resample
    -
    -np.random.seed(2018)
    -
    -n = 500
    -n_boostraps = 100
    -degree = 18  # A quite high value, just to show.
    -noise = 0.1
    -
    -# Make data set.
    -x = np.linspace(-1, 3, n).reshape(-1, 1)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2) + np.random.normal(0, 0.1, x.shape)
    -
    -# Hold out some test data that is never used in training.
    -x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
    -
    -# Combine x transformation and model into one operation.
    -# Not neccesary, but convenient.
    -model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))
    -
    -# The following (m x n_bootstraps) matrix holds the column vectors y_pred
    -# for each bootstrap iteration.
    -y_pred = np.empty((y_test.shape[0], n_boostraps))
    -for i in range(n_boostraps):
    -    x_, y_ = resample(x_train, y_train)
    -
    -    # Evaluate the new model on the same test data each time.
    -    y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel()
    -
    -# Note: Expectations and variances taken w.r.t. different training
    -# data sets, hence the axis=1. Subsequent means are taken across the test data
    -# set in order to obtain a total value, but before this we have error/bias/variance
    -# calculated per data point in the test set.
    -# Note 2: The use of keepdims=True is important in the calculation of bias as this 
    -# maintains the column vector form. Dropping this yields very unexpected results.
    -error = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) )
    -bias = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 )
    -variance = np.mean( np.var(y_pred, axis=1, keepdims=True) )
    -print('Error:', error)
    -print('Bias^2:', bias)
    -print('Var:', variance)
    -print('{} >= {} + {} = {}'.format(error, bias, variance, bias+variance))
    -
    -plt.plot(x[::5, :], y[::5, :], label='f(x)')
    -plt.scatter(x_test, y_test, label='Data points')
    -plt.scatter(x_test, np.mean(y_pred, axis=1), label='Pred')
    -plt.legend()
    -plt.show()
    -
    -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs039.html b/doc/src/week37/._week37-bs039.html deleted file mode 100644 index eec737109..000000000 --- a/doc/src/week37/._week37-bs039.html +++ /dev/null @@ -1,381 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Understanding what happens

    -

    - - -

    import matplotlib.pyplot as plt
    -import numpy as np
    -from sklearn.linear_model import LinearRegression, Ridge, Lasso
    -from sklearn.preprocessing import PolynomialFeatures
    -from sklearn.model_selection import train_test_split
    -from sklearn.pipeline import make_pipeline
    -from sklearn.utils import resample
    -
    -np.random.seed(2018)
    -
    -n = 40
    -n_boostraps = 100
    -maxdegree = 14
    -
    -
    -# Make data set.
    -x = np.linspace(-3, 3, n).reshape(-1, 1)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)
    -error = np.zeros(maxdegree)
    -bias = np.zeros(maxdegree)
    -variance = np.zeros(maxdegree)
    -polydegree = np.zeros(maxdegree)
    -x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
    -
    -for degree in range(maxdegree):
    -    model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))
    -    y_pred = np.empty((y_test.shape[0], n_boostraps))
    -    for i in range(n_boostraps):
    -        x_, y_ = resample(x_train, y_train)
    -        y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel()
    -
    -    polydegree[degree] = degree
    -    error[degree] = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) )
    -    bias[degree] = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 )
    -    variance[degree] = np.mean( np.var(y_pred, axis=1, keepdims=True) )
    -    print('Polynomial degree:', degree)
    -    print('Error:', error[degree])
    -    print('Bias^2:', bias[degree])
    -    print('Var:', variance[degree])
    -    print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree]))
    -
    -plt.plot(polydegree, error, label='Error')
    -plt.plot(polydegree, bias, label='bias')
    -plt.plot(polydegree, variance, label='Variance')
    -plt.legend()
    -plt.show()
    -
    -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs040.html b/doc/src/week37/._week37-bs040.html deleted file mode 100644 index 421faa8c0..000000000 --- a/doc/src/week37/._week37-bs040.html +++ /dev/null @@ -1,363 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Summing up

    - -

    -The bias-variance tradeoff summarizes the fundamental tension in -machine learning, particularly supervised learning, between the -complexity of a model and the amount of training data needed to train -it. Since data is often limited, in practice it is often useful to -use a less-complex model with higher bias, that is a model whose asymptotic -performance is worse than another model because it is easier to -train and less sensitive to sampling noise arising from having a -finite-sized training dataset (smaller variance). - -

    -The above equations tell us that in -order to minimize the expected test error, we need to select a -statistical learning method that simultaneously achieves low variance -and low bias. Note that variance is inherently a nonnegative quantity, -and squared bias is also nonnegative. Hence, we see that the expected -test MSE can never lie below \( Var(\epsilon) \), the irreducible error. - -

    -What do we mean by the variance and bias of a statistical learning -method? The variance refers to the amount by which our model would change if we -estimated it using a different training data set. Since the training -data are used to fit the statistical learning method, different -training data sets will result in a different estimate. But ideally the -estimate for our model should not vary too much between training -sets. However, if a method has high variance then small changes in -the training data can result in large changes in the model. In general, more -flexible statistical methods have higher variance. - -

    -You may also find this recent article of interest. - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs041.html b/doc/src/week37/._week37-bs041.html deleted file mode 100644 index 8b36e07d7..000000000 --- a/doc/src/week37/._week37-bs041.html +++ /dev/null @@ -1,404 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Another Example from Scikit-Learn's Repository

    -

    - - -

    """
    -============================
    -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__)
    -
    -import numpy as np
    -import matplotlib.pyplot as plt
    -from sklearn.pipeline import Pipeline
    -from sklearn.preprocessing import PolynomialFeatures
    -from sklearn.linear_model import LinearRegression
    -from sklearn.model_selection import cross_val_score
    -
    -
    -def true_fun(X):
    -    return np.cos(1.5 * np.pi * X)
    -
    -np.random.seed(0)
    -
    -n_samples = 30
    -degrees = [1, 4, 15]
    -
    -X = np.sort(np.random.rand(n_samples))
    -y = true_fun(X) + np.random.randn(n_samples) * 0.1
    -
    -plt.figure(figsize=(14, 5))
    -for i in range(len(degrees)):
    -    ax = plt.subplot(1, len(degrees), i + 1)
    -    plt.setp(ax, xticks=(), yticks=())
    -
    -    polynomial_features = PolynomialFeatures(degree=degrees[i],
    -                                             include_bias=False)
    -    linear_regression = LinearRegression()
    -    pipeline = Pipeline([("polynomial_features", polynomial_features),
    -                         ("linear_regression", linear_regression)])
    -    pipeline.fit(X[:, np.newaxis], y)
    -
    -    # Evaluate the models using crossvalidation
    -    scores = cross_val_score(pipeline, X[:, np.newaxis], y,
    -                             scoring="neg_mean_squared_error", cv=10)
    -
    -    X_test = np.linspace(0, 1, 100)
    -    plt.plot(X_test, pipeline.predict(X_test[:, np.newaxis]), label="Model")
    -    plt.plot(X_test, true_fun(X_test), label="True function")
    -    plt.scatter(X, y, edgecolor='b', s=20, label="Samples")
    -    plt.xlabel("x")
    -    plt.ylabel("y")
    -    plt.xlim((0, 1))
    -    plt.ylim((-2, 2))
    -    plt.legend(loc="best")
    -    plt.title("Degree {}\nMSE = {:.2e}(+/- {:.2e})".format(
    -        degrees[i], -scores.mean(), scores.std()))
    -plt.show()
    -
    -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs042.html b/doc/src/week37/._week37-bs042.html deleted file mode 100644 index 1c599b23b..000000000 --- a/doc/src/week37/._week37-bs042.html +++ /dev/null @@ -1,345 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Various steps in cross-validation

    - -

    -When the repetitive splitting of the data set is done randomly, -samples may accidently end up in a fast majority of the splits in -either training or test set. Such samples may have an unbalanced -influence on either model building or prediction evaluation. To avoid -this \( k \)-fold cross-validation structures the data splitting. The -samples are divided into \( k \) more or less equally sized exhaustive and -mutually exclusive subsets. In turn (at each split) one of these -subsets plays the role of the test set while the union of the -remaining subsets constitutes the training set. Such a splitting -warrants a balanced representation of each sample in both training and -test set over the splits. Still the division into the \( k \) subsets -involves a degree of randomness. This may be fully excluded when -choosing \( k=n \). This particular case is referred to as leave-one-out -cross-validation (LOOCV). - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs043.html b/doc/src/week37/._week37-bs043.html deleted file mode 100644 index ab4bf59f9..000000000 --- a/doc/src/week37/._week37-bs043.html +++ /dev/null @@ -1,355 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    How to set up the cross-validation for Ridge and/or Lasso

    - -
      -
    • Define a range of interest for the penalty parameter.
    • -
    • Divide the data set into training and test set comprising samples \( \{1, \ldots, n\} \setminus i \) and \( \{ i \} \), respectively.
    • -
    • Fit the linear regression model by means of ridge estimation for each \( \lambda \) in the grid using the training set, and the corresponding estimate of the error variance \( \boldsymbol{\sigma}_{-i}^2(\lambda) \), as
    • -
    - -$$ -\begin{align*} -\boldsymbol{\beta}_{-i}(\lambda) & = ( \boldsymbol{X}_{-i, \ast}^{T} -\boldsymbol{X}_{-i, \ast} + \lambda \boldsymbol{I}_{pp})^{-1} -\boldsymbol{X}_{-i, \ast}^{T} \boldsymbol{y}_{-i} -\end{align*} -$$ - - -
      -
    • Evaluate the prediction performance of these models on the test set by \( \log\{L[y_i, \boldsymbol{X}_{i, \ast}; \boldsymbol{\beta}_{-i}(\lambda), \boldsymbol{\sigma}_{-i}^2(\lambda)]\} \). Or, by the prediction error \( |y_i - \boldsymbol{X}_{i, \ast} \boldsymbol{\beta}_{-i}(\lambda)| \), the relative error, the error squared or the R2 score function.
    • -
    • Repeat the first three steps such that each sample plays the role of the test set once.
    • -
    • Average the prediction performances of the test sets at each grid point of the penalty bias/parameter. It is an estimate of the prediction performance of the model corresponding to this value of the penalty parameter on novel data. It is defined as
    • -
    - -$$ -\begin{align*} -\frac{1}{n} \sum_{i = 1}^n \log\{L[y_i, \mathbf{X}_{i, \ast}; \boldsymbol{\beta}_{-i}(\lambda), \boldsymbol{\sigma}_{-i}^2(\lambda)]\}. -\end{align*} -$$ - -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs044.html b/doc/src/week37/._week37-bs044.html deleted file mode 100644 index c77eece25..000000000 --- a/doc/src/week37/._week37-bs044.html +++ /dev/null @@ -1,344 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Cross-validation in brief

    - -

    -For the various values of \( k \) - -

      -
    1. shuffle the dataset randomly.
    2. -
    3. Split the dataset into \( k \) groups.
    4. -
    5. For each unique group: - -
        -
      1. Decide which group to use as set for test data
      2. -
      3. Take the remaining groups as a training data set
      4. -
      5. Fit a model on the training set and evaluate it on the test set
      6. -
      7. Retain the evaluation score and discard the model
      8. -
      - -
    6. Summarize the model using the sample of model evaluation scores
    7. -
    - -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs045.html b/doc/src/week37/._week37-bs045.html deleted file mode 100644 index c832537f5..000000000 --- a/doc/src/week37/._week37-bs045.html +++ /dev/null @@ -1,421 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Code Example for Cross-validation and \( k \)-fold Cross-validation

    - -

    -The code here uses Ridge regression with cross-validation (CV) resampling and \( k \)-fold CV in order to fit a specific polynomial. -

    - - -

    import numpy as np
    -import matplotlib.pyplot as plt
    -from sklearn.model_selection import KFold
    -from sklearn.linear_model import Ridge
    -from sklearn.model_selection import cross_val_score
    -from sklearn.preprocessing import PolynomialFeatures
    -
    -# A seed just to ensure that the random numbers are the same for every run.
    -# Useful for eventual debugging.
    -np.random.seed(3155)
    -
    -# Generate the data.
    -nsamples = 100
    -x = np.random.randn(nsamples)
    -y = 3*x**2 + np.random.randn(nsamples)
    -
    -## Cross-validation on Ridge regression using KFold only
    -
    -# Decide degree on polynomial to fit
    -poly = PolynomialFeatures(degree = 6)
    -
    -# Decide which values of lambda to use
    -nlambdas = 500
    -lambdas = np.logspace(-3, 5, nlambdas)
    -
    -# Initialize a KFold instance
    -k = 5
    -kfold = KFold(n_splits = k)
    -
    -# Perform the cross-validation to estimate MSE
    -scores_KFold = np.zeros((nlambdas, k))
    -
    -i = 0
    -for lmb in lambdas:
    -    ridge = Ridge(alpha = lmb)
    -    j = 0
    -    for train_inds, test_inds in kfold.split(x):
    -        xtrain = x[train_inds]
    -        ytrain = y[train_inds]
    -
    -        xtest = x[test_inds]
    -        ytest = y[test_inds]
    -
    -        Xtrain = poly.fit_transform(xtrain[:, np.newaxis])
    -        ridge.fit(Xtrain, ytrain[:, np.newaxis])
    -
    -        Xtest = poly.fit_transform(xtest[:, np.newaxis])
    -        ypred = ridge.predict(Xtest)
    -
    -        scores_KFold[i,j] = np.sum((ypred - ytest[:, np.newaxis])**2)/np.size(ypred)
    -
    -        j += 1
    -    i += 1
    -
    -
    -estimated_mse_KFold = np.mean(scores_KFold, axis = 1)
    -
    -## Cross-validation using cross_val_score from sklearn along with KFold
    -
    -# kfold is an instance initialized above as:
    -# kfold = KFold(n_splits = k)
    -
    -estimated_mse_sklearn = np.zeros(nlambdas)
    -i = 0
    -for lmb in lambdas:
    -    ridge = Ridge(alpha = lmb)
    -
    -    X = poly.fit_transform(x[:, np.newaxis])
    -    estimated_mse_folds = cross_val_score(ridge, X, y[:, np.newaxis], scoring='neg_mean_squared_error', cv=kfold)
    -
    -    # cross_val_score return an array containing the estimated negative mse for every fold.
    -    # we have to the the mean of every array in order to get an estimate of the mse of the model
    -    estimated_mse_sklearn[i] = np.mean(-estimated_mse_folds)
    -
    -    i += 1
    -
    -## Plot and compare the slightly different ways to perform cross-validation
    -
    -plt.figure()
    -
    -plt.plot(np.log10(lambdas), estimated_mse_sklearn, label = 'cross_val_score')
    -plt.plot(np.log10(lambdas), estimated_mse_KFold, 'r--', label = 'KFold')
    -
    -plt.xlabel('log10(lambda)')
    -plt.ylabel('mse')
    -
    -plt.legend()
    -
    -plt.show()
    -
    -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs046.html b/doc/src/week37/._week37-bs046.html deleted file mode 100644 index cd01ccbbf..000000000 --- a/doc/src/week37/._week37-bs046.html +++ /dev/null @@ -1,407 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    More examples on bootstrap and cross-validation and errors

    - -

    - - -

    # Common imports
    -import os
    -import numpy as np
    -import pandas as pd
    -import matplotlib.pyplot as plt
    -from sklearn.linear_model import LinearRegression, Ridge, Lasso
    -from sklearn.model_selection import train_test_split
    -from sklearn.utils import resample
    -from sklearn.metrics import mean_squared_error
    -# Where to save the figures and data files
    -PROJECT_ROOT_DIR = "Results"
    -FIGURE_ID = "Results/FigureFiles"
    -DATA_ID = "DataFiles/"
    -
    -if not os.path.exists(PROJECT_ROOT_DIR):
    -    os.mkdir(PROJECT_ROOT_DIR)
    -
    -if not os.path.exists(FIGURE_ID):
    -    os.makedirs(FIGURE_ID)
    -
    -if not os.path.exists(DATA_ID):
    -    os.makedirs(DATA_ID)
    -
    -def image_path(fig_id):
    -    return os.path.join(FIGURE_ID, fig_id)
    -
    -def data_path(dat_id):
    -    return os.path.join(DATA_ID, dat_id)
    -
    -def save_fig(fig_id):
    -    plt.savefig(image_path(fig_id) + ".png", format='png')
    -
    -infile = open(data_path("EoS.csv"),'r')
    -
    -# Read the EoS data as  csv file and organize the data into two arrays with density and energies
    -EoS = pd.read_csv(infile, names=('Density', 'Energy'))
    -EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce')
    -EoS = EoS.dropna()
    -Energies = EoS['Energy']
    -Density = EoS['Density']
    -#  The design matrix now as function of various polytrops
    -
    -Maxpolydegree = 30
    -X = np.zeros((len(Density),Maxpolydegree))
    -X[:,0] = 1.0
    -testerror = np.zeros(Maxpolydegree)
    -trainingerror = np.zeros(Maxpolydegree)
    -polynomial = np.zeros(Maxpolydegree)
    -
    -trials = 100
    -for polydegree in range(1, Maxpolydegree):
    -    polynomial[polydegree] = polydegree
    -    for degree in range(polydegree):
    -        X[:,degree] = Density**(degree/3.0)
    -
    -# loop over trials in order to estimate the expectation value of the MSE
    -    testerror[polydegree] = 0.0
    -    trainingerror[polydegree] = 0.0
    -    for samples in range(trials):
    -        x_train, x_test, y_train, y_test = train_test_split(X, Energies, test_size=0.2)
    -        model = LinearRegression(fit_intercept=True).fit(x_train, y_train)
    -        ypred = model.predict(x_train)
    -        ytilde = model.predict(x_test)
    -        testerror[polydegree] += mean_squared_error(y_test, ytilde)
    -        trainingerror[polydegree] += mean_squared_error(y_train, ypred) 
    -
    -    testerror[polydegree] /= trials
    -    trainingerror[polydegree] /= trials
    -    print("Degree of polynomial: %3d"% polynomial[polydegree])
    -    print("Mean squared error on training data: %.8f" % trainingerror[polydegree])
    -    print("Mean squared error on test data: %.8f" % testerror[polydegree])
    -
    -plt.plot(polynomial, np.log10(trainingerror), label='Training Error')
    -plt.plot(polynomial, np.log10(testerror), label='Test Error')
    -plt.xlabel('Polynomial degree')
    -plt.ylabel('log10[MSE]')
    -plt.legend()
    -plt.show()
    -
    -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs047.html b/doc/src/week37/._week37-bs047.html deleted file mode 100644 index b294cd77d..000000000 --- a/doc/src/week37/._week37-bs047.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    The same example but now with cross-validation

    - -

    - - -

    # Common imports
    -import os
    -import numpy as np
    -import pandas as pd
    -import matplotlib.pyplot as plt
    -from sklearn.linear_model import LinearRegression, Ridge, Lasso
    -from sklearn.metrics import mean_squared_error
    -from sklearn.model_selection import KFold
    -from sklearn.model_selection import cross_val_score
    -
    -
    -# Where to save the figures and data files
    -PROJECT_ROOT_DIR = "Results"
    -FIGURE_ID = "Results/FigureFiles"
    -DATA_ID = "DataFiles/"
    -
    -if not os.path.exists(PROJECT_ROOT_DIR):
    -    os.mkdir(PROJECT_ROOT_DIR)
    -
    -if not os.path.exists(FIGURE_ID):
    -    os.makedirs(FIGURE_ID)
    -
    -if not os.path.exists(DATA_ID):
    -    os.makedirs(DATA_ID)
    -
    -def image_path(fig_id):
    -    return os.path.join(FIGURE_ID, fig_id)
    -
    -def data_path(dat_id):
    -    return os.path.join(DATA_ID, dat_id)
    -
    -def save_fig(fig_id):
    -    plt.savefig(image_path(fig_id) + ".png", format='png')
    -
    -infile = open(data_path("EoS.csv"),'r')
    -
    -# Read the EoS data as  csv file and organize the data into two arrays with density and energies
    -EoS = pd.read_csv(infile, names=('Density', 'Energy'))
    -EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce')
    -EoS = EoS.dropna()
    -Energies = EoS['Energy']
    -Density = EoS['Density']
    -#  The design matrix now as function of various polytrops
    -
    -Maxpolydegree = 30
    -X = np.zeros((len(Density),Maxpolydegree))
    -X[:,0] = 1.0
    -estimated_mse_sklearn = np.zeros(Maxpolydegree)
    -polynomial = np.zeros(Maxpolydegree)
    -k =5
    -kfold = KFold(n_splits = k)
    -
    -for polydegree in range(1, Maxpolydegree):
    -    polynomial[polydegree] = polydegree
    -    for degree in range(polydegree):
    -        X[:,degree] = Density**(degree/3.0)
    -        OLS = LinearRegression()
    -# loop over trials in order to estimate the expectation value of the MSE
    -    estimated_mse_folds = cross_val_score(OLS, X, Energies, scoring='neg_mean_squared_error', cv=kfold)
    -#[:, np.newaxis]
    -    estimated_mse_sklearn[polydegree] = np.mean(-estimated_mse_folds)
    -
    -plt.plot(polynomial, np.log10(estimated_mse_sklearn), label='Test Error')
    -plt.xlabel('Polynomial degree')
    -plt.ylabel('log10[MSE]')
    -plt.legend()
    -plt.show()
    -
    -

    -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/._week37-bs048.html b/doc/src/week37/._week37-bs048.html deleted file mode 100644 index e78b60bc1..000000000 --- a/doc/src/week37/._week37-bs048.html +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

     

     

     

    - - - - -

    Cross-validation with Ridge

    -

    - - -

    import numpy as np
    -import matplotlib.pyplot as plt
    -from sklearn.model_selection import KFold
    -from sklearn.linear_model import Ridge
    -from sklearn.model_selection import cross_val_score
    -from sklearn.preprocessing import PolynomialFeatures
    -
    -# A seed just to ensure that the random numbers are the same for every run.
    -np.random.seed(3155)
    -# Generate the data.
    -n = 100
    -x = np.linspace(-3, 3, n).reshape(-1, 1)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)
    -# Decide degree on polynomial to fit
    -poly = PolynomialFeatures(degree = 10)
    -
    -# Decide which values of lambda to use
    -nlambdas = 500
    -lambdas = np.logspace(-3, 5, nlambdas)
    -# Initialize a KFold instance
    -k = 5
    -kfold = KFold(n_splits = k)
    -estimated_mse_sklearn = np.zeros(nlambdas)
    -i = 0
    -for lmb in lambdas:
    -    ridge = Ridge(alpha = lmb)
    -    estimated_mse_folds = cross_val_score(ridge, x, y, scoring='neg_mean_squared_error', cv=kfold)
    -    estimated_mse_sklearn[i] = np.mean(-estimated_mse_folds)
    -    i += 1
    -plt.figure()
    -plt.plot(np.log10(lambdas), estimated_mse_sklearn, label = 'cross_val_score')
    -plt.xlabel('log10(lambda)')
    -plt.ylabel('MSE')
    -plt.legend()
    -plt.show()
    -
    -

    - -

    - -

    - - -
    - - - - - - - -
    - -
    - - - - - - diff --git a/doc/src/week37/ipynb-week37-src.tar.gz b/doc/src/week37/ipynb-week37-src.tar.gz deleted file mode 100644 index 8893c7353fb3e3cfe930e6be9edd16cf87c9abfd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1022352 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�+Q zsDMrIb-5)Zgwbb=bwAr|HtKoM9f@-eTLYfCr}3<@aNH}V6lB@dS=~8ML|#1h%lLj|lb^rQLHF46P{?tk7tg&6FEi zO52vUDwr1oT9Snd+~40fP(?(?o)!3G^z$`;eOq4qMIR3zuYYlDRbV4|JWb4y z(alJ%4i#I>_1w@oXY=DQIce}V|2z@+{n%h9Cih>YbA2qC3$+}^j|fGoZavPwaZ-EH z|2w`2cxI1v-5~Wqyk}F4y3M@QG6MB=RhFFUSF}c1kfnFgRcgr~xjhBCCWyvRDNFcV z@-u8>rcN}L?6NyN$9?t}9DxZ*jG_c5INwY1-)t}og}D|IigU3nX?z@7^A<-0uqZC2 z*wAbDJi#yZE~Zm}Uw`P!&=6I5GWWbcqPjneB%Zm|<6tjn&&$opNf@ z<{Z-S`&krf@%HO72o#Q6vUD+26na>>CErc#9oSJb-kRcX3LyE7N%v7H;x(uoNwtqaZ&f4 zKh;VmE$}UVsN7Xn9x!)p*aig`tjnZCW)v(*5O|?+591dz&ntj4Qcu|Zj`Uyw>OPvP z2~z%JIj~Pru3Q_W4@CueSq3iIy=&t|Q270yPLG{fKnTio2wlF#rEN|5Sm$XEpW3P% z>+=tP(l1~lJbXeKuFkIDE#T1_E2}fd{}9

    XEql8)>Cn{z0@}DU#z$Y4xtgT3FLE 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

    W^sl3j1gX=tcA{y} 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

    ml1&kn5NuO*8?H?vzz63(4$~KEV<*hH=4GR= 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

    {goJ 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 z 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ΜR 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 z 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 z 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 z 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%0D2(oe_II*UjG4_?g`2Q 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

    ISlUp7=6;j&6?UEvB1T% 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

    1o!M*$^l}^eGg>PDBzur9?Pvnvr%oOOf>i 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%0AlNAb@luy;=9dtCtPIGF)%S6E*=ar9v3 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 diff --git a/doc/src/week37/reveal.js/.gitignore b/doc/src/week37/reveal.js/.gitignore deleted file mode 100644 index a5df3133d..000000000 --- a/doc/src/week37/reveal.js/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -.DS_Store -.svn -log/*.log -tmp/** -node_modules/ -.sass-cache -css/reveal.min.css -js/reveal.min.js diff --git a/doc/src/week37/reveal.js/.travis.yml b/doc/src/week37/reveal.js/.travis.yml deleted file mode 100644 index 165d9ae9f..000000000 --- a/doc/src/week37/reveal.js/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: - - 0.10 -before_script: - - npm install -g grunt-cli \ No newline at end of file diff --git a/doc/src/week37/reveal.js/CONTRIBUTING.md b/doc/src/week37/reveal.js/CONTRIBUTING.md deleted file mode 100644 index c2091e88f..000000000 --- a/doc/src/week37/reveal.js/CONTRIBUTING.md +++ /dev/null @@ -1,23 +0,0 @@ -## Contributing - -Please keep the [issue tracker](http://github.com/hakimel/reveal.js/issues) limited to **bug reports**, **feature requests** and **pull requests**. - - -### Personal Support -If you have personal support or setup questions the best place to ask those are [StackOverflow](http://stackoverflow.com/questions/tagged/reveal.js). - - -### Bug Reports -When reporting a bug make sure to include information about which browser and operating system you are on as well as the necessary steps to reproduce the issue. If possible please include a link to a sample presentation where the bug can be tested. - - -### Pull Requests -- Should follow the coding style of the file you work in, most importantly: - - Tabs to indent - - Single-quoted strings -- Should be made towards the **dev branch** -- Should be submitted from a feature/topic branch (not your master) - - -### Plugins -Please do not submit plugins as pull requests. They should be maintained in their own separate repository. More information here: https://github.com/hakimel/reveal.js/wiki/Plugin-Guidelines diff --git a/doc/src/week37/reveal.js/Gruntfile.js b/doc/src/week37/reveal.js/Gruntfile.js deleted file mode 100644 index b257e8f32..000000000 --- a/doc/src/week37/reveal.js/Gruntfile.js +++ /dev/null @@ -1,140 +0,0 @@ -/* global module:false */ -module.exports = function(grunt) { - var port = grunt.option('port') || 8000; - // Project configuration - grunt.initConfig({ - pkg: grunt.file.readJSON('package.json'), - meta: { - banner: - '/*!\n' + - ' * reveal.js <%= pkg.version %> (<%= grunt.template.today("yyyy-mm-dd, HH:MM") %>)\n' + - ' * http://lab.hakim.se/reveal-js\n' + - ' * MIT licensed\n' + - ' *\n' + - ' * Copyright (C) 2014 Hakim El Hattab, http://hakim.se\n' + - ' */' - }, - - qunit: { - files: [ 'test/*.html' ] - }, - - uglify: { - options: { - banner: '<%= meta.banner %>\n' - }, - build: { - src: 'js/reveal.js', - dest: 'js/reveal.min.js' - } - }, - - cssmin: { - compress: { - files: { - 'css/reveal.min.css': [ 'css/reveal.css' ] - } - } - }, - - sass: { - main: { - files: { - 'css/theme/darkgray.css': 'css/theme/source/darkgray.scss', - 'css/theme/beigesmall.css': 'css/theme/source/beigesmall.scss', - 'css/theme/cbc.css': 'css/theme/source/cbc.scss', - 'css/theme/default.css': 'css/theme/source/default.scss', - 'css/theme/beige.css': 'css/theme/source/beige.scss', - 'css/theme/night.css': 'css/theme/source/night.scss', - 'css/theme/serif.css': 'css/theme/source/serif.scss', - 'css/theme/simple.css': 'css/theme/source/simple.scss', - 'css/theme/sky.css': 'css/theme/source/sky.scss', - 'css/theme/moon.css': 'css/theme/source/moon.scss', - 'css/theme/solarized.css': 'css/theme/source/solarized.scss', - 'css/theme/blood.css': 'css/theme/source/blood.scss' - } - } - }, - - jshint: { - options: { - curly: false, - eqeqeq: true, - immed: true, - latedef: true, - newcap: true, - noarg: true, - sub: true, - undef: true, - eqnull: true, - browser: true, - expr: true, - globals: { - head: false, - module: false, - console: false, - unescape: false - } - }, - files: [ 'Gruntfile.js', 'js/reveal.js' ] - }, - - connect: { - server: { - options: { - port: port, - base: '.' - } - } - }, - - zip: { - 'reveal-js-presentation.zip': [ - 'index.html', - 'css/**', - 'js/**', - 'lib/**', - 'images/**', - 'plugin/**' - ] - }, - - watch: { - main: { - files: [ 'Gruntfile.js', 'js/reveal.js', 'css/reveal.css' ], - tasks: 'default' - }, - theme: { - files: [ 'css/theme/source/*.scss', 'css/theme/template/*.scss' ], - tasks: 'themes' - } - } - - }); - - // Dependencies - grunt.loadNpmTasks( 'grunt-contrib-qunit' ); - grunt.loadNpmTasks( 'grunt-contrib-jshint' ); - grunt.loadNpmTasks( 'grunt-contrib-cssmin' ); - grunt.loadNpmTasks( 'grunt-contrib-uglify' ); - grunt.loadNpmTasks( 'grunt-contrib-watch' ); - grunt.loadNpmTasks( 'grunt-contrib-sass' ); - grunt.loadNpmTasks( 'grunt-contrib-connect' ); - grunt.loadNpmTasks( 'grunt-zip' ); - - // Default task - grunt.registerTask( 'default', [ 'jshint', 'cssmin', 'uglify', 'qunit' ] ); - - // Theme task - grunt.registerTask( 'themes', [ 'sass' ] ); - - // Package presentation to archive - grunt.registerTask( 'package', [ 'default', 'zip' ] ); - - // Serve presentation locally - grunt.registerTask( 'serve', [ 'connect', 'watch' ] ); - - // Run tests - grunt.registerTask( 'test', [ 'jshint', 'qunit' ] ); - -}; diff --git a/doc/src/week37/reveal.js/LICENSE b/doc/src/week37/reveal.js/LICENSE deleted file mode 100644 index 09623076f..000000000 --- a/doc/src/week37/reveal.js/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2015 Hakim El Hattab, http://hakim.se - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/doc/src/week37/reveal.js/README.md b/doc/src/week37/reveal.js/README.md deleted file mode 100644 index 573b19597..000000000 --- a/doc/src/week37/reveal.js/README.md +++ /dev/null @@ -1,1052 +0,0 @@ -# reveal.js [![Build Status](https://travis-ci.org/hakimel/reveal.js.svg?branch=master)](https://travis-ci.org/hakimel/reveal.js) - -A framework for easily creating beautiful presentations using HTML. [Check out the live demo](http://lab.hakim.se/reveal-js/). - -reveal.js comes with a broad range of features including [nested slides](https://github.com/hakimel/reveal.js#markup), [Markdown contents](https://github.com/hakimel/reveal.js#markdown), [PDF export](https://github.com/hakimel/reveal.js#pdf-export), [speaker notes](https://github.com/hakimel/reveal.js#speaker-notes) and a [JavaScript API](https://github.com/hakimel/reveal.js#api). It's best viewed in a modern browser but [fallbacks](https://github.com/hakimel/reveal.js/wiki/Browser-Support) are available to make sure your presentation can still be viewed elsewhere. - - -#### More reading: -- [Installation](#installation): Step-by-step instructions for getting reveal.js running on your computer. -- [Changelog](https://github.com/hakimel/reveal.js/releases): Up-to-date version history. -- [Examples](https://github.com/hakimel/reveal.js/wiki/Example-Presentations): Presentations created with reveal.js, add your own! -- [Browser Support](https://github.com/hakimel/reveal.js/wiki/Browser-Support): Explanation of browser support and fallbacks. -- [Plugins](https://github.com/hakimel/reveal.js/wiki/Plugins,-Tools-and-Hardware): A list of plugins that can be used to extend reveal.js. - -## Online Editor - -Presentations are written using HTML or Markdown but there's also an online editor for those of you who prefer a graphical interface. Give it a try at [http://slides.com](http://slides.com). - - -## Instructions - -### Markup - -Markup hierarchy needs to be ``
    `` where the ``
    `` represents one slide and can be repeated indefinitely. If you place multiple ``
    ``'s inside of another ``
    `` they will be shown as vertical slides. The first of the vertical slides is the "root" of the others (at the top), and it will be included in the horizontal sequence. For example: - -```html -
    -
    -
    Single Horizontal Slide
    -
    -
    Vertical Slide 1
    -
    Vertical Slide 2
    -
    -
    -
    -``` - -### Markdown - -It's possible to write your slides using Markdown. To enable Markdown, add the ```data-markdown``` attribute to your ```
    ``` elements and wrap the contents in a ``` -
    -``` - -#### External Markdown - -You can write your content as a separate file and have reveal.js load it at runtime. Note the separator arguments which determine how slides are delimited in the external file. The ```data-charset``` attribute is optional and specifies which charset to use when loading the external file. - -When used locally, this feature requires that reveal.js [runs from a local web server](#full-setup). - -```html -
    -
    -``` - -#### Element Attributes - -Special syntax (in html comment) is available for adding attributes to Markdown elements. This is useful for fragments, amongst other things. - -```html -
    - -
    -``` - -#### Slide Attributes - -Special syntax (in html comment) is available for adding attributes to the slide `
    ` elements generated by your Markdown. - -```html -
    - -
    -``` - - -### Configuration - -At the end of your page you need to initialize reveal by running the following code. Note that all config values are optional and will default as specified below. - -```javascript -Reveal.initialize({ - - // Display controls in the bottom right corner - controls: true, - - // Display a presentation progress bar - progress: true, - - // Display the page number of the current slide - slideNumber: false, - - // Push each slide change to the browser history - history: false, - - // Enable keyboard shortcuts for navigation - keyboard: true, - - // Enable the slide overview mode - overview: true, - - // Vertical centering of slides - center: true, - - // Enables touch navigation on devices with touch input - touch: true, - - // Loop the presentation - loop: false, - - // Change the presentation direction to be RTL - rtl: false, - - // Turns fragments on and off globally - fragments: true, - - // Flags if the presentation is running in an embedded mode, - // i.e. contained within a limited portion of the screen - embedded: false, - - // Flags if we should show a help overlay when the questionmark - // key is pressed - help: true, - - // Number of milliseconds between automatically proceeding to the - // next slide, disabled when set to 0, this value can be overwritten - // by using a data-autoslide attribute on your slides - autoSlide: 0, - - // Stop auto-sliding after user input - autoSlideStoppable: true, - - // Enable slide navigation via mouse wheel - mouseWheel: false, - - // Hides the address bar on mobile devices - hideAddressBar: true, - - // Opens links in an iframe preview overlay - previewLinks: false, - - // Transition style - transition: 'default', // none/fade/slide/convex/concave/zoom - - // Transition speed - transitionSpeed: 'default', // default/fast/slow - - // Transition style for full page slide backgrounds - backgroundTransition: 'default', // none/fade/slide/convex/concave/zoom - - // Number of slides away from the current that are visible - viewDistance: 3, - - // Parallax background image - parallaxBackgroundImage: '', // e.g. "'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg'" - - // Parallax background size - parallaxBackgroundSize: '', // CSS syntax, e.g. "2100px 900px" - - // Amount to move parallax background (horizontal and vertical) on slide change - // Number, e.g. 100 - parallaxBackgroundHorizontal: '', - parallaxBackgroundVertical: '' - -}); -``` - - -The configuration can be updated after initialization using the ```configure``` method: - -```javascript -// Turn autoSlide off -Reveal.configure({ autoSlide: 0 }); - -// Start auto-sliding every 5s -Reveal.configure({ autoSlide: 5000 }); -``` - - -### Dependencies - -Reveal.js doesn't _rely_ on any third party scripts to work but a few optional libraries are included by default. These libraries are loaded as dependencies in the order they appear, for example: - -```javascript -Reveal.initialize({ - dependencies: [ - // Cross-browser shim that fully implements classList - https://github.com/eligrey/classList.js/ - { src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } }, - - // Interpret Markdown in
    elements - { src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, - { src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, - - // Syntax highlight for elements - { src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }, - - // Zoom in and out with Alt+click - { src: 'plugin/zoom-js/zoom.js', async: true }, - - // Speaker notes - { src: 'plugin/notes/notes.js', async: true }, - - // Remote control your reveal.js presentation using a touch device - { src: 'plugin/remotes/remotes.js', async: true }, - - // MathJax - { src: 'plugin/math/math.js', async: true } - ] -}); -``` - -You can add your own extensions using the same syntax. The following properties are available for each dependency object: -- **src**: Path to the script to load -- **async**: [optional] Flags if the script should load after reveal.js has started, defaults to false -- **callback**: [optional] Function to execute when the script has loaded -- **condition**: [optional] Function which must return true for the script to be loaded - - -### Ready Event - -A 'ready' event is fired when reveal.js has loaded all non-async dependencies and is ready to start navigating. To check if reveal.js is already 'ready' you can call `Reveal.isReady()`. - -```javascript -Reveal.addEventListener( 'ready', function( event ) { - // event.currentSlide, event.indexh, event.indexv -} ); -``` - - -### Presentation Size - -All presentations have a normal size, that is the resolution at which they are authored. The framework will automatically scale presentations uniformly based on this size to ensure that everything fits on any given display or viewport. - -See below for a list of configuration options related to sizing, including default values: - -```javascript -Reveal.initialize({ - - ... - - // The "normal" size of the presentation, aspect ratio will be preserved - // when the presentation is scaled to fit different resolutions. Can be - // specified using percentage units. - width: 960, - height: 700, - - // Factor of the display size that should remain empty around the content - margin: 0.1, - - // Bounds for smallest/largest possible scale to apply to content - minScale: 0.2, - maxScale: 1.5 - -}); -``` - - -### Auto-sliding - -Presentations can be configured to progress through slides automatically, without any user input. To enable this you will need to tell the framework how many milliseconds it should wait between slides: - -```javascript -// Slide every five seconds -Reveal.configure({ - autoSlide: 5000 -}); -``` -When this is turned on a control element will appear that enables users to pause and resume auto-sliding. Alternatively, sliding can be paused or resumed by pressing »a« on the keyboard. Sliding is paused automatically as soon as the user starts navigating. You can disable these controls by specifying ```autoSlideStoppable: false``` in your reveal.js config. - -You can also override the slide duration for individual slides and fragments by using the ```data-autoslide``` attribute: - -```html -
    -

    After 2 seconds the first fragment will be shown.

    -

    After 10 seconds the next fragment will be shown.

    -

    Now, the fragment is displayed for 2 seconds before the next slide is shown.

    -
    -``` - -Whenever the auto-slide mode is resumed or paused the ```autoslideresumed``` and ```autoslidepaused``` events are fired. - - -### Keyboard Bindings - -If you're unhappy with any of the default keyboard bindings you can override them using the ```keyboard``` config option: - -```javascript -Reveal.configure({ - keyboard: { - 13: 'next', // go to the next slide when the ENTER key is pressed - 27: function() {}, // do something custom when ESC is pressed - 32: null // don't do anything when SPACE is pressed (i.e. disable a reveal.js default binding) - } -}); -``` - -### Lazy Loading - -When working on presentation with a lot of media or iframe content it's important to load lazily. Lazy loading means that reveal.js will only load content for the few slides nearest to the current slide. The number of slides that are preloaded is determined by the `viewDistance` configuration option. - -To enable lazy loading all you need to do is change your "src" attributes to "data-src" as shown below. This is supported for image, video, audio and iframe elements. Lazy loaded iframes will also unload when the containing slide is no longer visible. - -```html -
    - - - -
    -``` - - -### API - -The ``Reveal`` object exposes a JavaScript API for controlling navigation and reading state: - -```javascript -// Navigation -Reveal.slide( indexh, indexv, indexf ); -Reveal.left(); -Reveal.right(); -Reveal.up(); -Reveal.down(); -Reveal.prev(); -Reveal.next(); -Reveal.prevFragment(); -Reveal.nextFragment(); - -// Toggle presentation states, optionally pass true/false to force on/off -Reveal.toggleOverview(); -Reveal.togglePause(); -Reveal.toggleAutoSlide(); - -// Change a config value at runtime -Reveal.configure({ controls: true }); - -// Returns the present configuration options -Reveal.getConfig(); - -// Fetch the current scale of the presentation -Reveal.getScale(); - -// Retrieves the previous and current slide elements -Reveal.getPreviousSlide(); -Reveal.getCurrentSlide(); - -Reveal.getIndices(); // { h: 0, v: 0 } } -Reveal.getProgress(); // 0-1 -Reveal.getTotalSlides(); - -// State checks -Reveal.isFirstSlide(); -Reveal.isLastSlide(); -Reveal.isOverview(); -Reveal.isPaused(); -Reveal.isAutoSliding(); -``` - -### Slide Changed Event - -A 'slidechanged' event is fired each time the slide is changed (regardless of state). The event object holds the index values of the current slide as well as a reference to the previous and current slide HTML nodes. - -Some libraries, like MathJax (see [#226](https://github.com/hakimel/reveal.js/issues/226#issuecomment-10261609)), get confused by the transforms and display states of slides. Often times, this can be fixed by calling their update or render function from this callback. - -```javascript -Reveal.addEventListener( 'slidechanged', function( event ) { - // event.previousSlide, event.currentSlide, event.indexh, event.indexv -} ); -``` - -### Presentation State - -The presentation's current state can be fetched by using the `getState` method. A state object contains all of the information required to put the presentation back as it was when `getState` was first called. Sort of like a snapshot. It's a simple object that can easily be stringified and persisted or sent over the wire. - -```javascript -Reveal.slide( 1 ); -// we're on slide 1 - -var state = Reveal.getState(); - -Reveal.slide( 3 ); -// we're on slide 3 - -Reveal.setState( state ); -// we're back on slide 1 -``` - -### Slide States - -If you set ``data-state="somestate"`` on a slide ``
    ``, "somestate" will be applied as a class on the document element when that slide is opened. This allows you to apply broad style changes to the page based on the active slide. - -Furthermore you can also listen to these changes in state via JavaScript: - -```javascript -Reveal.addEventListener( 'somestate', function() { - // TODO: Sprinkle magic -}, false ); -``` - -### Slide Backgrounds - -Slides are contained within a limited portion of the screen by default to allow them to fit any display and scale uniformly. You can apply full page backgrounds outside of the slide area by adding a ```data-background``` attribute to your ```
    ``` elements. Four different types of backgrounds are supported: color, image, video and iframe. Below are a few examples. - -```html -
    -

    All CSS color formats are supported, like rgba() or hsl().

    -
    -
    -

    This slide will have a full-size background image.

    -
    -
    -

    This background image will be sized to 100px and repeated.

    -
    -
    -

    Video. Multiple sources can be defined using a comma separated list. Video will loop when the data-background-video-loop attribute is provided.

    -
    -
    -

    Embeds a web page as a background. Note that the page won't be interactive.

    -
    -``` - -Backgrounds transition using a fade animation by default. This can be changed to a linear sliding transition by passing ```backgroundTransition: 'slide'``` to the ```Reveal.initialize()``` call. Alternatively you can set ```data-background-transition``` on any section with a background to override that specific transition. - - -### Parallax Background - -If you want to use a parallax scrolling background, set the first two config properties below when initializing reveal.js (the other two are optional). - -```javascript -Reveal.initialize({ - - // Parallax background image - parallaxBackgroundImage: '', // e.g. "https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg" - - // Parallax background size - parallaxBackgroundSize: '', // CSS syntax, e.g. "2100px 900px" - currently only pixels are supported (don't use % or auto) - - // Amount of pixels to move the parallax background per slide step, - // a value of 0 disables movement along the given axis - // These are optional, if they aren't specified they'll be calculated automatically - parallaxBackgroundHorizontal: 200, - parallaxBackgroundVertical: 50 - -}); -``` - -Make sure that the background size is much bigger than screen size to allow for some scrolling. [View example](http://lab.hakim.se/reveal-js/?parallaxBackgroundImage=https%3A%2F%2Fs3.amazonaws.com%2Fhakim-static%2Freveal-js%2Freveal-parallax-1.jpg¶llaxBackgroundSize=2100px%20900px). - - - -### Slide Transitions -The global presentation transition is set using the ```transition``` config value. You can override the global transition for a specific slide by using the ```data-transition``` attribute: - -```html -
    -

    This slide will override the presentation transition and zoom!

    -
    - -
    -

    Choose from three transition speeds: default, fast or slow!

    -
    -``` - -You can also use different in and out transitions for the same slide: - -```html -
    - The train goes on … -
    -
    - and on … -
    -
    - and stops. -
    -
    - (Passengers entering and leaving) -
    -
    - And it starts again. -
    -``` - - -Note that this does not work with the page and cube transitions. - - -### Internal links - -It's easy to link between slides. The first example below targets the index of another slide whereas the second targets a slide with an ID attribute (```
    ```): - -```html -Link -Link -``` - -You can also add relative navigation links, similar to the built in reveal.js controls, by appending one of the following classes on any element. Note that each element is automatically given an ```enabled``` class when it's a valid navigation route based on the current slide. - -```html - - - - - - -``` - - -### Fragments -Fragments are used to highlight individual elements on a slide. Every element with the class ```fragment``` will be stepped through before moving on to the next slide. Here's an example: http://lab.hakim.se/reveal-js/#/fragments - -The default fragment style is to start out invisible and fade in. This style can be changed by appending a different class to the fragment: - -```html -
    -

    grow

    -

    shrink

    -

    fade-out

    -

    visible only once

    -

    blue only once

    -

    highlight-red

    -

    highlight-green

    -

    highlight-blue

    -
    -``` - -Multiple fragments can be applied to the same element sequentially by wrapping it, this will fade in the text on the first step and fade it back out on the second. - -```html -
    - - I'll fade in, then out - -
    -``` - -The display order of fragments can be controlled using the ```data-fragment-index``` attribute. - -```html -
    -

    Appears last

    -

    Appears first

    -

    Appears second

    -
    -``` - -### Fragment events - -When a slide fragment is either shown or hidden reveal.js will dispatch an event. - -Some libraries, like MathJax (see #505), get confused by the initially hidden fragment elements. Often times this can be fixed by calling their update or render function from this callback. - -```javascript -Reveal.addEventListener( 'fragmentshown', function( event ) { - // event.fragment = the fragment DOM element -} ); -Reveal.addEventListener( 'fragmenthidden', function( event ) { - // event.fragment = the fragment DOM element -} ); -``` - -### Code syntax highlighting - -By default, Reveal is configured with [highlight.js](http://softwaremaniacs.org/soft/highlight/en/) for code syntax highlighting. Below is an example with clojure code that will be syntax highlighted. When the `data-trim` attribute is present surrounding whitespace is automatically removed. - -```html -
    -
    
    -(def lazy-fib
    -  (concat
    -   [0 1]
    -   ((fn rfib [a b]
    -        (lazy-cons (+ a b) (rfib b (+ a b)))) 0 1)))
    -	
    -
    -``` - -### Slide number -If you would like to display the page number of the current slide you can do so using the ```slideNumber``` configuration value. - -```javascript -// Shows the slide number using default formatting -Reveal.configure({ slideNumber: true }); - -// Slide number formatting can be configured using these variables: -// h: current slide's horizontal index -// v: current slide's vertical index -// c: current slide index (flattened) -// t: total number of slides (flattened) -Reveal.configure({ slideNumber: 'c / t' }); - -``` - - -### Overview mode - -Press "Esc" or "o" keys to toggle the overview mode on and off. While you're in this mode, you can still navigate between slides, -as if you were at 1,000 feet above your presentation. The overview mode comes with a few API hooks: - -```javascript -Reveal.addEventListener( 'overviewshown', function( event ) { /* ... */ } ); -Reveal.addEventListener( 'overviewhidden', function( event ) { /* ... */ } ); - -// Toggle the overview mode programmatically -Reveal.toggleOverview(); -``` - -### Fullscreen mode -Just press »F« on your keyboard to show your presentation in fullscreen mode. Press the »ESC« key to exit fullscreen mode. - - -### Embedded media -Embedded HTML5 `
    - -
    - -

     

     

     

    - - - - - - -
    -

    Week 37: Summary of Ridge and Lasso Regression and Resampling Methods

    - -

    - - -

    -Morten Hjorth-Jensen [1, 2] -
    - -

    - - -

    [1] Department of Physics, University of Oslo
    -
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University
    -
    -

    -

    Sep 16, 2021

    -
    -

    - - -

    Read »

    - - -
    - -

    - -

    - - -
    - - - - - - - -
    - © 1999-2021, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license -
    - - - - - - diff --git a/doc/src/week37/week37-reveal.html b/doc/src/week37/week37-reveal.html deleted file mode 100644 index 2f6b49944..000000000 --- a/doc/src/week37/week37-reveal.html +++ /dev/null @@ -1,2076 +0,0 @@ - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - - - - - - - - - - - - - - -
    - - - - -

    Week 37: Summary of Ridge and Lasso Regression and Resampling Methods

    - -

    - - -

    -Morten Hjorth-Jensen [1, 2] -
    - -

     
    - - -

    [1] Department of Physics, University of Oslo
    -
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University
    -
    -

     
    -

    Sep 16, 2021

    -
    -

    - -

    - © 1999-2021, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license -
    -
    - - -
    -

    Plans for week 37

    - -
      -

    • Thursday September 16: Summary of Ridge and Lasso with examples and start resampling techniques
    • -

    • Friday September 17: Resampling methods, Cross-validation, Bootstrapping and jackknife
    • -
    -

    - -Recommended Reading: - -

      -

    1. Lectures on Resampling methods (these lectures)
    2. -

    3. Bishop 1.3 (cross-validation) and 3.2 (bias-variance tradeoff)
    4. -

    5. Hastie et al Chapter 7, here we recommend 7.1-7.5 and 7.10 (cross-validation) and 7.11 (bootstrap). This chapter is better than Bishop's on these topics. Goodfellow et al discuss this in a superficial way in sections 5.2-5.5.
    6. -
    -
    - - -
    -

    Thursday September 16, Summary of Ridge and Lasso Regression and start Resampling methods

    -
    - - -
    -

    Deriving OLS from a probability distribution

    - -

    -Our basic assumption when we derived the OLS equations was to assume -that our output is determined by a given continuous function -\( f(\boldsymbol{x}) \) and a random noise \( \boldsymbol{\epsilon} \) given by the normal -distribution with zero mean value and an undetermined variance -\( \sigma^2 \). - -

    -We found above that the outputs \( \boldsymbol{y} \) have a mean value given by -\( \boldsymbol{X}\hat{\boldsymbol{\beta}} \) and variance \( \sigma^2 \). Since the entries to -the design matrix are not stochastic variables, we can assume that the -probability distribution of our targets is also a normal distribution -but now with mean value \( \boldsymbol{X}\hat{\boldsymbol{\beta}} \). This means that a -single output \( y_i \) is given by the Gaussian distribution - -

     
    -$$ -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]}. -$$ -

     
    -

    - - -
    -

    Independent and Identically Distrubuted (iid)

    - -

    -We assume now that the various \( y_i \) values are stochastically distributed according to the above Gaussian distribution. -We define this distribution as -

     
    -$$ -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]}, -$$ -

     
    - -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} \). - -

    -Since these events are assumed to be independent and identicall distributed we can build the probability distribution function (PDF) for all possible event \( \boldsymbol{y} \) as the product of the single events, that is we have - -

     
    -$$ -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}). -$$ -

     
    - -

    -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 -in case we have a simple one-dimensional input and output case -

     
    -$$ -\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\dots, (x_{n-1},y_{n-1})]. -$$ -

     
    - -In the more general case the various inputs should be replaced by the possible features represented by the input data set \( \boldsymbol{X} \). -We can now rewrite the above probability as -

     
    -$$ -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]}. -$$ -

     
    - -

    -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} \). -

    - - -
    -

    Maximum Likelihood Estimation (MLE)

    - -

    -In statistics, maximum likelihood estimation (MLE) is a method of -estimating the parameters of an assumed probability distribution, -given some observed data. This is achieved by maximizing a likelihood -function so that, under the assumed statistical model, the observed -data is the most probable. - -

    -We will assume here that our events are given by the above Gaussian -distribution and we will determine the optimal parameters \( \beta \) by -maximizing the above PDF. However, computing the derivatives of a -product function is cumbersome and can easily lead to overflow and/or -underflowproblems, with potentials for loss of numerical precision. - -

    -In practice, it is more convenient to maximize the logarithm of the -PDF because it is a monotonically increasing function of the argument. -Alternatively, and this will be our option, we will minimize the -negative of the logarithm since this is a monotonically decreasing -function. - -

    -Note also that maximization/minimization of the logarithm of the PDF -is equivalent to the maximization/minimization of the function itself. -

    - - -
    -

    A new Cost Function

    - -

    -We could now define a new cost function to minimize, namely the negative logarithm of the above PDF - -

     
    -$$ -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})}, -$$ -

     
    - -which becomes -

     
    -$$ -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}. -$$ -

     
    - -

    -Taking the derivative of the new cost function with respect to the parameters \( \beta \) we recognize our familiar OLS equation, namely - -

     
    -$$ -\boldsymbol{X}^T\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\right) =0, -$$ -

     
    - -which leads to the well-known OLS equation for the optimal paramters \( \beta \) -

     
    -$$ -\hat{\boldsymbol{\beta}}^{\mathrm{OLS}}=\left(\boldsymbol{X}^T\boldsymbol{X}\right)^{-1}\boldsymbol{X}^T\boldsymbol{y}! -$$ -

     
    -

    - - -
    -

    Bayes' Theorem

    - -

    -If we combine the conditional probability with the marginal probability and the standard product rule, we have -

     
    -$$ -p(X\vert Y)= \frac{p(X,Y)}{p(Y)}, -$$ -

     
    - -which we can rewrite as - -

     
    -$$ -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)}, -$$ -

     
    - -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 \). -

    - - -
    -

    Interpretations of Bayes' Theorem

    - -

    -The quantity \( p(Y\vert X) \) on the right-hand side of the theorem is -evaluated for the observed data \( Y \) and can be viewed as a function of -the parameter space represented by \( X \). This function is not -necesseraly normalized and is normally called the likelihood function. - -

    -The function \( p(X) \) on the right hand side is called the prior while the function on the left hand side is the called the posterior probability. The denominator on the right hand side serves as a normalization factor for the posterior distribution. -

    - - -
    -

    Test Function for what happens with OLS, Ridge and Lasso

    - -

    -We will play around with a study of the values for the optimal -parameters \( \boldsymbol{\beta} \) using OLS, Ridge and Lasso regression. For -OLS, you will notice as function of the noise and polynomial degree, -that the parameters \( \beta \) will fluctuate from order to order in the -polynomial fit and that for larger and larger polynomial degrees of freedom, the parameters will tend to increase in value for OLS. - -

    -For Ridge and Lasso regression, the higher order parameters will typically be reduced, providing thereby less fluctuations from one order to another one. - -

    - - -

    import numpy as np
    -import matplotlib.pyplot as plt
    -from sklearn.model_selection import train_test_split
    -from sklearn import linear_model
    -
    -def R2(y_data, y_model):
    -    return 1 - np.sum((y_data - y_model) ** 2) / np.sum((y_data - np.mean(y_data)) ** 2)
    -def MSE(y_data,y_model):
    -    n = np.size(y_model)
    -    return np.sum((y_data-y_model)**2)/n
    -
    -# Make data set.
    -n = 10000
    -x = np.random.rand(n)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.randn(n)
    -
    -Maxpolydegree = 5
    -X = np.zeros((len(x),Maxpolydegree))
    -X[:,0] = 1.0
    -
    -for polydegree in range(1, Maxpolydegree):
    -    for degree in range(polydegree):
    -        X[:,degree] = x**(degree)
    -
    -
    -# We split the data in test and training data
    -X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
    -
    -# matrix inversion to find beta
    -OLSbeta = np.linalg.pinv(X_train.T @ X_train) @ X_train.T @ y_train
    -print(OLSbeta)
    -ypredictOLS = X_test @ OLSbeta
    -print("Test MSE OLS")
    -print(MSE(y_test,ypredictOLS))
    -# Repeat now for Lasso and Ridge regression and various values of the regularization parameter using Scikit-Learn
    -# Decide which values of lambda to use
    -nlambdas = 4
    -MSERidgePredict = np.zeros(nlambdas)
    -MSELassoPredict = np.zeros(nlambdas)
    -lambdas = np.logspace(-3, 1, nlambdas)
    -for i in range(nlambdas):
    -    lmb = lambdas[i]
    -    # Make the fit using Ridge and Lasso
    -    RegRidge = linear_model.Ridge(lmb,fit_intercept=False)
    -    RegRidge.fit(X_train,y_train)
    -    RegLasso = linear_model.Lasso(lmb,fit_intercept=False)
    -    RegLasso.fit(X_train,y_train)
    -    # and then make the prediction
    -    ypredictRidge = RegRidge.predict(X_test)
    -    ypredictLasso = RegLasso.predict(X_test)
    -    # Compute the MSE and print it
    -    MSERidgePredict[i] = MSE(y_test,ypredictRidge)
    -    MSELassoPredict[i] = MSE(y_test,ypredictLasso)
    -    print(lmb,RegRidge.coef_)
    -    print(lmb,RegLasso.coef_)
    -# Now plot the results
    -plt.figure()
    -plt.plot(np.log10(lambdas), MSERidgePredict, 'b', label = 'MSE Ridge Test')
    -plt.plot(np.log10(lambdas), MSELassoPredict, 'r', label = 'MSE Lasso Test')
    -plt.xlabel('log10(lambda)')
    -plt.ylabel('MSE')
    -plt.legend()
    -plt.show()
    -
    -

    -How can we understand this? -

    - - -
    -

    Rerunning the above code

    - -

    -Let us write out the values of the coefficients \( \beta_i \) as functions -of the polynomial degree and noise. We will focus only on the Ridge -results and some few selected values of the hyperparameter \( \lambda \). - -

    -If we don't include any noise and run this code for different values -of the polynomial degree, we notice that the results for \( \beta_i \) do -not show great changes from one order to the next. This is an -indication that for higher polynomial orders, our parameters become -less important. - -

    -If we however add noise, what happens is that the polynomial fit is -trying to adjust the fit to traverse in the best possible way all data -points. This can lead to large fluctuations in the parameters -\( \beta_i \) as functions of polynomial order. It will also be reflected -in a larger value of the variance of each parameter \( \beta_i \). What -Ridge regression (and Lasso as well) are doing then is to try to -quench the fluctuations in the parameters of \( \beta_i \) which have a -large variance (normally for higher orders in the polynomial). - -

    - - -

    import numpy as np
    -import pandas as pd
    -from IPython.display import display
    -import matplotlib.pyplot as plt
    -from sklearn.model_selection import train_test_split
    -from sklearn import linear_model
    -
    -# Make data set.
    -n = 1000
    -x = np.random.rand(n)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.randn(n)
    -
    -Maxpolydegree = 5
    -X = np.zeros((len(x),Maxpolydegree))
    -X[:,0] = 1.0
    -
    -for polydegree in range(1, Maxpolydegree):
    -    for degree in range(polydegree):
    -        X[:,degree] = x**(degree)
    -
    -
    -# We split the data in test and training data
    -X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
    -
    -# Decide which values of lambda to use
    -nlambdas = 5
    -lambdas = np.logspace(-3, 2, nlambdas)
    -for i in range(nlambdas):
    -    lmb = lambdas[i]
    -    # Make the fit using Ridge only
    -    RegRidge = linear_model.Ridge(lmb,fit_intercept=False)
    -    RegRidge.fit(X_train,y_train)
    -    # and then make the prediction
    -    ypredictRidge = RegRidge.predict(X_test)
    -    Coeffs = np.array(RegRidge.coef_)
    -    BetaValues = pd.DataFrame(Coeffs)
    -    BetaValues.columns = ['beta']
    -    display(BetaValues)    
    -
    -
    - - -
    -

    Invoking Bayes' theorem

    - -

    -Using Bayes' theorem we can gain a better intuition about Ridge and Lasso regression. - -

    -For ordinary least squares we postulated that the maximum likelihood for the doamin of events \( \boldsymbol{D} \) (one-dimensional case) -

     
    -$$ -\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\dots, (x_{n-1},y_{n-1})], -$$ -

     
    - -is given by -

     
    -$$ -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]}. -$$ -

     
    - -

    -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 - -

     
    -$$ -p(\boldsymbol{\beta}\vert\boldsymbol{D}). -$$ -

     
    - -

    -Bayes' theorem comes to our rescue here since (omitting the normalization constant) -

     
    -$$ -p(\boldsymbol{\beta}\vert\boldsymbol{D})\propto p(\boldsymbol{D}\vert\boldsymbol{\beta})p(\boldsymbol{\beta}). -$$ -

     
    - -

    -We have a model for \( p(\boldsymbol{D}\vert\boldsymbol{\beta}) \) but need one for the prior \( p(\boldsymbol{\beta} \)! -

    - - -
    -

    Ridge and Bayes

    - -

    -With the posterior probability defined by a likelihood which we have -already modeled and an unknown prior, we are now ready to make -additional models for the prior. - -

    -We can, based on our discussions of the variance of \( \boldsymbol{\beta} \) and the mean value, assume that the prior for the values \( \boldsymbol{\beta} \) is given by a Gaussian with mean value zero and variance \( \tau^2 \), that is - -

     
    -$$ -p(\boldsymbol{\beta})=\prod_{j=0}^{p-1}\exp{\left(-\frac{\beta_j^2}{2\tau^2}\right)}. -$$ -

     
    - -

    -Our posterior probability becomes then (omitting the normalization factor which is just a constant) -

     
    -$$ -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)}. -$$ -

     
    - -

    -We can now optimize this quantity with respect to \( \boldsymbol{\beta} \). As we -did for OLS, this is most conveniently done by taking the negative -logarithm of the posterior probability. Doing so and leaving out the -constants terms that do not depend on \( \beta \), we have - -

     
    -$$ -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, -$$ -

     
    - -and replacing \( 1/2\tau^2 \) with \( \lambda \) we have - -

     
    -$$ -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, -$$ -

     
    - -which is our Ridge cost function! Nice, isn't it? -

    - - -
    -

    Lasso and Bayes

    - -

    -To derive the Lasso cost function, we simply replace the Gaussian prior with an exponential distribution (Laplace in this case) with zero mean value, that is - -

     
    -$$ -p(\boldsymbol{\beta})=\prod_{j=0}^{p-1}\exp{\left(-\frac{\vert\beta_j\vert}{\tau}\right)}. -$$ -

     
    - -

    -Our posterior probability becomes then (omitting the normalization factor which is just a constant) -

     
    -$$ -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)}. -$$ -

     
    - -

    -Taking the negative -logarithm of the posterior probability and leaving out the -constants terms that do not depend on \( \beta \), we have - -

     
    -$$ -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, -$$ -

     
    - -and replacing \( 1/\tau \) with \( \lambda \) we have - -

     
    -$$ -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, -$$ -

     
    - -which is our Lasso cost function! -

    - - -
    -

    Why resampling methods

    - -

    -Before we proceed, we need to rethink what we have been doing. In our -eager to fit the data, we have omitted several important elements in -our regression analysis. In what follows we will - -

      -

    1. look at statistical properties, including a discussion of mean values, variance and the so-called bias-variance tradeoff
    2. -

    3. introduce resampling techniques like cross-validation, bootstrapping and jackknife and more
    4. -
    -

    - -and discuss how to select a given model (one of the difficult parts in machine learning). -

    - - -
    -

    Resampling methods

    -
    - -

    -Resampling methods are an indispensable tool in modern -statistics. They involve repeatedly drawing samples from a training -set and refitting a model of interest on each sample in order to -obtain additional information about the fitted model. For example, in -order to estimate the variability of a linear regression fit, we can -repeatedly draw different samples from the training data, fit a linear -regression to each new sample, and then examine the extent to which -the resulting fits differ. Such an approach may allow us to obtain -information that would not be available from fitting the model only -once using the original training sample. - -

    -Two resampling methods are often used in Machine Learning analyses, - -

      -

    1. The bootstrap method
    2. -

    3. and Cross-Validation
    4. -
    -

    - -In addition there are several other methods such as the Jackknife and the Blocking methods. We will discuss in particular -cross-validation and the bootstrap method. - - -

    -
    - - -
    -

    Resampling approaches can be computationally expensive

    -
    - -

    -Resampling approaches can be computationally expensive, because they -involve fitting the same statistical method multiple times using -different subsets of the training data. However, due to recent -advances in computing power, the computational requirements of -resampling methods generally are not prohibitive. In this chapter, we -discuss two of the most commonly used resampling methods, -cross-validation and the bootstrap. Both methods are important tools -in the practical application of many statistical learning -procedures. For example, cross-validation can be used to estimate the -test error associated with a given statistical learning method in -order to evaluate its performance, or to select the appropriate level -of flexibility. The process of evaluating a model’s performance is -known as model assessment, whereas the process of selecting the proper -level of flexibility for a model is known as model selection. The -bootstrap is widely used. - - -

    -
    - - -
    -

    Why resampling methods ?

    -
    -Statistical analysis -
      -

    • Our simulations can be treated as computer experiments. This is particularly the case for Monte Carlo methods which are widely used in statistical analyses.
    • -

    • The results can be analysed with the same statistical tools as we would use when analysing experimental data.
    • -

    • As in all experiments, we are looking for expectation values and an estimate of how accurate they are, i.e., possible sources for errors.
    • -
    -
    -
    - - -
    -

    Statistical analysis

    -
    - -
      -

    • As in other experiments, many numerical experiments have two classes of errors:
    • - -
        - -

      • Statistical errors
      • - -

      • Systematical errors
      • -
      -

    • Statistical errors can be estimated using standard tools from statistics
    • -

    • Systematical errors are method specific and must be treated differently from case to case.
    • -
    -
    -
    - - -
    -

    Resampling methods

    - -

    -With all these analytical equations for both the OLS and Ridge -regression, we will now outline how to assess a given model. This will -lead to a discussion of the so-called bias-variance tradeoff (see -below) and so-called resampling methods. - -

    -One of the quantities we have discussed as a way to measure errors is -the mean-squared error (MSE), mainly used for fitting of continuous -functions. Another choice is the absolute error. - -

    -In the discussions below we will focus on the MSE and in particular since we will split the data into test and training data, -we discuss the - -

      -

    1. prediction error or simply the test error \( \mathrm{Err_{Test}} \), where we have a fixed training set and the test error is the MSE arising from the data reserved for testing. We discuss also the
    2. -

    3. training error \( \mathrm{Err_{Train}} \), which is the average loss over the training data.
    4. -
    -

    - -As our model becomes more and more complex, more of the training data tends to used. The training may thence adapt to more complicated structures in the data. This may lead to a decrease in the bias (see below for code example) and a slight increase of the variance for the test error. -For a certain level of complexity the test error will reach minimum, before starting to increase again. The -training error reaches a saturation. -

    - - -
    -

    Resampling methods: Jackknife and Bootstrap

    - -

    -Two famous -resampling methods are the independent bootstrap and the jackknife. - -

    -The jackknife is a special case of the independent bootstrap. Still, the jackknife was made -popular prior to the independent bootstrap. And as the popularity of -the independent bootstrap soared, new variants, such as the dependent bootstrap have also been developed.. - -

    -The Jackknife and independent bootstrap work for -independent, identically distributed random variables. -If these conditions are not -satisfied, the methods will fail. Yet, it should be said that if the data are -independent, identically distributed, and we only want to estimate the -variance of \( \overline{X} \) (which often is the case), then there is no -need for bootstrapping. -

    - - -
    -

    Resampling methods: Jackknife

    - -

    -The Jackknife works by making many replicas of the estimator \( \widehat{\beta} \). -The jackknife is a resampling method where we systematically leave out one observation from the vector of observed values \( \boldsymbol{x} = (x_1,x_2,\cdots,X_n) \). -Let \( \boldsymbol{x}_i \) denote the vector -

     
    -$$ -\boldsymbol{x}_i = (x_1,x_2,\cdots,x_{i-1},x_{i+1},\cdots,x_n), -$$ -

     
    - -

    -which equals the vector \( \boldsymbol{x} \) with the exception that observation -number \( i \) is left out. Using this notation, define -\( \widehat{\beta}_i \) to be the estimator -\( \widehat{\beta} \) computed using \( \vec{X}_i \). -

    - - -
    -

    Jackknife code example

    -

    - - -

    from numpy import *
    -from numpy.random import randint, randn
    -from time import time
    -
    -def jackknife(data, stat):
    -    n = len(data);t = zeros(n); inds = arange(n); t0 = time()
    -    ## 'jackknifing' by leaving out an observation for each i                                                                                                                      
    -    for i in range(n):
    -        t[i] = stat(delete(data,i) )
    -
    -    # analysis                                                                                                                                                                     
    -    print("Runtime: %g sec" % (time()-t0)); print("Jackknife Statistics :")
    -    print("original           bias      std. error")
    -    print("%8g %14g %15g" % (stat(data),(n-1)*mean(t)/n, (n*var(t))**.5))
    -
    -    return t
    -
    -
    -# Returns mean of data samples                                                                                                                                                     
    -def stat(data):
    -    return mean(data)
    -
    -
    -mu, sigma = 100, 15
    -datapoints = 10000
    -x = mu + sigma*random.randn(datapoints)
    -# jackknife returns the data sample                                                                                                                                                
    -t = jackknife(x, stat)
    -
    -
    - - -
    -

    Resampling methods: Bootstrap

    -
    - -

    -Bootstrapping is a non-parametric approach to statistical inference -that substitutes computation for more traditional distributional -assumptions and asymptotic results. Bootstrapping offers a number of -advantages: - -

      -

    1. The bootstrap is quite general, although there are some cases in which it fails.
    2. - -

    3. Because it does not require distributional assumptions (such as normally distributed errors), the bootstrap can provide more accurate inferences when the data are not well behaved or when the sample size is small.
    4. - -

    5. It is possible to apply the bootstrap to statistics with sampling distributions that are difficult to derive, even asymptotically.
    6. -

    7. It is relatively simple to apply the bootstrap to complex data-collection plans (such as stratified and clustered samples).
    8. -
    -
    - -

    -The textbook by Davison on the Bootstrap Methods and their Applications provides many more insights and proofs. In this course we will take a more practical approach and use the results and theorems provided in the literature. For those interested in reading more about the bootstrap methods, we recommend the above text and the one by Efron and Tibshirani. - -

    -Before we proceed however, we need to remind ourselves about a central theorem in statistics, namely the so-called central limit theorem. -

    - - -
    -

    The Central Limit Theorem

    - -

    -Suppose we have a PDF \( p(x) \) from which we generate a series \( N \) -of averages \( \langle x_i \rangle \). Each mean value \( \langle x_i \rangle \) -is viewed as the average of a specific measurement, e.g., throwing -dice 100 times and then taking the average value, or producing a certain -amount of random numbers. -For notational ease, we set \( \langle x_i \rangle=x_i \) in the discussion -which follows. - -

    -If we compute the mean \( z \) of \( m \) such mean values \( x_i \) - -

     
    -$$ - z=\frac{x_1+x_2+\dots+x_m}{m}, -$$ -

     
    - -the question we pose is which is the PDF of the new variable \( z \). -

    - - -
    -

    Finding the Limit

    - -

    -The probability of obtaining an average value \( z \) is the product of the -probabilities of obtaining arbitrary individual mean values \( x_i \), -but with the constraint that the average is \( z \). We can express this through -the following expression -

     
    -$$ - \tilde{p}(z)=\int dx_1p(x_1)\int dx_2p(x_2)\dots\int dx_mp(x_m) - \delta(z-\frac{x_1+x_2+\dots+x_m}{m}), -$$ -

     
    - -where the \( \delta \)-function enbodies the constraint that the mean is \( z \). -All measurements that lead to each individual \( x_i \) are expected to -be independent, which in turn means that we can express \( \tilde{p} \) as the -product of individual \( p(x_i) \). The independence assumption is important in the derivation of the central limit theorem. -

    - - -
    -

    Rewriting the \( \delta \)-function

    - -

    -If we use the integral expression for the \( \delta \)-function - -

     
    -$$ - \delta(z-\frac{x_1+x_2+\dots+x_m}{m})=\frac{1}{2\pi}\int_{-\infty}^{\infty} - dq\exp{\left(iq(z-\frac{x_1+x_2+\dots+x_m}{m})\right)}, -$$ -

     
    - -and inserting \( e^{i\mu q-i\mu q} \) where \( \mu \) is the mean value -we arrive at -

     
    -$$ - \tilde{p}(z)=\frac{1}{2\pi}\int_{-\infty}^{\infty} - dq\exp{\left(iq(z-\mu)\right)}\left[\int_{-\infty}^{\infty} - dxp(x)\exp{\left(iq(\mu-x)/m\right)}\right]^m, -$$ -

     
    - -with the integral over \( x \) resulting in - -

     
    -$$ - \int_{-\infty}^{\infty}dxp(x)\exp{\left(iq(\mu-x)/m\right)}= - \int_{-\infty}^{\infty}dxp(x) - \left[1+\frac{iq(\mu-x)}{m}-\frac{q^2(\mu-x)^2}{2m^2}+\dots\right]. -$$ -

     
    -

    - - -
    -

    Identifying Terms

    - -

    -The second term on the rhs disappears since this is just the mean and -employing the definition of \( \sigma^2 \) we have -

     
    -$$ - \int_{-\infty}^{\infty}dxp(x)e^{\left(iq(\mu-x)/m\right)}= - 1-\frac{q^2\sigma^2}{2m^2}+\dots, -$$ -

     
    - -resulting in - -

     
    -$$ - \left[\int_{-\infty}^{\infty}dxp(x)\exp{\left(iq(\mu-x)/m\right)}\right]^m\approx - \left[1-\frac{q^2\sigma^2}{2m^2}+\dots \right]^m, -$$ -

     
    - -and in the limit \( m\rightarrow \infty \) we obtain - -

     
    -$$ - \tilde{p}(z)=\frac{1}{\sqrt{2\pi}(\sigma/\sqrt{m})} - \exp{\left(-\frac{(z-\mu)^2}{2(\sigma/\sqrt{m})^2}\right)}, -$$ -

     
    - -which is the normal distribution with variance -\( \sigma^2_m=\sigma^2/m \), where \( \sigma \) is the variance of the PDF \( p(x) \) -and \( \mu \) is also the mean of the PDF \( p(x) \). -

    - - -
    -

    Wrapping it up

    - -

    -Thus, the central limit theorem states that the PDF \( \tilde{p}(z) \) of -the average of \( m \) random values corresponding to a PDF \( p(x) \) -is a normal distribution whose mean is the -mean value of the PDF \( p(x) \) and whose variance is the variance -of the PDF \( p(x) \) divided by \( m \), the number of values used to compute \( z \). - -

    -The theorem is satisfied by a large class of PDFs. Note however that for a -finite \( m \), it is not always possible to find a closed expression for -\( \tilde{p}(x) \). -The central limit theorem leads then to the well-known expression for the -standard deviation, given by - -

     
    -$$ - \sigma_m= -\frac{\sigma}{\sqrt{m}}. -$$ -

     
    - -

    -The latter is true only if the average value is known exactly. This is obtained in the limit -\( m\rightarrow \infty \) only. Because the mean and the variance are measured quantities we obtain -the familiar expression in statistics -

     
    -$$ - \sigma_m\approx -\frac{\sigma}{\sqrt{m-1}}. -$$ -

     
    - -

    -In many cases however the above estimate for the standard deviation, -in particular if correlations are strong, may be too simplistic. -

    - - -
    -

    Confidence Intervals

    -
    - - -
    -

    Resampling methods: Bootstrap background

    - -

    -Since \( \widehat{\beta} = \widehat{\beta}(\boldsymbol{X}) \) is a function of random variables, -\( \widehat{\beta} \) itself must be a random variable. Thus it has -a pdf, call this function \( p(\boldsymbol{t}) \). The aim of the bootstrap is to -estimate \( p(\boldsymbol{t}) \) by the relative frequency of -\( \widehat{\beta} \). You can think of this as using a histogram -in the place of \( p(\boldsymbol{t}) \). If the relative frequency closely -resembles \( p(\vec{t}) \), then using numerics, it is straight forward to -estimate all the interesting parameters of \( p(\boldsymbol{t}) \) using point -estimators. -

    - - -
    -

    Resampling methods: More Bootstrap background

    - -

    -In the case that \( \widehat{\beta} \) has -more than one component, and the components are independent, we use the -same estimator on each component separately. If the probability -density function of \( X_i \), \( p(x) \), had been known, then it would have -been straightforward to do this by: - -

      -

    1. Drawing lots of numbers from \( p(x) \), suppose we call one such set of numbers \( (X_1^*, X_2^*, \cdots, X_n^*) \).
    2. -

    3. Then using these numbers, we could compute a replica of \( \widehat{\beta} \) called \( \widehat{\beta}^* \).
    4. -
    -

    - -By repeated use of the above two points, many -estimates of \( \widehat{\beta} \) can be obtained. The -idea is to use the relative frequency of \( \widehat{\beta}^* \) -(think of a histogram) as an estimate of \( p(\boldsymbol{t}) \). -

    - - -
    -

    Resampling methods: Bootstrap approach

    - -

    -But -unless there is enough information available about the process that -generated \( X_1,X_2,\cdots,X_n \), \( p(x) \) is in general -unknown. Therefore, Efron in 1979 asked the -question: What if we replace \( p(x) \) by the relative frequency -of the observation \( X_i \)? - -

    -If we draw observations in accordance with -the relative frequency of the observations, will we obtain the same -result in some asymptotic sense? The answer is yes. -

    - - -
    -

    Resampling methods: Bootstrap steps

    - -

    -The independent bootstrap works like this: - -

      -

    1. Draw with replacement \( n \) numbers for the observed variables \( \boldsymbol{x} = (x_1,x_2,\cdots,x_n) \).
    2. -

    3. Define a vector \( \boldsymbol{x}^* \) containing the values which were drawn from \( \boldsymbol{x} \).
    4. -

    5. Using the vector \( \boldsymbol{x}^* \) compute \( \widehat{\beta}^* \) by evaluating \( \widehat \beta \) under the observations \( \boldsymbol{x}^* \).
    6. -

    7. Repeat this process \( k \) times.
    8. -
    -

    - -When you are done, you can draw a histogram of the relative frequency -of \( \widehat \beta^* \). This is your estimate of the probability -distribution \( p(t) \). Using this probability distribution you can -estimate any statistics thereof. In principle you never draw the -histogram of the relative frequency of \( \widehat{\beta}^* \). Instead -you use the estimators corresponding to the statistic of interest. For -example, if you are interested in estimating the variance of \( \widehat -\beta \), apply the etsimator \( \widehat \sigma^2 \) to the values -\( \widehat \beta^* \). -

    - - -
    -

    Code example for the Bootstrap method

    - -

    -The following code starts with a Gaussian distribution with mean value -\( \mu =100 \) and variance \( \sigma=15 \). We use this to generate the data -used in the bootstrap analysis. The bootstrap analysis returns a data -set after a given number of bootstrap operations (as many as we have -data points). This data set consists of estimated mean values for each -bootstrap operation. The histogram generated by the bootstrap method -shows that the distribution for these mean values is also a Gaussian, -centered around the mean value \( \mu=100 \) but with standard deviation -\( \sigma/\sqrt{n} \), where \( n \) is the number of bootstrap samples (in -this case the same as the number of original data points). The value -of the standard deviation is what we expect from the central limit -theorem. - -

    - - -

    from numpy import *
    -from numpy.random import randint, randn
    -from time import time
    -import matplotlib.mlab as mlab
    -import matplotlib.pyplot as plt
    -
    -# Returns mean of bootstrap samples                                                                              # Alternatively, we can run it using Scikit-Learn's function resample                                            # See the examples below
    -
    -def statistics(data):
    -    return mean(data)
    -
    -
    -# Bootstrap algorithm
    -def bootstrap(data, statistic, R):
    -    t = zeros(R); n = len(data); inds = arange(n); t0 = time()
    -    # non-parametric bootstrap         
    -    for i in range(R):
    -        t[i] = statistic(data[randint(0,n,n)])
    -
    -    # analysis    
    -    print("Runtime: %g sec" % (time()-t0)); print("Bootstrap Statistics :")
    -    print("original           bias      std. error")
    -    print("%8g %8g %14g %15g" % (statistic(data), std(data),mean(t),std(t)))
    -    return t
    -
    -
    -mu, sigma = 100, 15
    -datapoints = 10000
    -x = mu + sigma*random.randn(datapoints)
    -# bootstrap returns the data sample                                    
    -t = bootstrap(x, statistics, datapoints)
    -
    -

    -We see that our new variance and from that the standard deviation, agrees with the central limit theorem. -

    - - -
    -

    Plotting the Histogram

    -

    - - -

    # the histogram of the bootstrapped  data                                                                                                    
    -n, binsboot, patches = plt.hist(t, 50, normed=1, facecolor='red', alpha=0.75)
    -
    -# add a 'best fit' line  
    -y = mlab.normpdf( binsboot, mean(t), std(t))
    -lt = plt.plot(binsboot, y, 'r--', linewidth=1)
    -plt.xlabel('Smarts')
    -plt.ylabel('Probability')
    -plt.axis([99.5, 100.6, 0, 3.0])
    -plt.grid(True)
    -
    -plt.show()
    -
    -
    - - -
    -

    The bias-variance tradeoff

    - -

    -We will discuss the bias-variance tradeoff in the context of -continuous predictions such as regression. However, many of the -intuitions and ideas discussed here also carry over to classification -tasks. Consider a dataset \( \mathcal{L} \) consisting of the data -\( \mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\} \). - -

    -Let us assume that the true data is generated from a noisy model - -

     
    -$$ -\boldsymbol{y}=f(\boldsymbol{x}) + \boldsymbol{\epsilon} -$$ -

     
    - -

    -where \( \epsilon \) is normally distributed with mean zero and standard deviation \( \sigma^2 \). - -

    -In our derivation of the ordinary least squares method we defined then -an approximation to the function \( f \) in terms of the parameters -\( \boldsymbol{\beta} \) and the design matrix \( \boldsymbol{X} \) which embody our model, -that is \( \boldsymbol{\tilde{y}}=\boldsymbol{X}\boldsymbol{\beta} \). - -

    -Thereafter we found the parameters \( \boldsymbol{\beta} \) by optimizing the means squared error via the so-called cost function -

     
    -$$ -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]. -$$ -

     
    - -

    -We can rewrite this as -

     
    -$$ -\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. -$$ -

     
    - -

    -The three terms represent the square of the bias of the learning -method, which can be thought of as the error caused by the simplifying -assumptions built into the method. The second term represents the -variance of the chosen model and finally the last terms is variance of -the error \( \boldsymbol{\epsilon} \). - -

    -To derive this equation, we need to recall that the variance of \( \boldsymbol{y} \) and \( \boldsymbol{\epsilon} \) are both equal to \( \sigma^2 \). The mean value of \( \boldsymbol{\epsilon} \) is by definition equal to zero. Furthermore, the function \( f \) is not a stochastics variable, idem for \( \boldsymbol{\tilde{y}} \). -We use a more compact notation in terms of the expectation value -

     
    -$$ -\mathbb{E}\left[(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2\right]=\mathbb{E}\left[(\boldsymbol{f}+\boldsymbol{\epsilon}-\boldsymbol{\tilde{y}})^2\right], -$$ -

     
    - -and adding and subtracting \( \mathbb{E}\left[\boldsymbol{\tilde{y}}\right] \) we get -

     
    -$$ -\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], -$$ -

     
    - -which, using the abovementioned expectation values can be rewritten as -

     
    -$$ -\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, -$$ -

     
    - -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} \). -

    - - -
    -

    A way to Read the Bias-Variance Tradeoff

    - -

    -



    -
    - - -
    -

    Example code for Bias-Variance tradeoff

    -

    - - -

    import matplotlib.pyplot as plt
    -import numpy as np
    -from sklearn.linear_model import LinearRegression, Ridge, Lasso
    -from sklearn.preprocessing import PolynomialFeatures
    -from sklearn.model_selection import train_test_split
    -from sklearn.pipeline import make_pipeline
    -from sklearn.utils import resample
    -
    -np.random.seed(2018)
    -
    -n = 500
    -n_boostraps = 100
    -degree = 18  # A quite high value, just to show.
    -noise = 0.1
    -
    -# Make data set.
    -x = np.linspace(-1, 3, n).reshape(-1, 1)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2) + np.random.normal(0, 0.1, x.shape)
    -
    -# Hold out some test data that is never used in training.
    -x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
    -
    -# Combine x transformation and model into one operation.
    -# Not neccesary, but convenient.
    -model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))
    -
    -# The following (m x n_bootstraps) matrix holds the column vectors y_pred
    -# for each bootstrap iteration.
    -y_pred = np.empty((y_test.shape[0], n_boostraps))
    -for i in range(n_boostraps):
    -    x_, y_ = resample(x_train, y_train)
    -
    -    # Evaluate the new model on the same test data each time.
    -    y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel()
    -
    -# Note: Expectations and variances taken w.r.t. different training
    -# data sets, hence the axis=1. Subsequent means are taken across the test data
    -# set in order to obtain a total value, but before this we have error/bias/variance
    -# calculated per data point in the test set.
    -# Note 2: The use of keepdims=True is important in the calculation of bias as this 
    -# maintains the column vector form. Dropping this yields very unexpected results.
    -error = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) )
    -bias = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 )
    -variance = np.mean( np.var(y_pred, axis=1, keepdims=True) )
    -print('Error:', error)
    -print('Bias^2:', bias)
    -print('Var:', variance)
    -print('{} >= {} + {} = {}'.format(error, bias, variance, bias+variance))
    -
    -plt.plot(x[::5, :], y[::5, :], label='f(x)')
    -plt.scatter(x_test, y_test, label='Data points')
    -plt.scatter(x_test, np.mean(y_pred, axis=1), label='Pred')
    -plt.legend()
    -plt.show()
    -
    -
    - - -
    -

    Understanding what happens

    -

    - - -

    import matplotlib.pyplot as plt
    -import numpy as np
    -from sklearn.linear_model import LinearRegression, Ridge, Lasso
    -from sklearn.preprocessing import PolynomialFeatures
    -from sklearn.model_selection import train_test_split
    -from sklearn.pipeline import make_pipeline
    -from sklearn.utils import resample
    -
    -np.random.seed(2018)
    -
    -n = 40
    -n_boostraps = 100
    -maxdegree = 14
    -
    -
    -# Make data set.
    -x = np.linspace(-3, 3, n).reshape(-1, 1)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)
    -error = np.zeros(maxdegree)
    -bias = np.zeros(maxdegree)
    -variance = np.zeros(maxdegree)
    -polydegree = np.zeros(maxdegree)
    -x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
    -
    -for degree in range(maxdegree):
    -    model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))
    -    y_pred = np.empty((y_test.shape[0], n_boostraps))
    -    for i in range(n_boostraps):
    -        x_, y_ = resample(x_train, y_train)
    -        y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel()
    -
    -    polydegree[degree] = degree
    -    error[degree] = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) )
    -    bias[degree] = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 )
    -    variance[degree] = np.mean( np.var(y_pred, axis=1, keepdims=True) )
    -    print('Polynomial degree:', degree)
    -    print('Error:', error[degree])
    -    print('Bias^2:', bias[degree])
    -    print('Var:', variance[degree])
    -    print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree]))
    -
    -plt.plot(polydegree, error, label='Error')
    -plt.plot(polydegree, bias, label='bias')
    -plt.plot(polydegree, variance, label='Variance')
    -plt.legend()
    -plt.show()
    -
    -
    - - -
    -

    Summing up

    - -

    -The bias-variance tradeoff summarizes the fundamental tension in -machine learning, particularly supervised learning, between the -complexity of a model and the amount of training data needed to train -it. Since data is often limited, in practice it is often useful to -use a less-complex model with higher bias, that is a model whose asymptotic -performance is worse than another model because it is easier to -train and less sensitive to sampling noise arising from having a -finite-sized training dataset (smaller variance). - -

    -The above equations tell us that in -order to minimize the expected test error, we need to select a -statistical learning method that simultaneously achieves low variance -and low bias. Note that variance is inherently a nonnegative quantity, -and squared bias is also nonnegative. Hence, we see that the expected -test MSE can never lie below \( Var(\epsilon) \), the irreducible error. - -

    -What do we mean by the variance and bias of a statistical learning -method? The variance refers to the amount by which our model would change if we -estimated it using a different training data set. Since the training -data are used to fit the statistical learning method, different -training data sets will result in a different estimate. But ideally the -estimate for our model should not vary too much between training -sets. However, if a method has high variance then small changes in -the training data can result in large changes in the model. In general, more -flexible statistical methods have higher variance. - -

    -You may also find this recent article of interest. -

    - - -
    -

    Another Example from Scikit-Learn's Repository

    -

    - - -

    """
    -============================
    -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__)
    -
    -import numpy as np
    -import matplotlib.pyplot as plt
    -from sklearn.pipeline import Pipeline
    -from sklearn.preprocessing import PolynomialFeatures
    -from sklearn.linear_model import LinearRegression
    -from sklearn.model_selection import cross_val_score
    -
    -
    -def true_fun(X):
    -    return np.cos(1.5 * np.pi * X)
    -
    -np.random.seed(0)
    -
    -n_samples = 30
    -degrees = [1, 4, 15]
    -
    -X = np.sort(np.random.rand(n_samples))
    -y = true_fun(X) + np.random.randn(n_samples) * 0.1
    -
    -plt.figure(figsize=(14, 5))
    -for i in range(len(degrees)):
    -    ax = plt.subplot(1, len(degrees), i + 1)
    -    plt.setp(ax, xticks=(), yticks=())
    -
    -    polynomial_features = PolynomialFeatures(degree=degrees[i],
    -                                             include_bias=False)
    -    linear_regression = LinearRegression()
    -    pipeline = Pipeline([("polynomial_features", polynomial_features),
    -                         ("linear_regression", linear_regression)])
    -    pipeline.fit(X[:, np.newaxis], y)
    -
    -    # Evaluate the models using crossvalidation
    -    scores = cross_val_score(pipeline, X[:, np.newaxis], y,
    -                             scoring="neg_mean_squared_error", cv=10)
    -
    -    X_test = np.linspace(0, 1, 100)
    -    plt.plot(X_test, pipeline.predict(X_test[:, np.newaxis]), label="Model")
    -    plt.plot(X_test, true_fun(X_test), label="True function")
    -    plt.scatter(X, y, edgecolor='b', s=20, label="Samples")
    -    plt.xlabel("x")
    -    plt.ylabel("y")
    -    plt.xlim((0, 1))
    -    plt.ylim((-2, 2))
    -    plt.legend(loc="best")
    -    plt.title("Degree {}\nMSE = {:.2e}(+/- {:.2e})".format(
    -        degrees[i], -scores.mean(), scores.std()))
    -plt.show()
    -
    -
    - - -
    -

    Various steps in cross-validation

    - -

    -When the repetitive splitting of the data set is done randomly, -samples may accidently end up in a fast majority of the splits in -either training or test set. Such samples may have an unbalanced -influence on either model building or prediction evaluation. To avoid -this \( k \)-fold cross-validation structures the data splitting. The -samples are divided into \( k \) more or less equally sized exhaustive and -mutually exclusive subsets. In turn (at each split) one of these -subsets plays the role of the test set while the union of the -remaining subsets constitutes the training set. Such a splitting -warrants a balanced representation of each sample in both training and -test set over the splits. Still the division into the \( k \) subsets -involves a degree of randomness. This may be fully excluded when -choosing \( k=n \). This particular case is referred to as leave-one-out -cross-validation (LOOCV). -

    - - -
    -

    How to set up the cross-validation for Ridge and/or Lasso

    - -
      -

    • Define a range of interest for the penalty parameter.
    • -

    • Divide the data set into training and test set comprising samples \( \{1, \ldots, n\} \setminus i \) and \( \{ i \} \), respectively.
    • -

    • Fit the linear regression model by means of ridge estimation for each \( \lambda \) in the grid using the training set, and the corresponding estimate of the error variance \( \boldsymbol{\sigma}_{-i}^2(\lambda) \), as
    • -
    -

     
    -$$ -\begin{align*} -\boldsymbol{\beta}_{-i}(\lambda) & = ( \boldsymbol{X}_{-i, \ast}^{T} -\boldsymbol{X}_{-i, \ast} + \lambda \boldsymbol{I}_{pp})^{-1} -\boldsymbol{X}_{-i, \ast}^{T} \boldsymbol{y}_{-i} -\end{align*} -$$ -

     
    - - -

      -

    • Evaluate the prediction performance of these models on the test set by \( \log\{L[y_i, \boldsymbol{X}_{i, \ast}; \boldsymbol{\beta}_{-i}(\lambda), \boldsymbol{\sigma}_{-i}^2(\lambda)]\} \). Or, by the prediction error \( |y_i - \boldsymbol{X}_{i, \ast} \boldsymbol{\beta}_{-i}(\lambda)| \), the relative error, the error squared or the R2 score function.
    • -

    • Repeat the first three steps such that each sample plays the role of the test set once.
    • -

    • Average the prediction performances of the test sets at each grid point of the penalty bias/parameter. It is an estimate of the prediction performance of the model corresponding to this value of the penalty parameter on novel data. It is defined as
    • -
    -

     
    -$$ -\begin{align*} -\frac{1}{n} \sum_{i = 1}^n \log\{L[y_i, \mathbf{X}_{i, \ast}; \boldsymbol{\beta}_{-i}(\lambda), \boldsymbol{\sigma}_{-i}^2(\lambda)]\}. -\end{align*} -$$ -

     
    -

    - - -
    -

    Cross-validation in brief

    - -

    -For the various values of \( k \) - -

      -

    1. shuffle the dataset randomly.
    2. -

    3. Split the dataset into \( k \) groups.
    4. -

    5. For each unique group: - -
        -

      1. Decide which group to use as set for test data
      2. -

      3. Take the remaining groups as a training data set
      4. -

      5. Fit a model on the training set and evaluate it on the test set
      6. -

      7. Retain the evaluation score and discard the model
      8. -
      -

    6. Summarize the model using the sample of model evaluation scores
    7. -
    -
    - - -
    -

    Code Example for Cross-validation and \( k \)-fold Cross-validation

    - -

    -The code here uses Ridge regression with cross-validation (CV) resampling and \( k \)-fold CV in order to fit a specific polynomial. -

    - - -

    import numpy as np
    -import matplotlib.pyplot as plt
    -from sklearn.model_selection import KFold
    -from sklearn.linear_model import Ridge
    -from sklearn.model_selection import cross_val_score
    -from sklearn.preprocessing import PolynomialFeatures
    -
    -# A seed just to ensure that the random numbers are the same for every run.
    -# Useful for eventual debugging.
    -np.random.seed(3155)
    -
    -# Generate the data.
    -nsamples = 100
    -x = np.random.randn(nsamples)
    -y = 3*x**2 + np.random.randn(nsamples)
    -
    -## Cross-validation on Ridge regression using KFold only
    -
    -# Decide degree on polynomial to fit
    -poly = PolynomialFeatures(degree = 6)
    -
    -# Decide which values of lambda to use
    -nlambdas = 500
    -lambdas = np.logspace(-3, 5, nlambdas)
    -
    -# Initialize a KFold instance
    -k = 5
    -kfold = KFold(n_splits = k)
    -
    -# Perform the cross-validation to estimate MSE
    -scores_KFold = np.zeros((nlambdas, k))
    -
    -i = 0
    -for lmb in lambdas:
    -    ridge = Ridge(alpha = lmb)
    -    j = 0
    -    for train_inds, test_inds in kfold.split(x):
    -        xtrain = x[train_inds]
    -        ytrain = y[train_inds]
    -
    -        xtest = x[test_inds]
    -        ytest = y[test_inds]
    -
    -        Xtrain = poly.fit_transform(xtrain[:, np.newaxis])
    -        ridge.fit(Xtrain, ytrain[:, np.newaxis])
    -
    -        Xtest = poly.fit_transform(xtest[:, np.newaxis])
    -        ypred = ridge.predict(Xtest)
    -
    -        scores_KFold[i,j] = np.sum((ypred - ytest[:, np.newaxis])**2)/np.size(ypred)
    -
    -        j += 1
    -    i += 1
    -
    -
    -estimated_mse_KFold = np.mean(scores_KFold, axis = 1)
    -
    -## Cross-validation using cross_val_score from sklearn along with KFold
    -
    -# kfold is an instance initialized above as:
    -# kfold = KFold(n_splits = k)
    -
    -estimated_mse_sklearn = np.zeros(nlambdas)
    -i = 0
    -for lmb in lambdas:
    -    ridge = Ridge(alpha = lmb)
    -
    -    X = poly.fit_transform(x[:, np.newaxis])
    -    estimated_mse_folds = cross_val_score(ridge, X, y[:, np.newaxis], scoring='neg_mean_squared_error', cv=kfold)
    -
    -    # cross_val_score return an array containing the estimated negative mse for every fold.
    -    # we have to the the mean of every array in order to get an estimate of the mse of the model
    -    estimated_mse_sklearn[i] = np.mean(-estimated_mse_folds)
    -
    -    i += 1
    -
    -## Plot and compare the slightly different ways to perform cross-validation
    -
    -plt.figure()
    -
    -plt.plot(np.log10(lambdas), estimated_mse_sklearn, label = 'cross_val_score')
    -plt.plot(np.log10(lambdas), estimated_mse_KFold, 'r--', label = 'KFold')
    -
    -plt.xlabel('log10(lambda)')
    -plt.ylabel('mse')
    -
    -plt.legend()
    -
    -plt.show()
    -
    -
    - - -
    -

    More examples on bootstrap and cross-validation and errors

    - -

    - - -

    # Common imports
    -import os
    -import numpy as np
    -import pandas as pd
    -import matplotlib.pyplot as plt
    -from sklearn.linear_model import LinearRegression, Ridge, Lasso
    -from sklearn.model_selection import train_test_split
    -from sklearn.utils import resample
    -from sklearn.metrics import mean_squared_error
    -# Where to save the figures and data files
    -PROJECT_ROOT_DIR = "Results"
    -FIGURE_ID = "Results/FigureFiles"
    -DATA_ID = "DataFiles/"
    -
    -if not os.path.exists(PROJECT_ROOT_DIR):
    -    os.mkdir(PROJECT_ROOT_DIR)
    -
    -if not os.path.exists(FIGURE_ID):
    -    os.makedirs(FIGURE_ID)
    -
    -if not os.path.exists(DATA_ID):
    -    os.makedirs(DATA_ID)
    -
    -def image_path(fig_id):
    -    return os.path.join(FIGURE_ID, fig_id)
    -
    -def data_path(dat_id):
    -    return os.path.join(DATA_ID, dat_id)
    -
    -def save_fig(fig_id):
    -    plt.savefig(image_path(fig_id) + ".png", format='png')
    -
    -infile = open(data_path("EoS.csv"),'r')
    -
    -# Read the EoS data as  csv file and organize the data into two arrays with density and energies
    -EoS = pd.read_csv(infile, names=('Density', 'Energy'))
    -EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce')
    -EoS = EoS.dropna()
    -Energies = EoS['Energy']
    -Density = EoS['Density']
    -#  The design matrix now as function of various polytrops
    -
    -Maxpolydegree = 30
    -X = np.zeros((len(Density),Maxpolydegree))
    -X[:,0] = 1.0
    -testerror = np.zeros(Maxpolydegree)
    -trainingerror = np.zeros(Maxpolydegree)
    -polynomial = np.zeros(Maxpolydegree)
    -
    -trials = 100
    -for polydegree in range(1, Maxpolydegree):
    -    polynomial[polydegree] = polydegree
    -    for degree in range(polydegree):
    -        X[:,degree] = Density**(degree/3.0)
    -
    -# loop over trials in order to estimate the expectation value of the MSE
    -    testerror[polydegree] = 0.0
    -    trainingerror[polydegree] = 0.0
    -    for samples in range(trials):
    -        x_train, x_test, y_train, y_test = train_test_split(X, Energies, test_size=0.2)
    -        model = LinearRegression(fit_intercept=True).fit(x_train, y_train)
    -        ypred = model.predict(x_train)
    -        ytilde = model.predict(x_test)
    -        testerror[polydegree] += mean_squared_error(y_test, ytilde)
    -        trainingerror[polydegree] += mean_squared_error(y_train, ypred) 
    -
    -    testerror[polydegree] /= trials
    -    trainingerror[polydegree] /= trials
    -    print("Degree of polynomial: %3d"% polynomial[polydegree])
    -    print("Mean squared error on training data: %.8f" % trainingerror[polydegree])
    -    print("Mean squared error on test data: %.8f" % testerror[polydegree])
    -
    -plt.plot(polynomial, np.log10(trainingerror), label='Training Error')
    -plt.plot(polynomial, np.log10(testerror), label='Test Error')
    -plt.xlabel('Polynomial degree')
    -plt.ylabel('log10[MSE]')
    -plt.legend()
    -plt.show()
    -
    -
    - - -
    -

    The same example but now with cross-validation

    - -

    - - -

    # Common imports
    -import os
    -import numpy as np
    -import pandas as pd
    -import matplotlib.pyplot as plt
    -from sklearn.linear_model import LinearRegression, Ridge, Lasso
    -from sklearn.metrics import mean_squared_error
    -from sklearn.model_selection import KFold
    -from sklearn.model_selection import cross_val_score
    -
    -
    -# Where to save the figures and data files
    -PROJECT_ROOT_DIR = "Results"
    -FIGURE_ID = "Results/FigureFiles"
    -DATA_ID = "DataFiles/"
    -
    -if not os.path.exists(PROJECT_ROOT_DIR):
    -    os.mkdir(PROJECT_ROOT_DIR)
    -
    -if not os.path.exists(FIGURE_ID):
    -    os.makedirs(FIGURE_ID)
    -
    -if not os.path.exists(DATA_ID):
    -    os.makedirs(DATA_ID)
    -
    -def image_path(fig_id):
    -    return os.path.join(FIGURE_ID, fig_id)
    -
    -def data_path(dat_id):
    -    return os.path.join(DATA_ID, dat_id)
    -
    -def save_fig(fig_id):
    -    plt.savefig(image_path(fig_id) + ".png", format='png')
    -
    -infile = open(data_path("EoS.csv"),'r')
    -
    -# Read the EoS data as  csv file and organize the data into two arrays with density and energies
    -EoS = pd.read_csv(infile, names=('Density', 'Energy'))
    -EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce')
    -EoS = EoS.dropna()
    -Energies = EoS['Energy']
    -Density = EoS['Density']
    -#  The design matrix now as function of various polytrops
    -
    -Maxpolydegree = 30
    -X = np.zeros((len(Density),Maxpolydegree))
    -X[:,0] = 1.0
    -estimated_mse_sklearn = np.zeros(Maxpolydegree)
    -polynomial = np.zeros(Maxpolydegree)
    -k =5
    -kfold = KFold(n_splits = k)
    -
    -for polydegree in range(1, Maxpolydegree):
    -    polynomial[polydegree] = polydegree
    -    for degree in range(polydegree):
    -        X[:,degree] = Density**(degree/3.0)
    -        OLS = LinearRegression()
    -# loop over trials in order to estimate the expectation value of the MSE
    -    estimated_mse_folds = cross_val_score(OLS, X, Energies, scoring='neg_mean_squared_error', cv=kfold)
    -#[:, np.newaxis]
    -    estimated_mse_sklearn[polydegree] = np.mean(-estimated_mse_folds)
    -
    -plt.plot(polynomial, np.log10(estimated_mse_sklearn), label='Test Error')
    -plt.xlabel('Polynomial degree')
    -plt.ylabel('log10[MSE]')
    -plt.legend()
    -plt.show()
    -
    -
    - - -
    -

    Cross-validation with Ridge

    -

    - - -

    import numpy as np
    -import matplotlib.pyplot as plt
    -from sklearn.model_selection import KFold
    -from sklearn.linear_model import Ridge
    -from sklearn.model_selection import cross_val_score
    -from sklearn.preprocessing import PolynomialFeatures
    -
    -# A seed just to ensure that the random numbers are the same for every run.
    -np.random.seed(3155)
    -# Generate the data.
    -n = 100
    -x = np.linspace(-3, 3, n).reshape(-1, 1)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)
    -# Decide degree on polynomial to fit
    -poly = PolynomialFeatures(degree = 10)
    -
    -# Decide which values of lambda to use
    -nlambdas = 500
    -lambdas = np.logspace(-3, 5, nlambdas)
    -# Initialize a KFold instance
    -k = 5
    -kfold = KFold(n_splits = k)
    -estimated_mse_sklearn = np.zeros(nlambdas)
    -i = 0
    -for lmb in lambdas:
    -    ridge = Ridge(alpha = lmb)
    -    estimated_mse_folds = cross_val_score(ridge, x, y, scoring='neg_mean_squared_error', cv=kfold)
    -    estimated_mse_sklearn[i] = np.mean(-estimated_mse_folds)
    -    i += 1
    -plt.figure()
    -plt.plot(np.log10(lambdas), estimated_mse_sklearn, label = 'cross_val_score')
    -plt.xlabel('log10(lambda)')
    -plt.ylabel('MSE')
    -plt.legend()
    -plt.show()
    -
    -
    - - - -
    -
    - - - - - - - - - - - - diff --git a/doc/src/week37/week37-solarized.html b/doc/src/week37/week37-solarized.html deleted file mode 100644 index ead40591c..000000000 --- a/doc/src/week37/week37-solarized.html +++ /dev/null @@ -1,1937 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Week 37: Summary of Ridge and Lasso Regression and Resampling Methods

    - -

    - - -

    -Morten Hjorth-Jensen [1, 2] -
    - -

    - - -

    [1] Department of Physics, University of Oslo
    -
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University
    -
    -

    -

    Sep 16, 2021

    -
    -

    -









    - -

    Plans for week 37

    - -
      -
    • Thursday September 16: Summary of Ridge and Lasso with examples and start resampling techniques
    • -
    • Friday September 17: Resampling methods, Cross-validation, Bootstrapping and jackknife
    • -
    - -Recommended Reading: - -
      -
    1. Lectures on Resampling methods (these lectures)
    2. -
    3. Bishop 1.3 (cross-validation) and 3.2 (bias-variance tradeoff)
    4. -
    5. Hastie et al Chapter 7, here we recommend 7.1-7.5 and 7.10 (cross-validation) and 7.11 (bootstrap). This chapter is better than Bishop's on these topics. Goodfellow et al discuss this in a superficial way in sections 5.2-5.5.
    6. -
    - -









    - -

    Thursday September 16, Summary of Ridge and Lasso Regression and start Resampling methods

    - -

    -









    - -

    Deriving OLS from a probability distribution

    - -

    -Our basic assumption when we derived the OLS equations was to assume -that our output is determined by a given continuous function -\( f(\boldsymbol{x}) \) and a random noise \( \boldsymbol{\epsilon} \) given by the normal -distribution with zero mean value and an undetermined variance -\( \sigma^2 \). - -

    -We found above that the outputs \( \boldsymbol{y} \) have a mean value given by -\( \boldsymbol{X}\hat{\boldsymbol{\beta}} \) and variance \( \sigma^2 \). Since the entries to -the design matrix are not stochastic variables, we can assume that the -probability distribution of our targets is also a normal distribution -but now with mean value \( \boldsymbol{X}\hat{\boldsymbol{\beta}} \). This means that a -single output \( y_i \) is given by the Gaussian distribution - -$$ -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]}. -$$ - -

    -









    - -

    Independent and Identically Distrubuted (iid)

    - -

    -We assume now that the various \( y_i \) values are stochastically distributed according to the above Gaussian distribution. -We define this distribution as -$$ -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]}, -$$ - -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} \). - -

    -Since these events are assumed to be independent and identicall distributed we can build the probability distribution function (PDF) for all possible event \( \boldsymbol{y} \) as the product of the single events, that is we have - -$$ -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}). -$$ - -

    -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 -in case we have a simple one-dimensional input and output case -$$ -\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\dots, (x_{n-1},y_{n-1})]. -$$ - -In the more general case the various inputs should be replaced by the possible features represented by the input data set \( \boldsymbol{X} \). -We can now rewrite the above probability as -$$ -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]}. -$$ - -

    -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} \). - -

    -









    - -

    Maximum Likelihood Estimation (MLE)

    - -

    -In statistics, maximum likelihood estimation (MLE) is a method of -estimating the parameters of an assumed probability distribution, -given some observed data. This is achieved by maximizing a likelihood -function so that, under the assumed statistical model, the observed -data is the most probable. - -

    -We will assume here that our events are given by the above Gaussian -distribution and we will determine the optimal parameters \( \beta \) by -maximizing the above PDF. However, computing the derivatives of a -product function is cumbersome and can easily lead to overflow and/or -underflowproblems, with potentials for loss of numerical precision. - -

    -In practice, it is more convenient to maximize the logarithm of the -PDF because it is a monotonically increasing function of the argument. -Alternatively, and this will be our option, we will minimize the -negative of the logarithm since this is a monotonically decreasing -function. - -

    -Note also that maximization/minimization of the logarithm of the PDF -is equivalent to the maximization/minimization of the function itself. - -

    -









    - -

    A new Cost Function

    - -

    -We could now define a new cost function to minimize, namely the negative logarithm of the above PDF - -$$ -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})}, -$$ - -which becomes -$$ -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}. -$$ - -

    -Taking the derivative of the new cost function with respect to the parameters \( \beta \) we recognize our familiar OLS equation, namely - -$$ -\boldsymbol{X}^T\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\right) =0, -$$ - -which leads to the well-known OLS equation for the optimal paramters \( \beta \) -$$ -\hat{\boldsymbol{\beta}}^{\mathrm{OLS}}=\left(\boldsymbol{X}^T\boldsymbol{X}\right)^{-1}\boldsymbol{X}^T\boldsymbol{y}! -$$ - -

    -









    - -

    Bayes' Theorem

    - -

    -If we combine the conditional probability with the marginal probability and the standard product rule, we have -$$ -p(X\vert Y)= \frac{p(X,Y)}{p(Y)}, -$$ - -which we can rewrite as - -$$ -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)}, -$$ - -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 \). - -

    -









    - -

    Interpretations of Bayes' Theorem

    - -

    -The quantity \( p(Y\vert X) \) on the right-hand side of the theorem is -evaluated for the observed data \( Y \) and can be viewed as a function of -the parameter space represented by \( X \). This function is not -necesseraly normalized and is normally called the likelihood function. - -

    -The function \( p(X) \) on the right hand side is called the prior while the function on the left hand side is the called the posterior probability. The denominator on the right hand side serves as a normalization factor for the posterior distribution. - -

    -









    - -

    Test Function for what happens with OLS, Ridge and Lasso

    - -

    -We will play around with a study of the values for the optimal -parameters \( \boldsymbol{\beta} \) using OLS, Ridge and Lasso regression. For -OLS, you will notice as function of the noise and polynomial degree, -that the parameters \( \beta \) will fluctuate from order to order in the -polynomial fit and that for larger and larger polynomial degrees of freedom, the parameters will tend to increase in value for OLS. - -

    -For Ridge and Lasso regression, the higher order parameters will typically be reduced, providing thereby less fluctuations from one order to another one. - -

    - - -

    import numpy as np
    -import matplotlib.pyplot as plt
    -from sklearn.model_selection import train_test_split
    -from sklearn import linear_model
    -
    -def R2(y_data, y_model):
    -    return 1 - np.sum((y_data - y_model) ** 2) / np.sum((y_data - np.mean(y_data)) ** 2)
    -def MSE(y_data,y_model):
    -    n = np.size(y_model)
    -    return np.sum((y_data-y_model)**2)/n
    -
    -# Make data set.
    -n = 10000
    -x = np.random.rand(n)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.randn(n)
    -
    -Maxpolydegree = 5
    -X = np.zeros((len(x),Maxpolydegree))
    -X[:,0] = 1.0
    -
    -for polydegree in range(1, Maxpolydegree):
    -    for degree in range(polydegree):
    -        X[:,degree] = x**(degree)
    -
    -
    -# We split the data in test and training data
    -X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
    -
    -# matrix inversion to find beta
    -OLSbeta = np.linalg.pinv(X_train.T @ X_train) @ X_train.T @ y_train
    -print(OLSbeta)
    -ypredictOLS = X_test @ OLSbeta
    -print("Test MSE OLS")
    -print(MSE(y_test,ypredictOLS))
    -# Repeat now for Lasso and Ridge regression and various values of the regularization parameter using Scikit-Learn
    -# Decide which values of lambda to use
    -nlambdas = 4
    -MSERidgePredict = np.zeros(nlambdas)
    -MSELassoPredict = np.zeros(nlambdas)
    -lambdas = np.logspace(-3, 1, nlambdas)
    -for i in range(nlambdas):
    -    lmb = lambdas[i]
    -    # Make the fit using Ridge and Lasso
    -    RegRidge = linear_model.Ridge(lmb,fit_intercept=False)
    -    RegRidge.fit(X_train,y_train)
    -    RegLasso = linear_model.Lasso(lmb,fit_intercept=False)
    -    RegLasso.fit(X_train,y_train)
    -    # and then make the prediction
    -    ypredictRidge = RegRidge.predict(X_test)
    -    ypredictLasso = RegLasso.predict(X_test)
    -    # Compute the MSE and print it
    -    MSERidgePredict[i] = MSE(y_test,ypredictRidge)
    -    MSELassoPredict[i] = MSE(y_test,ypredictLasso)
    -    print(lmb,RegRidge.coef_)
    -    print(lmb,RegLasso.coef_)
    -# Now plot the results
    -plt.figure()
    -plt.plot(np.log10(lambdas), MSERidgePredict, 'b', label = 'MSE Ridge Test')
    -plt.plot(np.log10(lambdas), MSELassoPredict, 'r', label = 'MSE Lasso Test')
    -plt.xlabel('log10(lambda)')
    -plt.ylabel('MSE')
    -plt.legend()
    -plt.show()
    -
    -

    -How can we understand this? - -

    -









    - -

    Rerunning the above code

    - -

    -Let us write out the values of the coefficients \( \beta_i \) as functions -of the polynomial degree and noise. We will focus only on the Ridge -results and some few selected values of the hyperparameter \( \lambda \). - -

    -If we don't include any noise and run this code for different values -of the polynomial degree, we notice that the results for \( \beta_i \) do -not show great changes from one order to the next. This is an -indication that for higher polynomial orders, our parameters become -less important. - -

    -If we however add noise, what happens is that the polynomial fit is -trying to adjust the fit to traverse in the best possible way all data -points. This can lead to large fluctuations in the parameters -\( \beta_i \) as functions of polynomial order. It will also be reflected -in a larger value of the variance of each parameter \( \beta_i \). What -Ridge regression (and Lasso as well) are doing then is to try to -quench the fluctuations in the parameters of \( \beta_i \) which have a -large variance (normally for higher orders in the polynomial). - -

    - - -

    import numpy as np
    -import pandas as pd
    -from IPython.display import display
    -import matplotlib.pyplot as plt
    -from sklearn.model_selection import train_test_split
    -from sklearn import linear_model
    -
    -# Make data set.
    -n = 1000
    -x = np.random.rand(n)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.randn(n)
    -
    -Maxpolydegree = 5
    -X = np.zeros((len(x),Maxpolydegree))
    -X[:,0] = 1.0
    -
    -for polydegree in range(1, Maxpolydegree):
    -    for degree in range(polydegree):
    -        X[:,degree] = x**(degree)
    -
    -
    -# We split the data in test and training data
    -X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
    -
    -# Decide which values of lambda to use
    -nlambdas = 5
    -lambdas = np.logspace(-3, 2, nlambdas)
    -for i in range(nlambdas):
    -    lmb = lambdas[i]
    -    # Make the fit using Ridge only
    -    RegRidge = linear_model.Ridge(lmb,fit_intercept=False)
    -    RegRidge.fit(X_train,y_train)
    -    # and then make the prediction
    -    ypredictRidge = RegRidge.predict(X_test)
    -    Coeffs = np.array(RegRidge.coef_)
    -    BetaValues = pd.DataFrame(Coeffs)
    -    BetaValues.columns = ['beta']
    -    display(BetaValues)    
    -
    -

    -









    - -

    Invoking Bayes' theorem

    - -

    -Using Bayes' theorem we can gain a better intuition about Ridge and Lasso regression. - -

    -For ordinary least squares we postulated that the maximum likelihood for the doamin of events \( \boldsymbol{D} \) (one-dimensional case) -$$ -\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\dots, (x_{n-1},y_{n-1})], -$$ - -is given by -$$ -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]}. -$$ - -

    -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 - -$$ -p(\boldsymbol{\beta}\vert\boldsymbol{D}). -$$ - -

    -Bayes' theorem comes to our rescue here since (omitting the normalization constant) -$$ -p(\boldsymbol{\beta}\vert\boldsymbol{D})\propto p(\boldsymbol{D}\vert\boldsymbol{\beta})p(\boldsymbol{\beta}). -$$ - -

    -We have a model for \( p(\boldsymbol{D}\vert\boldsymbol{\beta}) \) but need one for the prior \( p(\boldsymbol{\beta} \)! - -

    -









    - -

    Ridge and Bayes

    - -

    -With the posterior probability defined by a likelihood which we have -already modeled and an unknown prior, we are now ready to make -additional models for the prior. - -

    -We can, based on our discussions of the variance of \( \boldsymbol{\beta} \) and the mean value, assume that the prior for the values \( \boldsymbol{\beta} \) is given by a Gaussian with mean value zero and variance \( \tau^2 \), that is - -$$ -p(\boldsymbol{\beta})=\prod_{j=0}^{p-1}\exp{\left(-\frac{\beta_j^2}{2\tau^2}\right)}. -$$ - -

    -Our posterior probability becomes then (omitting the normalization factor which is just a constant) -$$ -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)}. -$$ - -

    -We can now optimize this quantity with respect to \( \boldsymbol{\beta} \). As we -did for OLS, this is most conveniently done by taking the negative -logarithm of the posterior probability. Doing so and leaving out the -constants terms that do not depend on \( \beta \), we have - -$$ -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, -$$ - -and replacing \( 1/2\tau^2 \) with \( \lambda \) we have - -$$ -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, -$$ - -which is our Ridge cost function! Nice, isn't it? - -

    -









    - -

    Lasso and Bayes

    - -

    -To derive the Lasso cost function, we simply replace the Gaussian prior with an exponential distribution (Laplace in this case) with zero mean value, that is - -$$ -p(\boldsymbol{\beta})=\prod_{j=0}^{p-1}\exp{\left(-\frac{\vert\beta_j\vert}{\tau}\right)}. -$$ - -

    -Our posterior probability becomes then (omitting the normalization factor which is just a constant) -$$ -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)}. -$$ - -

    -Taking the negative -logarithm of the posterior probability and leaving out the -constants terms that do not depend on \( \beta \), we have - -$$ -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, -$$ - -and replacing \( 1/\tau \) with \( \lambda \) we have - -$$ -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, -$$ - -which is our Lasso cost function! - -

    -









    - -

    Why resampling methods

    - -

    -Before we proceed, we need to rethink what we have been doing. In our -eager to fit the data, we have omitted several important elements in -our regression analysis. In what follows we will - -

      -
    1. look at statistical properties, including a discussion of mean values, variance and the so-called bias-variance tradeoff
    2. -
    3. introduce resampling techniques like cross-validation, bootstrapping and jackknife and more
    4. -
    - -and discuss how to select a given model (one of the difficult parts in machine learning). - -

    -









    - -

    Resampling methods

    -
    - -

    -Resampling methods are an indispensable tool in modern -statistics. They involve repeatedly drawing samples from a training -set and refitting a model of interest on each sample in order to -obtain additional information about the fitted model. For example, in -order to estimate the variability of a linear regression fit, we can -repeatedly draw different samples from the training data, fit a linear -regression to each new sample, and then examine the extent to which -the resulting fits differ. Such an approach may allow us to obtain -information that would not be available from fitting the model only -once using the original training sample. - -

    -Two resampling methods are often used in Machine Learning analyses, - -

      -
    1. The bootstrap method
    2. -
    3. and Cross-Validation
    4. -
    - -In addition there are several other methods such as the Jackknife and the Blocking methods. We will discuss in particular -cross-validation and the bootstrap method. - - -
    - - -

    -









    - -

    Resampling approaches can be computationally expensive

    -
    - -

    - -

    -Resampling approaches can be computationally expensive, because they -involve fitting the same statistical method multiple times using -different subsets of the training data. However, due to recent -advances in computing power, the computational requirements of -resampling methods generally are not prohibitive. In this chapter, we -discuss two of the most commonly used resampling methods, -cross-validation and the bootstrap. Both methods are important tools -in the practical application of many statistical learning -procedures. For example, cross-validation can be used to estimate the -test error associated with a given statistical learning method in -order to evaluate its performance, or to select the appropriate level -of flexibility. The process of evaluating a model’s performance is -known as model assessment, whereas the process of selecting the proper -level of flexibility for a model is known as model selection. The -bootstrap is widely used. - - -

    - - -

    -









    - -

    Why resampling methods ?

    -
    -Statistical analysis -

    - -

      -
    • Our simulations can be treated as computer experiments. This is particularly the case for Monte Carlo methods which are widely used in statistical analyses.
    • -
    • The results can be analysed with the same statistical tools as we would use when analysing experimental data.
    • -
    • As in all experiments, we are looking for expectation values and an estimate of how accurate they are, i.e., possible sources for errors.
    • -
    -
    - - -

    -









    - -

    Statistical analysis

    -
    - -

    - -

      -
    • As in other experiments, many numerical experiments have two classes of errors:
    • - -
        -
      • Statistical errors
      • -
      • Systematical errors
      • -
      - -
    • Statistical errors can be estimated using standard tools from statistics
    • -
    • Systematical errors are method specific and must be treated differently from case to case.
    • -
    -
    - - -

    -









    - -

    Resampling methods

    - -

    -With all these analytical equations for both the OLS and Ridge -regression, we will now outline how to assess a given model. This will -lead to a discussion of the so-called bias-variance tradeoff (see -below) and so-called resampling methods. - -

    -One of the quantities we have discussed as a way to measure errors is -the mean-squared error (MSE), mainly used for fitting of continuous -functions. Another choice is the absolute error. - -

    -In the discussions below we will focus on the MSE and in particular since we will split the data into test and training data, -we discuss the - -

      -
    1. prediction error or simply the test error \( \mathrm{Err_{Test}} \), where we have a fixed training set and the test error is the MSE arising from the data reserved for testing. We discuss also the
    2. -
    3. training error \( \mathrm{Err_{Train}} \), which is the average loss over the training data.
    4. -
    - -As our model becomes more and more complex, more of the training data tends to used. The training may thence adapt to more complicated structures in the data. This may lead to a decrease in the bias (see below for code example) and a slight increase of the variance for the test error. -For a certain level of complexity the test error will reach minimum, before starting to increase again. The -training error reaches a saturation. - -

    -









    - -

    Resampling methods: Jackknife and Bootstrap

    - -

    -Two famous -resampling methods are the independent bootstrap and the jackknife. - -

    -The jackknife is a special case of the independent bootstrap. Still, the jackknife was made -popular prior to the independent bootstrap. And as the popularity of -the independent bootstrap soared, new variants, such as the dependent bootstrap have also been developed.. - -

    -The Jackknife and independent bootstrap work for -independent, identically distributed random variables. -If these conditions are not -satisfied, the methods will fail. Yet, it should be said that if the data are -independent, identically distributed, and we only want to estimate the -variance of \( \overline{X} \) (which often is the case), then there is no -need for bootstrapping. - -

    -









    - -

    Resampling methods: Jackknife

    - -

    -The Jackknife works by making many replicas of the estimator \( \widehat{\beta} \). -The jackknife is a resampling method where we systematically leave out one observation from the vector of observed values \( \boldsymbol{x} = (x_1,x_2,\cdots,X_n) \). -Let \( \boldsymbol{x}_i \) denote the vector -$$ -\boldsymbol{x}_i = (x_1,x_2,\cdots,x_{i-1},x_{i+1},\cdots,x_n), -$$ - -

    -which equals the vector \( \boldsymbol{x} \) with the exception that observation -number \( i \) is left out. Using this notation, define -\( \widehat{\beta}_i \) to be the estimator -\( \widehat{\beta} \) computed using \( \vec{X}_i \). - -

    -









    - -

    Jackknife code example

    -

    - - -

    from numpy import *
    -from numpy.random import randint, randn
    -from time import time
    -
    -def jackknife(data, stat):
    -    n = len(data);t = zeros(n); inds = arange(n); t0 = time()
    -    ## 'jackknifing' by leaving out an observation for each i                                                                                                                      
    -    for i in range(n):
    -        t[i] = stat(delete(data,i) )
    -
    -    # analysis                                                                                                                                                                     
    -    print("Runtime: %g sec" % (time()-t0)); print("Jackknife Statistics :")
    -    print("original           bias      std. error")
    -    print("%8g %14g %15g" % (stat(data),(n-1)*mean(t)/n, (n*var(t))**.5))
    -
    -    return t
    -
    -
    -# Returns mean of data samples                                                                                                                                                     
    -def stat(data):
    -    return mean(data)
    -
    -
    -mu, sigma = 100, 15
    -datapoints = 10000
    -x = mu + sigma*random.randn(datapoints)
    -# jackknife returns the data sample                                                                                                                                                
    -t = jackknife(x, stat)
    -
    -

    -









    - -

    Resampling methods: Bootstrap

    -
    - -

    -Bootstrapping is a non-parametric approach to statistical inference -that substitutes computation for more traditional distributional -assumptions and asymptotic results. Bootstrapping offers a number of -advantages: - -

      -
    1. The bootstrap is quite general, although there are some cases in which it fails.
    2. -
    3. Because it does not require distributional assumptions (such as normally distributed errors), the bootstrap can provide more accurate inferences when the data are not well behaved or when the sample size is small.
    4. -
    5. It is possible to apply the bootstrap to statistics with sampling distributions that are difficult to derive, even asymptotically.
    6. -
    7. It is relatively simple to apply the bootstrap to complex data-collection plans (such as stratified and clustered samples).
    8. -
    -
    - - -

    -The textbook by Davison on the Bootstrap Methods and their Applications provides many more insights and proofs. In this course we will take a more practical approach and use the results and theorems provided in the literature. For those interested in reading more about the bootstrap methods, we recommend the above text and the one by Efron and Tibshirani. - -

    -Before we proceed however, we need to remind ourselves about a central theorem in statistics, namely the so-called central limit theorem. - -

    -









    - -

    The Central Limit Theorem

    - -

    -Suppose we have a PDF \( p(x) \) from which we generate a series \( N \) -of averages \( \langle x_i \rangle \). Each mean value \( \langle x_i \rangle \) -is viewed as the average of a specific measurement, e.g., throwing -dice 100 times and then taking the average value, or producing a certain -amount of random numbers. -For notational ease, we set \( \langle x_i \rangle=x_i \) in the discussion -which follows. - -

    -If we compute the mean \( z \) of \( m \) such mean values \( x_i \) -$$ - z=\frac{x_1+x_2+\dots+x_m}{m}, -$$ - -the question we pose is which is the PDF of the new variable \( z \). - -

    -









    - -

    Finding the Limit

    - -

    -The probability of obtaining an average value \( z \) is the product of the -probabilities of obtaining arbitrary individual mean values \( x_i \), -but with the constraint that the average is \( z \). We can express this through -the following expression -$$ - \tilde{p}(z)=\int dx_1p(x_1)\int dx_2p(x_2)\dots\int dx_mp(x_m) - \delta(z-\frac{x_1+x_2+\dots+x_m}{m}), -$$ - -where the \( \delta \)-function enbodies the constraint that the mean is \( z \). -All measurements that lead to each individual \( x_i \) are expected to -be independent, which in turn means that we can express \( \tilde{p} \) as the -product of individual \( p(x_i) \). The independence assumption is important in the derivation of the central limit theorem. - -

    -









    - -

    Rewriting the \( \delta \)-function

    - -

    -If we use the integral expression for the \( \delta \)-function - -$$ - \delta(z-\frac{x_1+x_2+\dots+x_m}{m})=\frac{1}{2\pi}\int_{-\infty}^{\infty} - dq\exp{\left(iq(z-\frac{x_1+x_2+\dots+x_m}{m})\right)}, -$$ - -and inserting \( e^{i\mu q-i\mu q} \) where \( \mu \) is the mean value -we arrive at -$$ - \tilde{p}(z)=\frac{1}{2\pi}\int_{-\infty}^{\infty} - dq\exp{\left(iq(z-\mu)\right)}\left[\int_{-\infty}^{\infty} - dxp(x)\exp{\left(iq(\mu-x)/m\right)}\right]^m, -$$ - -with the integral over \( x \) resulting in - -$$ - \int_{-\infty}^{\infty}dxp(x)\exp{\left(iq(\mu-x)/m\right)}= - \int_{-\infty}^{\infty}dxp(x) - \left[1+\frac{iq(\mu-x)}{m}-\frac{q^2(\mu-x)^2}{2m^2}+\dots\right]. -$$ - -

    -









    - -

    Identifying Terms

    - -

    -The second term on the rhs disappears since this is just the mean and -employing the definition of \( \sigma^2 \) we have -$$ - \int_{-\infty}^{\infty}dxp(x)e^{\left(iq(\mu-x)/m\right)}= - 1-\frac{q^2\sigma^2}{2m^2}+\dots, -$$ - -resulting in - -$$ - \left[\int_{-\infty}^{\infty}dxp(x)\exp{\left(iq(\mu-x)/m\right)}\right]^m\approx - \left[1-\frac{q^2\sigma^2}{2m^2}+\dots \right]^m, -$$ - -and in the limit \( m\rightarrow \infty \) we obtain - -$$ - \tilde{p}(z)=\frac{1}{\sqrt{2\pi}(\sigma/\sqrt{m})} - \exp{\left(-\frac{(z-\mu)^2}{2(\sigma/\sqrt{m})^2}\right)}, -$$ - -which is the normal distribution with variance -\( \sigma^2_m=\sigma^2/m \), where \( \sigma \) is the variance of the PDF \( p(x) \) -and \( \mu \) is also the mean of the PDF \( p(x) \). - -

    -









    - -

    Wrapping it up

    - -

    -Thus, the central limit theorem states that the PDF \( \tilde{p}(z) \) of -the average of \( m \) random values corresponding to a PDF \( p(x) \) -is a normal distribution whose mean is the -mean value of the PDF \( p(x) \) and whose variance is the variance -of the PDF \( p(x) \) divided by \( m \), the number of values used to compute \( z \). - -

    -The theorem is satisfied by a large class of PDFs. Note however that for a -finite \( m \), it is not always possible to find a closed expression for -\( \tilde{p}(x) \). -The central limit theorem leads then to the well-known expression for the -standard deviation, given by - -$$ - \sigma_m= -\frac{\sigma}{\sqrt{m}}. -$$ - -

    -The latter is true only if the average value is known exactly. This is obtained in the limit -\( m\rightarrow \infty \) only. Because the mean and the variance are measured quantities we obtain -the familiar expression in statistics -$$ - \sigma_m\approx -\frac{\sigma}{\sqrt{m-1}}. -$$ - -

    -In many cases however the above estimate for the standard deviation, -in particular if correlations are strong, may be too simplistic. - -

    -









    - -

    Confidence Intervals

    - -

    -









    - -

    Resampling methods: Bootstrap background

    - -

    -Since \( \widehat{\beta} = \widehat{\beta}(\boldsymbol{X}) \) is a function of random variables, -\( \widehat{\beta} \) itself must be a random variable. Thus it has -a pdf, call this function \( p(\boldsymbol{t}) \). The aim of the bootstrap is to -estimate \( p(\boldsymbol{t}) \) by the relative frequency of -\( \widehat{\beta} \). You can think of this as using a histogram -in the place of \( p(\boldsymbol{t}) \). If the relative frequency closely -resembles \( p(\vec{t}) \), then using numerics, it is straight forward to -estimate all the interesting parameters of \( p(\boldsymbol{t}) \) using point -estimators. - -

    -









    - -

    Resampling methods: More Bootstrap background

    - -

    -In the case that \( \widehat{\beta} \) has -more than one component, and the components are independent, we use the -same estimator on each component separately. If the probability -density function of \( X_i \), \( p(x) \), had been known, then it would have -been straightforward to do this by: - -

      -
    1. Drawing lots of numbers from \( p(x) \), suppose we call one such set of numbers \( (X_1^*, X_2^*, \cdots, X_n^*) \).
    2. -
    3. Then using these numbers, we could compute a replica of \( \widehat{\beta} \) called \( \widehat{\beta}^* \).
    4. -
    - -By repeated use of the above two points, many -estimates of \( \widehat{\beta} \) can be obtained. The -idea is to use the relative frequency of \( \widehat{\beta}^* \) -(think of a histogram) as an estimate of \( p(\boldsymbol{t}) \). - -

    -









    - -

    Resampling methods: Bootstrap approach

    - -

    -But -unless there is enough information available about the process that -generated \( X_1,X_2,\cdots,X_n \), \( p(x) \) is in general -unknown. Therefore, Efron in 1979 asked the -question: What if we replace \( p(x) \) by the relative frequency -of the observation \( X_i \)? - -

    -If we draw observations in accordance with -the relative frequency of the observations, will we obtain the same -result in some asymptotic sense? The answer is yes. - -

    -









    - -

    Resampling methods: Bootstrap steps

    - -

    -The independent bootstrap works like this: - -

      -
    1. Draw with replacement \( n \) numbers for the observed variables \( \boldsymbol{x} = (x_1,x_2,\cdots,x_n) \).
    2. -
    3. Define a vector \( \boldsymbol{x}^* \) containing the values which were drawn from \( \boldsymbol{x} \).
    4. -
    5. Using the vector \( \boldsymbol{x}^* \) compute \( \widehat{\beta}^* \) by evaluating \( \widehat \beta \) under the observations \( \boldsymbol{x}^* \).
    6. -
    7. Repeat this process \( k \) times.
    8. -
    - -When you are done, you can draw a histogram of the relative frequency -of \( \widehat \beta^* \). This is your estimate of the probability -distribution \( p(t) \). Using this probability distribution you can -estimate any statistics thereof. In principle you never draw the -histogram of the relative frequency of \( \widehat{\beta}^* \). Instead -you use the estimators corresponding to the statistic of interest. For -example, if you are interested in estimating the variance of \( \widehat -\beta \), apply the etsimator \( \widehat \sigma^2 \) to the values -\( \widehat \beta^* \). - -

    -









    - -

    Code example for the Bootstrap method

    - -

    -The following code starts with a Gaussian distribution with mean value -\( \mu =100 \) and variance \( \sigma=15 \). We use this to generate the data -used in the bootstrap analysis. The bootstrap analysis returns a data -set after a given number of bootstrap operations (as many as we have -data points). This data set consists of estimated mean values for each -bootstrap operation. The histogram generated by the bootstrap method -shows that the distribution for these mean values is also a Gaussian, -centered around the mean value \( \mu=100 \) but with standard deviation -\( \sigma/\sqrt{n} \), where \( n \) is the number of bootstrap samples (in -this case the same as the number of original data points). The value -of the standard deviation is what we expect from the central limit -theorem. - -

    - - -

    from numpy import *
    -from numpy.random import randint, randn
    -from time import time
    -import matplotlib.mlab as mlab
    -import matplotlib.pyplot as plt
    -
    -# Returns mean of bootstrap samples                                                                              # Alternatively, we can run it using Scikit-Learn's function resample                                            # See the examples below
    -
    -def statistics(data):
    -    return mean(data)
    -
    -
    -# Bootstrap algorithm
    -def bootstrap(data, statistic, R):
    -    t = zeros(R); n = len(data); inds = arange(n); t0 = time()
    -    # non-parametric bootstrap         
    -    for i in range(R):
    -        t[i] = statistic(data[randint(0,n,n)])
    -
    -    # analysis    
    -    print("Runtime: %g sec" % (time()-t0)); print("Bootstrap Statistics :")
    -    print("original           bias      std. error")
    -    print("%8g %8g %14g %15g" % (statistic(data), std(data),mean(t),std(t)))
    -    return t
    -
    -
    -mu, sigma = 100, 15
    -datapoints = 10000
    -x = mu + sigma*random.randn(datapoints)
    -# bootstrap returns the data sample                                    
    -t = bootstrap(x, statistics, datapoints)
    -
    -

    -We see that our new variance and from that the standard deviation, agrees with the central limit theorem. - -

    -









    - -

    Plotting the Histogram

    -

    - - -

    # the histogram of the bootstrapped  data                                                                                                    
    -n, binsboot, patches = plt.hist(t, 50, normed=1, facecolor='red', alpha=0.75)
    -
    -# add a 'best fit' line  
    -y = mlab.normpdf( binsboot, mean(t), std(t))
    -lt = plt.plot(binsboot, y, 'r--', linewidth=1)
    -plt.xlabel('Smarts')
    -plt.ylabel('Probability')
    -plt.axis([99.5, 100.6, 0, 3.0])
    -plt.grid(True)
    -
    -plt.show()
    -
    -

    -









    - -

    The bias-variance tradeoff

    - -

    -We will discuss the bias-variance tradeoff in the context of -continuous predictions such as regression. However, many of the -intuitions and ideas discussed here also carry over to classification -tasks. Consider a dataset \( \mathcal{L} \) consisting of the data -\( \mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\} \). - -

    -Let us assume that the true data is generated from a noisy model - -$$ -\boldsymbol{y}=f(\boldsymbol{x}) + \boldsymbol{\epsilon} -$$ - -

    -where \( \epsilon \) is normally distributed with mean zero and standard deviation \( \sigma^2 \). - -

    -In our derivation of the ordinary least squares method we defined then -an approximation to the function \( f \) in terms of the parameters -\( \boldsymbol{\beta} \) and the design matrix \( \boldsymbol{X} \) which embody our model, -that is \( \boldsymbol{\tilde{y}}=\boldsymbol{X}\boldsymbol{\beta} \). - -

    -Thereafter we found the parameters \( \boldsymbol{\beta} \) by optimizing the means squared error via the so-called cost function -$$ -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]. -$$ - -

    -We can rewrite this as -$$ -\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. -$$ - -

    -The three terms represent the square of the bias of the learning -method, which can be thought of as the error caused by the simplifying -assumptions built into the method. The second term represents the -variance of the chosen model and finally the last terms is variance of -the error \( \boldsymbol{\epsilon} \). - -

    -To derive this equation, we need to recall that the variance of \( \boldsymbol{y} \) and \( \boldsymbol{\epsilon} \) are both equal to \( \sigma^2 \). The mean value of \( \boldsymbol{\epsilon} \) is by definition equal to zero. Furthermore, the function \( f \) is not a stochastics variable, idem for \( \boldsymbol{\tilde{y}} \). -We use a more compact notation in terms of the expectation value -$$ -\mathbb{E}\left[(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2\right]=\mathbb{E}\left[(\boldsymbol{f}+\boldsymbol{\epsilon}-\boldsymbol{\tilde{y}})^2\right], -$$ - -and adding and subtracting \( \mathbb{E}\left[\boldsymbol{\tilde{y}}\right] \) we get -$$ -\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], -$$ - -which, using the abovementioned expectation values can be rewritten as -$$ -\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, -$$ - -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} \). - -

    -









    - -

    A way to Read the Bias-Variance Tradeoff

    - -

    -



    - -

    -









    - -

    Example code for Bias-Variance tradeoff

    -

    - - -

    import matplotlib.pyplot as plt
    -import numpy as np
    -from sklearn.linear_model import LinearRegression, Ridge, Lasso
    -from sklearn.preprocessing import PolynomialFeatures
    -from sklearn.model_selection import train_test_split
    -from sklearn.pipeline import make_pipeline
    -from sklearn.utils import resample
    -
    -np.random.seed(2018)
    -
    -n = 500
    -n_boostraps = 100
    -degree = 18  # A quite high value, just to show.
    -noise = 0.1
    -
    -# Make data set.
    -x = np.linspace(-1, 3, n).reshape(-1, 1)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2) + np.random.normal(0, 0.1, x.shape)
    -
    -# Hold out some test data that is never used in training.
    -x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
    -
    -# Combine x transformation and model into one operation.
    -# Not neccesary, but convenient.
    -model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))
    -
    -# The following (m x n_bootstraps) matrix holds the column vectors y_pred
    -# for each bootstrap iteration.
    -y_pred = np.empty((y_test.shape[0], n_boostraps))
    -for i in range(n_boostraps):
    -    x_, y_ = resample(x_train, y_train)
    -
    -    # Evaluate the new model on the same test data each time.
    -    y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel()
    -
    -# Note: Expectations and variances taken w.r.t. different training
    -# data sets, hence the axis=1. Subsequent means are taken across the test data
    -# set in order to obtain a total value, but before this we have error/bias/variance
    -# calculated per data point in the test set.
    -# Note 2: The use of keepdims=True is important in the calculation of bias as this 
    -# maintains the column vector form. Dropping this yields very unexpected results.
    -error = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) )
    -bias = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 )
    -variance = np.mean( np.var(y_pred, axis=1, keepdims=True) )
    -print('Error:', error)
    -print('Bias^2:', bias)
    -print('Var:', variance)
    -print('{} >= {} + {} = {}'.format(error, bias, variance, bias+variance))
    -
    -plt.plot(x[::5, :], y[::5, :], label='f(x)')
    -plt.scatter(x_test, y_test, label='Data points')
    -plt.scatter(x_test, np.mean(y_pred, axis=1), label='Pred')
    -plt.legend()
    -plt.show()
    -
    -

    -









    - -

    Understanding what happens

    -

    - - -

    import matplotlib.pyplot as plt
    -import numpy as np
    -from sklearn.linear_model import LinearRegression, Ridge, Lasso
    -from sklearn.preprocessing import PolynomialFeatures
    -from sklearn.model_selection import train_test_split
    -from sklearn.pipeline import make_pipeline
    -from sklearn.utils import resample
    -
    -np.random.seed(2018)
    -
    -n = 40
    -n_boostraps = 100
    -maxdegree = 14
    -
    -
    -# Make data set.
    -x = np.linspace(-3, 3, n).reshape(-1, 1)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)
    -error = np.zeros(maxdegree)
    -bias = np.zeros(maxdegree)
    -variance = np.zeros(maxdegree)
    -polydegree = np.zeros(maxdegree)
    -x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
    -
    -for degree in range(maxdegree):
    -    model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))
    -    y_pred = np.empty((y_test.shape[0], n_boostraps))
    -    for i in range(n_boostraps):
    -        x_, y_ = resample(x_train, y_train)
    -        y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel()
    -
    -    polydegree[degree] = degree
    -    error[degree] = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) )
    -    bias[degree] = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 )
    -    variance[degree] = np.mean( np.var(y_pred, axis=1, keepdims=True) )
    -    print('Polynomial degree:', degree)
    -    print('Error:', error[degree])
    -    print('Bias^2:', bias[degree])
    -    print('Var:', variance[degree])
    -    print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree]))
    -
    -plt.plot(polydegree, error, label='Error')
    -plt.plot(polydegree, bias, label='bias')
    -plt.plot(polydegree, variance, label='Variance')
    -plt.legend()
    -plt.show()
    -
    -

    - - -

    Summing up

    - -

    -The bias-variance tradeoff summarizes the fundamental tension in -machine learning, particularly supervised learning, between the -complexity of a model and the amount of training data needed to train -it. Since data is often limited, in practice it is often useful to -use a less-complex model with higher bias, that is a model whose asymptotic -performance is worse than another model because it is easier to -train and less sensitive to sampling noise arising from having a -finite-sized training dataset (smaller variance). - -

    -The above equations tell us that in -order to minimize the expected test error, we need to select a -statistical learning method that simultaneously achieves low variance -and low bias. Note that variance is inherently a nonnegative quantity, -and squared bias is also nonnegative. Hence, we see that the expected -test MSE can never lie below \( Var(\epsilon) \), the irreducible error. - -

    -What do we mean by the variance and bias of a statistical learning -method? The variance refers to the amount by which our model would change if we -estimated it using a different training data set. Since the training -data are used to fit the statistical learning method, different -training data sets will result in a different estimate. But ideally the -estimate for our model should not vary too much between training -sets. However, if a method has high variance then small changes in -the training data can result in large changes in the model. In general, more -flexible statistical methods have higher variance. - -

    -You may also find this recent article of interest. - -

    -









    - -

    Another Example from Scikit-Learn's Repository

    -

    - - -

    """
    -============================
    -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__)
    -
    -import numpy as np
    -import matplotlib.pyplot as plt
    -from sklearn.pipeline import Pipeline
    -from sklearn.preprocessing import PolynomialFeatures
    -from sklearn.linear_model import LinearRegression
    -from sklearn.model_selection import cross_val_score
    -
    -
    -def true_fun(X):
    -    return np.cos(1.5 * np.pi * X)
    -
    -np.random.seed(0)
    -
    -n_samples = 30
    -degrees = [1, 4, 15]
    -
    -X = np.sort(np.random.rand(n_samples))
    -y = true_fun(X) + np.random.randn(n_samples) * 0.1
    -
    -plt.figure(figsize=(14, 5))
    -for i in range(len(degrees)):
    -    ax = plt.subplot(1, len(degrees), i + 1)
    -    plt.setp(ax, xticks=(), yticks=())
    -
    -    polynomial_features = PolynomialFeatures(degree=degrees[i],
    -                                             include_bias=False)
    -    linear_regression = LinearRegression()
    -    pipeline = Pipeline([("polynomial_features", polynomial_features),
    -                         ("linear_regression", linear_regression)])
    -    pipeline.fit(X[:, np.newaxis], y)
    -
    -    # Evaluate the models using crossvalidation
    -    scores = cross_val_score(pipeline, X[:, np.newaxis], y,
    -                             scoring="neg_mean_squared_error", cv=10)
    -
    -    X_test = np.linspace(0, 1, 100)
    -    plt.plot(X_test, pipeline.predict(X_test[:, np.newaxis]), label="Model")
    -    plt.plot(X_test, true_fun(X_test), label="True function")
    -    plt.scatter(X, y, edgecolor='b', s=20, label="Samples")
    -    plt.xlabel("x")
    -    plt.ylabel("y")
    -    plt.xlim((0, 1))
    -    plt.ylim((-2, 2))
    -    plt.legend(loc="best")
    -    plt.title("Degree {}\nMSE = {:.2e}(+/- {:.2e})".format(
    -        degrees[i], -scores.mean(), scores.std()))
    -plt.show()
    -
    -

    - - -

    Various steps in cross-validation

    - -

    -When the repetitive splitting of the data set is done randomly, -samples may accidently end up in a fast majority of the splits in -either training or test set. Such samples may have an unbalanced -influence on either model building or prediction evaluation. To avoid -this \( k \)-fold cross-validation structures the data splitting. The -samples are divided into \( k \) more or less equally sized exhaustive and -mutually exclusive subsets. In turn (at each split) one of these -subsets plays the role of the test set while the union of the -remaining subsets constitutes the training set. Such a splitting -warrants a balanced representation of each sample in both training and -test set over the splits. Still the division into the \( k \) subsets -involves a degree of randomness. This may be fully excluded when -choosing \( k=n \). This particular case is referred to as leave-one-out -cross-validation (LOOCV). - -

    - - -

    How to set up the cross-validation for Ridge and/or Lasso

    - -
      -
    • Define a range of interest for the penalty parameter.
    • -
    • Divide the data set into training and test set comprising samples \( \{1, \ldots, n\} \setminus i \) and \( \{ i \} \), respectively.
    • -
    • Fit the linear regression model by means of ridge estimation for each \( \lambda \) in the grid using the training set, and the corresponding estimate of the error variance \( \boldsymbol{\sigma}_{-i}^2(\lambda) \), as
    • -
    - -$$ -\begin{align*} -\boldsymbol{\beta}_{-i}(\lambda) & = ( \boldsymbol{X}_{-i, \ast}^{T} -\boldsymbol{X}_{-i, \ast} + \lambda \boldsymbol{I}_{pp})^{-1} -\boldsymbol{X}_{-i, \ast}^{T} \boldsymbol{y}_{-i} -\end{align*} -$$ - - -
      -
    • Evaluate the prediction performance of these models on the test set by \( \log\{L[y_i, \boldsymbol{X}_{i, \ast}; \boldsymbol{\beta}_{-i}(\lambda), \boldsymbol{\sigma}_{-i}^2(\lambda)]\} \). Or, by the prediction error \( |y_i - \boldsymbol{X}_{i, \ast} \boldsymbol{\beta}_{-i}(\lambda)| \), the relative error, the error squared or the R2 score function.
    • -
    • Repeat the first three steps such that each sample plays the role of the test set once.
    • -
    • Average the prediction performances of the test sets at each grid point of the penalty bias/parameter. It is an estimate of the prediction performance of the model corresponding to this value of the penalty parameter on novel data. It is defined as
    • -
    - -$$ -\begin{align*} -\frac{1}{n} \sum_{i = 1}^n \log\{L[y_i, \mathbf{X}_{i, \ast}; \boldsymbol{\beta}_{-i}(\lambda), \boldsymbol{\sigma}_{-i}^2(\lambda)]\}. -\end{align*} -$$ - -

    -









    - -

    Cross-validation in brief

    - -

    -For the various values of \( k \) - -

      -
    1. shuffle the dataset randomly.
    2. -
    3. Split the dataset into \( k \) groups.
    4. -
    5. For each unique group: - -
        -
      1. Decide which group to use as set for test data
      2. -
      3. Take the remaining groups as a training data set
      4. -
      5. Fit a model on the training set and evaluate it on the test set
      6. -
      7. Retain the evaluation score and discard the model
      8. -
      - -
    6. Summarize the model using the sample of model evaluation scores
    7. -
    - -









    - -

    Code Example for Cross-validation and \( k \)-fold Cross-validation

    - -

    -The code here uses Ridge regression with cross-validation (CV) resampling and \( k \)-fold CV in order to fit a specific polynomial. -

    - - -

    import numpy as np
    -import matplotlib.pyplot as plt
    -from sklearn.model_selection import KFold
    -from sklearn.linear_model import Ridge
    -from sklearn.model_selection import cross_val_score
    -from sklearn.preprocessing import PolynomialFeatures
    -
    -# A seed just to ensure that the random numbers are the same for every run.
    -# Useful for eventual debugging.
    -np.random.seed(3155)
    -
    -# Generate the data.
    -nsamples = 100
    -x = np.random.randn(nsamples)
    -y = 3*x**2 + np.random.randn(nsamples)
    -
    -## Cross-validation on Ridge regression using KFold only
    -
    -# Decide degree on polynomial to fit
    -poly = PolynomialFeatures(degree = 6)
    -
    -# Decide which values of lambda to use
    -nlambdas = 500
    -lambdas = np.logspace(-3, 5, nlambdas)
    -
    -# Initialize a KFold instance
    -k = 5
    -kfold = KFold(n_splits = k)
    -
    -# Perform the cross-validation to estimate MSE
    -scores_KFold = np.zeros((nlambdas, k))
    -
    -i = 0
    -for lmb in lambdas:
    -    ridge = Ridge(alpha = lmb)
    -    j = 0
    -    for train_inds, test_inds in kfold.split(x):
    -        xtrain = x[train_inds]
    -        ytrain = y[train_inds]
    -
    -        xtest = x[test_inds]
    -        ytest = y[test_inds]
    -
    -        Xtrain = poly.fit_transform(xtrain[:, np.newaxis])
    -        ridge.fit(Xtrain, ytrain[:, np.newaxis])
    -
    -        Xtest = poly.fit_transform(xtest[:, np.newaxis])
    -        ypred = ridge.predict(Xtest)
    -
    -        scores_KFold[i,j] = np.sum((ypred - ytest[:, np.newaxis])**2)/np.size(ypred)
    -
    -        j += 1
    -    i += 1
    -
    -
    -estimated_mse_KFold = np.mean(scores_KFold, axis = 1)
    -
    -## Cross-validation using cross_val_score from sklearn along with KFold
    -
    -# kfold is an instance initialized above as:
    -# kfold = KFold(n_splits = k)
    -
    -estimated_mse_sklearn = np.zeros(nlambdas)
    -i = 0
    -for lmb in lambdas:
    -    ridge = Ridge(alpha = lmb)
    -
    -    X = poly.fit_transform(x[:, np.newaxis])
    -    estimated_mse_folds = cross_val_score(ridge, X, y[:, np.newaxis], scoring='neg_mean_squared_error', cv=kfold)
    -
    -    # cross_val_score return an array containing the estimated negative mse for every fold.
    -    # we have to the the mean of every array in order to get an estimate of the mse of the model
    -    estimated_mse_sklearn[i] = np.mean(-estimated_mse_folds)
    -
    -    i += 1
    -
    -## Plot and compare the slightly different ways to perform cross-validation
    -
    -plt.figure()
    -
    -plt.plot(np.log10(lambdas), estimated_mse_sklearn, label = 'cross_val_score')
    -plt.plot(np.log10(lambdas), estimated_mse_KFold, 'r--', label = 'KFold')
    -
    -plt.xlabel('log10(lambda)')
    -plt.ylabel('mse')
    -
    -plt.legend()
    -
    -plt.show()
    -
    -

    -









    - -

    More examples on bootstrap and cross-validation and errors

    - -

    - - -

    # Common imports
    -import os
    -import numpy as np
    -import pandas as pd
    -import matplotlib.pyplot as plt
    -from sklearn.linear_model import LinearRegression, Ridge, Lasso
    -from sklearn.model_selection import train_test_split
    -from sklearn.utils import resample
    -from sklearn.metrics import mean_squared_error
    -# Where to save the figures and data files
    -PROJECT_ROOT_DIR = "Results"
    -FIGURE_ID = "Results/FigureFiles"
    -DATA_ID = "DataFiles/"
    -
    -if not os.path.exists(PROJECT_ROOT_DIR):
    -    os.mkdir(PROJECT_ROOT_DIR)
    -
    -if not os.path.exists(FIGURE_ID):
    -    os.makedirs(FIGURE_ID)
    -
    -if not os.path.exists(DATA_ID):
    -    os.makedirs(DATA_ID)
    -
    -def image_path(fig_id):
    -    return os.path.join(FIGURE_ID, fig_id)
    -
    -def data_path(dat_id):
    -    return os.path.join(DATA_ID, dat_id)
    -
    -def save_fig(fig_id):
    -    plt.savefig(image_path(fig_id) + ".png", format='png')
    -
    -infile = open(data_path("EoS.csv"),'r')
    -
    -# Read the EoS data as  csv file and organize the data into two arrays with density and energies
    -EoS = pd.read_csv(infile, names=('Density', 'Energy'))
    -EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce')
    -EoS = EoS.dropna()
    -Energies = EoS['Energy']
    -Density = EoS['Density']
    -#  The design matrix now as function of various polytrops
    -
    -Maxpolydegree = 30
    -X = np.zeros((len(Density),Maxpolydegree))
    -X[:,0] = 1.0
    -testerror = np.zeros(Maxpolydegree)
    -trainingerror = np.zeros(Maxpolydegree)
    -polynomial = np.zeros(Maxpolydegree)
    -
    -trials = 100
    -for polydegree in range(1, Maxpolydegree):
    -    polynomial[polydegree] = polydegree
    -    for degree in range(polydegree):
    -        X[:,degree] = Density**(degree/3.0)
    -
    -# loop over trials in order to estimate the expectation value of the MSE
    -    testerror[polydegree] = 0.0
    -    trainingerror[polydegree] = 0.0
    -    for samples in range(trials):
    -        x_train, x_test, y_train, y_test = train_test_split(X, Energies, test_size=0.2)
    -        model = LinearRegression(fit_intercept=True).fit(x_train, y_train)
    -        ypred = model.predict(x_train)
    -        ytilde = model.predict(x_test)
    -        testerror[polydegree] += mean_squared_error(y_test, ytilde)
    -        trainingerror[polydegree] += mean_squared_error(y_train, ypred) 
    -
    -    testerror[polydegree] /= trials
    -    trainingerror[polydegree] /= trials
    -    print("Degree of polynomial: %3d"% polynomial[polydegree])
    -    print("Mean squared error on training data: %.8f" % trainingerror[polydegree])
    -    print("Mean squared error on test data: %.8f" % testerror[polydegree])
    -
    -plt.plot(polynomial, np.log10(trainingerror), label='Training Error')
    -plt.plot(polynomial, np.log10(testerror), label='Test Error')
    -plt.xlabel('Polynomial degree')
    -plt.ylabel('log10[MSE]')
    -plt.legend()
    -plt.show()
    -
    -

    - - -

    The same example but now with cross-validation

    - -

    - - -

    # Common imports
    -import os
    -import numpy as np
    -import pandas as pd
    -import matplotlib.pyplot as plt
    -from sklearn.linear_model import LinearRegression, Ridge, Lasso
    -from sklearn.metrics import mean_squared_error
    -from sklearn.model_selection import KFold
    -from sklearn.model_selection import cross_val_score
    -
    -
    -# Where to save the figures and data files
    -PROJECT_ROOT_DIR = "Results"
    -FIGURE_ID = "Results/FigureFiles"
    -DATA_ID = "DataFiles/"
    -
    -if not os.path.exists(PROJECT_ROOT_DIR):
    -    os.mkdir(PROJECT_ROOT_DIR)
    -
    -if not os.path.exists(FIGURE_ID):
    -    os.makedirs(FIGURE_ID)
    -
    -if not os.path.exists(DATA_ID):
    -    os.makedirs(DATA_ID)
    -
    -def image_path(fig_id):
    -    return os.path.join(FIGURE_ID, fig_id)
    -
    -def data_path(dat_id):
    -    return os.path.join(DATA_ID, dat_id)
    -
    -def save_fig(fig_id):
    -    plt.savefig(image_path(fig_id) + ".png", format='png')
    -
    -infile = open(data_path("EoS.csv"),'r')
    -
    -# Read the EoS data as  csv file and organize the data into two arrays with density and energies
    -EoS = pd.read_csv(infile, names=('Density', 'Energy'))
    -EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce')
    -EoS = EoS.dropna()
    -Energies = EoS['Energy']
    -Density = EoS['Density']
    -#  The design matrix now as function of various polytrops
    -
    -Maxpolydegree = 30
    -X = np.zeros((len(Density),Maxpolydegree))
    -X[:,0] = 1.0
    -estimated_mse_sklearn = np.zeros(Maxpolydegree)
    -polynomial = np.zeros(Maxpolydegree)
    -k =5
    -kfold = KFold(n_splits = k)
    -
    -for polydegree in range(1, Maxpolydegree):
    -    polynomial[polydegree] = polydegree
    -    for degree in range(polydegree):
    -        X[:,degree] = Density**(degree/3.0)
    -        OLS = LinearRegression()
    -# loop over trials in order to estimate the expectation value of the MSE
    -    estimated_mse_folds = cross_val_score(OLS, X, Energies, scoring='neg_mean_squared_error', cv=kfold)
    -#[:, np.newaxis]
    -    estimated_mse_sklearn[polydegree] = np.mean(-estimated_mse_folds)
    -
    -plt.plot(polynomial, np.log10(estimated_mse_sklearn), label='Test Error')
    -plt.xlabel('Polynomial degree')
    -plt.ylabel('log10[MSE]')
    -plt.legend()
    -plt.show()
    -
    -

    -









    - -

    Cross-validation with Ridge

    -

    - - -

    import numpy as np
    -import matplotlib.pyplot as plt
    -from sklearn.model_selection import KFold
    -from sklearn.linear_model import Ridge
    -from sklearn.model_selection import cross_val_score
    -from sklearn.preprocessing import PolynomialFeatures
    -
    -# A seed just to ensure that the random numbers are the same for every run.
    -np.random.seed(3155)
    -# Generate the data.
    -n = 100
    -x = np.linspace(-3, 3, n).reshape(-1, 1)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)
    -# Decide degree on polynomial to fit
    -poly = PolynomialFeatures(degree = 10)
    -
    -# Decide which values of lambda to use
    -nlambdas = 500
    -lambdas = np.logspace(-3, 5, nlambdas)
    -# Initialize a KFold instance
    -k = 5
    -kfold = KFold(n_splits = k)
    -estimated_mse_sklearn = np.zeros(nlambdas)
    -i = 0
    -for lmb in lambdas:
    -    ridge = Ridge(alpha = lmb)
    -    estimated_mse_folds = cross_val_score(ridge, x, y, scoring='neg_mean_squared_error', cv=kfold)
    -    estimated_mse_sklearn[i] = np.mean(-estimated_mse_folds)
    -    i += 1
    -plt.figure()
    -plt.plot(np.log10(lambdas), estimated_mse_sklearn, label = 'cross_val_score')
    -plt.xlabel('log10(lambda)')
    -plt.ylabel('MSE')
    -plt.legend()
    -plt.show()
    -
    -

    - - - - -

    - © 1999-2021, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license -
    - - - - - - diff --git a/doc/src/week37/week37.dlog b/doc/src/week37/week37.dlog deleted file mode 100644 index 32128f366..000000000 --- a/doc/src/week37/week37.dlog +++ /dev/null @@ -1,18 +0,0 @@ -Translating doconce text in week37.do.txt to html -*** replacing \bm{...} by \boldsymbol{...} (\bm is not supported by MathJax) -output in week37-reveal.html -Translating doconce text in week37.do.txt to html -*** replacing \bm{...} by \boldsymbol{...} (\bm is not supported by MathJax) -output in week37-solarized.html -Translating doconce text in week37.do.txt to html -*** replacing \bm{...} by \boldsymbol{...} (\bm is not supported by MathJax) -output in week37.html -Translating doconce text in week37.do.txt to html -*** replacing \bm{...} by \boldsymbol{...} (\bm is not supported by MathJax) -output in week37-bs.html -Translating doconce text in week37.do.txt to ipynb -*** replacing \bm{...} by \boldsymbol{...} (\bm is not supported by MathJax) -collected all required additional files in ipynb-week37-src.tar.gz which must be distributed with the notebook -Failed to remove ans_at_end environment -Failed to remove sol_at_end environment -output in week37.ipynb diff --git a/doc/src/week37/week37.do.txt b/doc/src/week37/week37.do.txt index 0eabc996b..7ef9e5ab3 100644 --- a/doc/src/week37/week37.do.txt +++ b/doc/src/week37/week37.do.txt @@ -774,6 +774,45 @@ in particular if correlations are strong, may be too simplistic. !split ===== Confidence Intervals ===== +Confidence intervals are used in statistics is a type of estimate +computed from the observed data. This gives a range of values for an +unknown parameter such as the parameters $\bm{\beta}$ from linear regression. + +With the OLS expressions for the parameters $\bm{\beta}$ we found +$\mathbb{E}(\bm{\beta}) = \bm{\beta}$, which means that the estimator of the regression parameters is unbiased. + +We found also that the variance of the estimate of the $j$-th regression coefficient is +$\bm{\sigma}^2 (\bm{\beta}_j ) = \bm{\sigma}^2 [(\mathbf{X}^{T} \mathbf{X})^{-1}]_{jj} $. + +This quantity will be used to +construct a confidence interval for the estimates. + + +!split +===== Standard Approach based on the Normal Distribution ===== + +We will assume that the parameters $\beta$ follow a normal +distribution. We can then define the confidence interval. Here we will be using as +shorthands $\mu_{\beta}$ for the above mean value and $\sigma_{\beta}$ +for the standard deviation. We have then a confidence interval + +!bt +\[ +\left(\mu_{\beta}\pm \frac{z\sigma_{\beta}}{\sqrt{n}}\right), +\] +!et + +where $z$ defines the level of certainty (or confidence). For a normal +distribution typical parameters are $z=2.576$ which corresponds to a +confidence of $99\%$ while $z=1.96$ corresponds to a confidence of +$95\%$. A confidence level of $95\%$ is commonly used and it is +normally referred to as a *two-sigmas* confidence level, that is we +approximate $z\approx 2$. + +For more discussions of confidence intervals (and in particular linked with a discussion of the bootstrap method), see chapter 5 of the textbook by "Davison on the Bootstrap Methods and their Applications":"https://www.cambridge.org/core/books/bootstrap-methods-and-their-application/ED2FD043579F27952363566DC09CBD6A" + +In this text you will also find an in-depth discussion of the +Bootstrap method, why it works and various theorems related to it. !split ===== Resampling methods: Bootstrap background ===== @@ -913,6 +952,7 @@ plt.show() !ec + !split ===== The bias-variance tradeoff ===== @@ -1586,3 +1626,5 @@ plt.show() + + diff --git a/doc/src/week37/week37.html b/doc/src/week37/week37.html deleted file mode 100644 index 059126495..000000000 --- a/doc/src/week37/week37.html +++ /dev/null @@ -1,1942 +0,0 @@ - - - - - - - - -Week 37: Summary of Ridge and Lasso Regression and Resampling Methods - - - - - - - - - - - - - - - - - - - - - - - -

    Week 37: Summary of Ridge and Lasso Regression and Resampling Methods

    - -

    - - -

    -Morten Hjorth-Jensen [1, 2] -
    - -

    - - -

    [1] Department of Physics, University of Oslo
    -
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University
    -
    -

    -

    Sep 16, 2021

    -
    -

    -









    - -

    Plans for week 37

    - -
      -
    • Thursday September 16: Summary of Ridge and Lasso with examples and start resampling techniques
    • -
    • Friday September 17: Resampling methods, Cross-validation, Bootstrapping and jackknife
    • -
    - -Recommended Reading: - -
      -
    1. Lectures on Resampling methods (these lectures)
    2. -
    3. Bishop 1.3 (cross-validation) and 3.2 (bias-variance tradeoff)
    4. -
    5. Hastie et al Chapter 7, here we recommend 7.1-7.5 and 7.10 (cross-validation) and 7.11 (bootstrap). This chapter is better than Bishop's on these topics. Goodfellow et al discuss this in a superficial way in sections 5.2-5.5.
    6. -
    - -









    - -

    Thursday September 16, Summary of Ridge and Lasso Regression and start Resampling methods

    - -

    -









    - -

    Deriving OLS from a probability distribution

    - -

    -Our basic assumption when we derived the OLS equations was to assume -that our output is determined by a given continuous function -\( f(\boldsymbol{x}) \) and a random noise \( \boldsymbol{\epsilon} \) given by the normal -distribution with zero mean value and an undetermined variance -\( \sigma^2 \). - -

    -We found above that the outputs \( \boldsymbol{y} \) have a mean value given by -\( \boldsymbol{X}\hat{\boldsymbol{\beta}} \) and variance \( \sigma^2 \). Since the entries to -the design matrix are not stochastic variables, we can assume that the -probability distribution of our targets is also a normal distribution -but now with mean value \( \boldsymbol{X}\hat{\boldsymbol{\beta}} \). This means that a -single output \( y_i \) is given by the Gaussian distribution - -$$ -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]}. -$$ - -

    -









    - -

    Independent and Identically Distrubuted (iid)

    - -

    -We assume now that the various \( y_i \) values are stochastically distributed according to the above Gaussian distribution. -We define this distribution as -$$ -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]}, -$$ - -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} \). - -

    -Since these events are assumed to be independent and identicall distributed we can build the probability distribution function (PDF) for all possible event \( \boldsymbol{y} \) as the product of the single events, that is we have - -$$ -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}). -$$ - -

    -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 -in case we have a simple one-dimensional input and output case -$$ -\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\dots, (x_{n-1},y_{n-1})]. -$$ - -In the more general case the various inputs should be replaced by the possible features represented by the input data set \( \boldsymbol{X} \). -We can now rewrite the above probability as -$$ -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]}. -$$ - -

    -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} \). - -

    -









    - -

    Maximum Likelihood Estimation (MLE)

    - -

    -In statistics, maximum likelihood estimation (MLE) is a method of -estimating the parameters of an assumed probability distribution, -given some observed data. This is achieved by maximizing a likelihood -function so that, under the assumed statistical model, the observed -data is the most probable. - -

    -We will assume here that our events are given by the above Gaussian -distribution and we will determine the optimal parameters \( \beta \) by -maximizing the above PDF. However, computing the derivatives of a -product function is cumbersome and can easily lead to overflow and/or -underflowproblems, with potentials for loss of numerical precision. - -

    -In practice, it is more convenient to maximize the logarithm of the -PDF because it is a monotonically increasing function of the argument. -Alternatively, and this will be our option, we will minimize the -negative of the logarithm since this is a monotonically decreasing -function. - -

    -Note also that maximization/minimization of the logarithm of the PDF -is equivalent to the maximization/minimization of the function itself. - -

    -









    - -

    A new Cost Function

    - -

    -We could now define a new cost function to minimize, namely the negative logarithm of the above PDF - -$$ -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})}, -$$ - -which becomes -$$ -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}. -$$ - -

    -Taking the derivative of the new cost function with respect to the parameters \( \beta \) we recognize our familiar OLS equation, namely - -$$ -\boldsymbol{X}^T\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\right) =0, -$$ - -which leads to the well-known OLS equation for the optimal paramters \( \beta \) -$$ -\hat{\boldsymbol{\beta}}^{\mathrm{OLS}}=\left(\boldsymbol{X}^T\boldsymbol{X}\right)^{-1}\boldsymbol{X}^T\boldsymbol{y}! -$$ - -

    -









    - -

    Bayes' Theorem

    - -

    -If we combine the conditional probability with the marginal probability and the standard product rule, we have -$$ -p(X\vert Y)= \frac{p(X,Y)}{p(Y)}, -$$ - -which we can rewrite as - -$$ -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)}, -$$ - -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 \). - -

    -









    - -

    Interpretations of Bayes' Theorem

    - -

    -The quantity \( p(Y\vert X) \) on the right-hand side of the theorem is -evaluated for the observed data \( Y \) and can be viewed as a function of -the parameter space represented by \( X \). This function is not -necesseraly normalized and is normally called the likelihood function. - -

    -The function \( p(X) \) on the right hand side is called the prior while the function on the left hand side is the called the posterior probability. The denominator on the right hand side serves as a normalization factor for the posterior distribution. - -

    -









    - -

    Test Function for what happens with OLS, Ridge and Lasso

    - -

    -We will play around with a study of the values for the optimal -parameters \( \boldsymbol{\beta} \) using OLS, Ridge and Lasso regression. For -OLS, you will notice as function of the noise and polynomial degree, -that the parameters \( \beta \) will fluctuate from order to order in the -polynomial fit and that for larger and larger polynomial degrees of freedom, the parameters will tend to increase in value for OLS. - -

    -For Ridge and Lasso regression, the higher order parameters will typically be reduced, providing thereby less fluctuations from one order to another one. - -

    - - -

    import numpy as np
    -import matplotlib.pyplot as plt
    -from sklearn.model_selection import train_test_split
    -from sklearn import linear_model
    -
    -def R2(y_data, y_model):
    -    return 1 - np.sum((y_data - y_model) ** 2) / np.sum((y_data - np.mean(y_data)) ** 2)
    -def MSE(y_data,y_model):
    -    n = np.size(y_model)
    -    return np.sum((y_data-y_model)**2)/n
    -
    -# Make data set.
    -n = 10000
    -x = np.random.rand(n)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.randn(n)
    -
    -Maxpolydegree = 5
    -X = np.zeros((len(x),Maxpolydegree))
    -X[:,0] = 1.0
    -
    -for polydegree in range(1, Maxpolydegree):
    -    for degree in range(polydegree):
    -        X[:,degree] = x**(degree)
    -
    -
    -# We split the data in test and training data
    -X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
    -
    -# matrix inversion to find beta
    -OLSbeta = np.linalg.pinv(X_train.T @ X_train) @ X_train.T @ y_train
    -print(OLSbeta)
    -ypredictOLS = X_test @ OLSbeta
    -print("Test MSE OLS")
    -print(MSE(y_test,ypredictOLS))
    -# Repeat now for Lasso and Ridge regression and various values of the regularization parameter using Scikit-Learn
    -# Decide which values of lambda to use
    -nlambdas = 4
    -MSERidgePredict = np.zeros(nlambdas)
    -MSELassoPredict = np.zeros(nlambdas)
    -lambdas = np.logspace(-3, 1, nlambdas)
    -for i in range(nlambdas):
    -    lmb = lambdas[i]
    -    # Make the fit using Ridge and Lasso
    -    RegRidge = linear_model.Ridge(lmb,fit_intercept=False)
    -    RegRidge.fit(X_train,y_train)
    -    RegLasso = linear_model.Lasso(lmb,fit_intercept=False)
    -    RegLasso.fit(X_train,y_train)
    -    # and then make the prediction
    -    ypredictRidge = RegRidge.predict(X_test)
    -    ypredictLasso = RegLasso.predict(X_test)
    -    # Compute the MSE and print it
    -    MSERidgePredict[i] = MSE(y_test,ypredictRidge)
    -    MSELassoPredict[i] = MSE(y_test,ypredictLasso)
    -    print(lmb,RegRidge.coef_)
    -    print(lmb,RegLasso.coef_)
    -# Now plot the results
    -plt.figure()
    -plt.plot(np.log10(lambdas), MSERidgePredict, 'b', label = 'MSE Ridge Test')
    -plt.plot(np.log10(lambdas), MSELassoPredict, 'r', label = 'MSE Lasso Test')
    -plt.xlabel('log10(lambda)')
    -plt.ylabel('MSE')
    -plt.legend()
    -plt.show()
    -
    -

    -How can we understand this? - -

    -









    - -

    Rerunning the above code

    - -

    -Let us write out the values of the coefficients \( \beta_i \) as functions -of the polynomial degree and noise. We will focus only on the Ridge -results and some few selected values of the hyperparameter \( \lambda \). - -

    -If we don't include any noise and run this code for different values -of the polynomial degree, we notice that the results for \( \beta_i \) do -not show great changes from one order to the next. This is an -indication that for higher polynomial orders, our parameters become -less important. - -

    -If we however add noise, what happens is that the polynomial fit is -trying to adjust the fit to traverse in the best possible way all data -points. This can lead to large fluctuations in the parameters -\( \beta_i \) as functions of polynomial order. It will also be reflected -in a larger value of the variance of each parameter \( \beta_i \). What -Ridge regression (and Lasso as well) are doing then is to try to -quench the fluctuations in the parameters of \( \beta_i \) which have a -large variance (normally for higher orders in the polynomial). - -

    - - -

    import numpy as np
    -import pandas as pd
    -from IPython.display import display
    -import matplotlib.pyplot as plt
    -from sklearn.model_selection import train_test_split
    -from sklearn import linear_model
    -
    -# Make data set.
    -n = 1000
    -x = np.random.rand(n)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.randn(n)
    -
    -Maxpolydegree = 5
    -X = np.zeros((len(x),Maxpolydegree))
    -X[:,0] = 1.0
    -
    -for polydegree in range(1, Maxpolydegree):
    -    for degree in range(polydegree):
    -        X[:,degree] = x**(degree)
    -
    -
    -# We split the data in test and training data
    -X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
    -
    -# Decide which values of lambda to use
    -nlambdas = 5
    -lambdas = np.logspace(-3, 2, nlambdas)
    -for i in range(nlambdas):
    -    lmb = lambdas[i]
    -    # Make the fit using Ridge only
    -    RegRidge = linear_model.Ridge(lmb,fit_intercept=False)
    -    RegRidge.fit(X_train,y_train)
    -    # and then make the prediction
    -    ypredictRidge = RegRidge.predict(X_test)
    -    Coeffs = np.array(RegRidge.coef_)
    -    BetaValues = pd.DataFrame(Coeffs)
    -    BetaValues.columns = ['beta']
    -    display(BetaValues)    
    -
    -

    -









    - -

    Invoking Bayes' theorem

    - -

    -Using Bayes' theorem we can gain a better intuition about Ridge and Lasso regression. - -

    -For ordinary least squares we postulated that the maximum likelihood for the doamin of events \( \boldsymbol{D} \) (one-dimensional case) -$$ -\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\dots, (x_{n-1},y_{n-1})], -$$ - -is given by -$$ -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]}. -$$ - -

    -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 - -$$ -p(\boldsymbol{\beta}\vert\boldsymbol{D}). -$$ - -

    -Bayes' theorem comes to our rescue here since (omitting the normalization constant) -$$ -p(\boldsymbol{\beta}\vert\boldsymbol{D})\propto p(\boldsymbol{D}\vert\boldsymbol{\beta})p(\boldsymbol{\beta}). -$$ - -

    -We have a model for \( p(\boldsymbol{D}\vert\boldsymbol{\beta}) \) but need one for the prior \( p(\boldsymbol{\beta} \)! - -

    -









    - -

    Ridge and Bayes

    - -

    -With the posterior probability defined by a likelihood which we have -already modeled and an unknown prior, we are now ready to make -additional models for the prior. - -

    -We can, based on our discussions of the variance of \( \boldsymbol{\beta} \) and the mean value, assume that the prior for the values \( \boldsymbol{\beta} \) is given by a Gaussian with mean value zero and variance \( \tau^2 \), that is - -$$ -p(\boldsymbol{\beta})=\prod_{j=0}^{p-1}\exp{\left(-\frac{\beta_j^2}{2\tau^2}\right)}. -$$ - -

    -Our posterior probability becomes then (omitting the normalization factor which is just a constant) -$$ -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)}. -$$ - -

    -We can now optimize this quantity with respect to \( \boldsymbol{\beta} \). As we -did for OLS, this is most conveniently done by taking the negative -logarithm of the posterior probability. Doing so and leaving out the -constants terms that do not depend on \( \beta \), we have - -$$ -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, -$$ - -and replacing \( 1/2\tau^2 \) with \( \lambda \) we have - -$$ -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, -$$ - -which is our Ridge cost function! Nice, isn't it? - -

    -









    - -

    Lasso and Bayes

    - -

    -To derive the Lasso cost function, we simply replace the Gaussian prior with an exponential distribution (Laplace in this case) with zero mean value, that is - -$$ -p(\boldsymbol{\beta})=\prod_{j=0}^{p-1}\exp{\left(-\frac{\vert\beta_j\vert}{\tau}\right)}. -$$ - -

    -Our posterior probability becomes then (omitting the normalization factor which is just a constant) -$$ -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)}. -$$ - -

    -Taking the negative -logarithm of the posterior probability and leaving out the -constants terms that do not depend on \( \beta \), we have - -$$ -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, -$$ - -and replacing \( 1/\tau \) with \( \lambda \) we have - -$$ -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, -$$ - -which is our Lasso cost function! - -

    -









    - -

    Why resampling methods

    - -

    -Before we proceed, we need to rethink what we have been doing. In our -eager to fit the data, we have omitted several important elements in -our regression analysis. In what follows we will - -

      -
    1. look at statistical properties, including a discussion of mean values, variance and the so-called bias-variance tradeoff
    2. -
    3. introduce resampling techniques like cross-validation, bootstrapping and jackknife and more
    4. -
    - -and discuss how to select a given model (one of the difficult parts in machine learning). - -

    -









    - -

    Resampling methods

    -
    - -

    -Resampling methods are an indispensable tool in modern -statistics. They involve repeatedly drawing samples from a training -set and refitting a model of interest on each sample in order to -obtain additional information about the fitted model. For example, in -order to estimate the variability of a linear regression fit, we can -repeatedly draw different samples from the training data, fit a linear -regression to each new sample, and then examine the extent to which -the resulting fits differ. Such an approach may allow us to obtain -information that would not be available from fitting the model only -once using the original training sample. - -

    -Two resampling methods are often used in Machine Learning analyses, - -

      -
    1. The bootstrap method
    2. -
    3. and Cross-Validation
    4. -
    - -In addition there are several other methods such as the Jackknife and the Blocking methods. We will discuss in particular -cross-validation and the bootstrap method. - - -
    - - -

    -









    - -

    Resampling approaches can be computationally expensive

    -
    - -

    - -

    -Resampling approaches can be computationally expensive, because they -involve fitting the same statistical method multiple times using -different subsets of the training data. However, due to recent -advances in computing power, the computational requirements of -resampling methods generally are not prohibitive. In this chapter, we -discuss two of the most commonly used resampling methods, -cross-validation and the bootstrap. Both methods are important tools -in the practical application of many statistical learning -procedures. For example, cross-validation can be used to estimate the -test error associated with a given statistical learning method in -order to evaluate its performance, or to select the appropriate level -of flexibility. The process of evaluating a model’s performance is -known as model assessment, whereas the process of selecting the proper -level of flexibility for a model is known as model selection. The -bootstrap is widely used. - - -

    - - -

    -









    - -

    Why resampling methods ?

    -
    -Statistical analysis -

    - -

      -
    • Our simulations can be treated as computer experiments. This is particularly the case for Monte Carlo methods which are widely used in statistical analyses.
    • -
    • The results can be analysed with the same statistical tools as we would use when analysing experimental data.
    • -
    • As in all experiments, we are looking for expectation values and an estimate of how accurate they are, i.e., possible sources for errors.
    • -
    -
    - - -

    -









    - -

    Statistical analysis

    -
    - -

    - -

      -
    • As in other experiments, many numerical experiments have two classes of errors:
    • - -
        -
      • Statistical errors
      • -
      • Systematical errors
      • -
      - -
    • Statistical errors can be estimated using standard tools from statistics
    • -
    • Systematical errors are method specific and must be treated differently from case to case.
    • -
    -
    - - -

    -









    - -

    Resampling methods

    - -

    -With all these analytical equations for both the OLS and Ridge -regression, we will now outline how to assess a given model. This will -lead to a discussion of the so-called bias-variance tradeoff (see -below) and so-called resampling methods. - -

    -One of the quantities we have discussed as a way to measure errors is -the mean-squared error (MSE), mainly used for fitting of continuous -functions. Another choice is the absolute error. - -

    -In the discussions below we will focus on the MSE and in particular since we will split the data into test and training data, -we discuss the - -

      -
    1. prediction error or simply the test error \( \mathrm{Err_{Test}} \), where we have a fixed training set and the test error is the MSE arising from the data reserved for testing. We discuss also the
    2. -
    3. training error \( \mathrm{Err_{Train}} \), which is the average loss over the training data.
    4. -
    - -As our model becomes more and more complex, more of the training data tends to used. The training may thence adapt to more complicated structures in the data. This may lead to a decrease in the bias (see below for code example) and a slight increase of the variance for the test error. -For a certain level of complexity the test error will reach minimum, before starting to increase again. The -training error reaches a saturation. - -

    -









    - -

    Resampling methods: Jackknife and Bootstrap

    - -

    -Two famous -resampling methods are the independent bootstrap and the jackknife. - -

    -The jackknife is a special case of the independent bootstrap. Still, the jackknife was made -popular prior to the independent bootstrap. And as the popularity of -the independent bootstrap soared, new variants, such as the dependent bootstrap have also been developed.. - -

    -The Jackknife and independent bootstrap work for -independent, identically distributed random variables. -If these conditions are not -satisfied, the methods will fail. Yet, it should be said that if the data are -independent, identically distributed, and we only want to estimate the -variance of \( \overline{X} \) (which often is the case), then there is no -need for bootstrapping. - -

    -









    - -

    Resampling methods: Jackknife

    - -

    -The Jackknife works by making many replicas of the estimator \( \widehat{\beta} \). -The jackknife is a resampling method where we systematically leave out one observation from the vector of observed values \( \boldsymbol{x} = (x_1,x_2,\cdots,X_n) \). -Let \( \boldsymbol{x}_i \) denote the vector -$$ -\boldsymbol{x}_i = (x_1,x_2,\cdots,x_{i-1},x_{i+1},\cdots,x_n), -$$ - -

    -which equals the vector \( \boldsymbol{x} \) with the exception that observation -number \( i \) is left out. Using this notation, define -\( \widehat{\beta}_i \) to be the estimator -\( \widehat{\beta} \) computed using \( \vec{X}_i \). - -

    -









    - -

    Jackknife code example

    -

    - - -

    from numpy import *
    -from numpy.random import randint, randn
    -from time import time
    -
    -def jackknife(data, stat):
    -    n = len(data);t = zeros(n); inds = arange(n); t0 = time()
    -    ## 'jackknifing' by leaving out an observation for each i                                                                                                                      
    -    for i in range(n):
    -        t[i] = stat(delete(data,i) )
    -
    -    # analysis                                                                                                                                                                     
    -    print("Runtime: %g sec" % (time()-t0)); print("Jackknife Statistics :")
    -    print("original           bias      std. error")
    -    print("%8g %14g %15g" % (stat(data),(n-1)*mean(t)/n, (n*var(t))**.5))
    -
    -    return t
    -
    -
    -# Returns mean of data samples                                                                                                                                                     
    -def stat(data):
    -    return mean(data)
    -
    -
    -mu, sigma = 100, 15
    -datapoints = 10000
    -x = mu + sigma*random.randn(datapoints)
    -# jackknife returns the data sample                                                                                                                                                
    -t = jackknife(x, stat)
    -
    -

    -









    - -

    Resampling methods: Bootstrap

    -
    - -

    -Bootstrapping is a non-parametric approach to statistical inference -that substitutes computation for more traditional distributional -assumptions and asymptotic results. Bootstrapping offers a number of -advantages: - -

      -
    1. The bootstrap is quite general, although there are some cases in which it fails.
    2. -
    3. Because it does not require distributional assumptions (such as normally distributed errors), the bootstrap can provide more accurate inferences when the data are not well behaved or when the sample size is small.
    4. -
    5. It is possible to apply the bootstrap to statistics with sampling distributions that are difficult to derive, even asymptotically.
    6. -
    7. It is relatively simple to apply the bootstrap to complex data-collection plans (such as stratified and clustered samples).
    8. -
    -
    - - -

    -The textbook by Davison on the Bootstrap Methods and their Applications provides many more insights and proofs. In this course we will take a more practical approach and use the results and theorems provided in the literature. For those interested in reading more about the bootstrap methods, we recommend the above text and the one by Efron and Tibshirani. - -

    -Before we proceed however, we need to remind ourselves about a central theorem in statistics, namely the so-called central limit theorem. - -

    -









    - -

    The Central Limit Theorem

    - -

    -Suppose we have a PDF \( p(x) \) from which we generate a series \( N \) -of averages \( \langle x_i \rangle \). Each mean value \( \langle x_i \rangle \) -is viewed as the average of a specific measurement, e.g., throwing -dice 100 times and then taking the average value, or producing a certain -amount of random numbers. -For notational ease, we set \( \langle x_i \rangle=x_i \) in the discussion -which follows. - -

    -If we compute the mean \( z \) of \( m \) such mean values \( x_i \) -$$ - z=\frac{x_1+x_2+\dots+x_m}{m}, -$$ - -the question we pose is which is the PDF of the new variable \( z \). - -

    -









    - -

    Finding the Limit

    - -

    -The probability of obtaining an average value \( z \) is the product of the -probabilities of obtaining arbitrary individual mean values \( x_i \), -but with the constraint that the average is \( z \). We can express this through -the following expression -$$ - \tilde{p}(z)=\int dx_1p(x_1)\int dx_2p(x_2)\dots\int dx_mp(x_m) - \delta(z-\frac{x_1+x_2+\dots+x_m}{m}), -$$ - -where the \( \delta \)-function enbodies the constraint that the mean is \( z \). -All measurements that lead to each individual \( x_i \) are expected to -be independent, which in turn means that we can express \( \tilde{p} \) as the -product of individual \( p(x_i) \). The independence assumption is important in the derivation of the central limit theorem. - -

    -









    - -

    Rewriting the \( \delta \)-function

    - -

    -If we use the integral expression for the \( \delta \)-function - -$$ - \delta(z-\frac{x_1+x_2+\dots+x_m}{m})=\frac{1}{2\pi}\int_{-\infty}^{\infty} - dq\exp{\left(iq(z-\frac{x_1+x_2+\dots+x_m}{m})\right)}, -$$ - -and inserting \( e^{i\mu q-i\mu q} \) where \( \mu \) is the mean value -we arrive at -$$ - \tilde{p}(z)=\frac{1}{2\pi}\int_{-\infty}^{\infty} - dq\exp{\left(iq(z-\mu)\right)}\left[\int_{-\infty}^{\infty} - dxp(x)\exp{\left(iq(\mu-x)/m\right)}\right]^m, -$$ - -with the integral over \( x \) resulting in - -$$ - \int_{-\infty}^{\infty}dxp(x)\exp{\left(iq(\mu-x)/m\right)}= - \int_{-\infty}^{\infty}dxp(x) - \left[1+\frac{iq(\mu-x)}{m}-\frac{q^2(\mu-x)^2}{2m^2}+\dots\right]. -$$ - -

    -









    - -

    Identifying Terms

    - -

    -The second term on the rhs disappears since this is just the mean and -employing the definition of \( \sigma^2 \) we have -$$ - \int_{-\infty}^{\infty}dxp(x)e^{\left(iq(\mu-x)/m\right)}= - 1-\frac{q^2\sigma^2}{2m^2}+\dots, -$$ - -resulting in - -$$ - \left[\int_{-\infty}^{\infty}dxp(x)\exp{\left(iq(\mu-x)/m\right)}\right]^m\approx - \left[1-\frac{q^2\sigma^2}{2m^2}+\dots \right]^m, -$$ - -and in the limit \( m\rightarrow \infty \) we obtain - -$$ - \tilde{p}(z)=\frac{1}{\sqrt{2\pi}(\sigma/\sqrt{m})} - \exp{\left(-\frac{(z-\mu)^2}{2(\sigma/\sqrt{m})^2}\right)}, -$$ - -which is the normal distribution with variance -\( \sigma^2_m=\sigma^2/m \), where \( \sigma \) is the variance of the PDF \( p(x) \) -and \( \mu \) is also the mean of the PDF \( p(x) \). - -

    -









    - -

    Wrapping it up

    - -

    -Thus, the central limit theorem states that the PDF \( \tilde{p}(z) \) of -the average of \( m \) random values corresponding to a PDF \( p(x) \) -is a normal distribution whose mean is the -mean value of the PDF \( p(x) \) and whose variance is the variance -of the PDF \( p(x) \) divided by \( m \), the number of values used to compute \( z \). - -

    -The theorem is satisfied by a large class of PDFs. Note however that for a -finite \( m \), it is not always possible to find a closed expression for -\( \tilde{p}(x) \). -The central limit theorem leads then to the well-known expression for the -standard deviation, given by - -$$ - \sigma_m= -\frac{\sigma}{\sqrt{m}}. -$$ - -

    -The latter is true only if the average value is known exactly. This is obtained in the limit -\( m\rightarrow \infty \) only. Because the mean and the variance are measured quantities we obtain -the familiar expression in statistics -$$ - \sigma_m\approx -\frac{\sigma}{\sqrt{m-1}}. -$$ - -

    -In many cases however the above estimate for the standard deviation, -in particular if correlations are strong, may be too simplistic. - -

    -









    - -

    Confidence Intervals

    - -

    -









    - -

    Resampling methods: Bootstrap background

    - -

    -Since \( \widehat{\beta} = \widehat{\beta}(\boldsymbol{X}) \) is a function of random variables, -\( \widehat{\beta} \) itself must be a random variable. Thus it has -a pdf, call this function \( p(\boldsymbol{t}) \). The aim of the bootstrap is to -estimate \( p(\boldsymbol{t}) \) by the relative frequency of -\( \widehat{\beta} \). You can think of this as using a histogram -in the place of \( p(\boldsymbol{t}) \). If the relative frequency closely -resembles \( p(\vec{t}) \), then using numerics, it is straight forward to -estimate all the interesting parameters of \( p(\boldsymbol{t}) \) using point -estimators. - -

    -









    - -

    Resampling methods: More Bootstrap background

    - -

    -In the case that \( \widehat{\beta} \) has -more than one component, and the components are independent, we use the -same estimator on each component separately. If the probability -density function of \( X_i \), \( p(x) \), had been known, then it would have -been straightforward to do this by: - -

      -
    1. Drawing lots of numbers from \( p(x) \), suppose we call one such set of numbers \( (X_1^*, X_2^*, \cdots, X_n^*) \).
    2. -
    3. Then using these numbers, we could compute a replica of \( \widehat{\beta} \) called \( \widehat{\beta}^* \).
    4. -
    - -By repeated use of the above two points, many -estimates of \( \widehat{\beta} \) can be obtained. The -idea is to use the relative frequency of \( \widehat{\beta}^* \) -(think of a histogram) as an estimate of \( p(\boldsymbol{t}) \). - -

    -









    - -

    Resampling methods: Bootstrap approach

    - -

    -But -unless there is enough information available about the process that -generated \( X_1,X_2,\cdots,X_n \), \( p(x) \) is in general -unknown. Therefore, Efron in 1979 asked the -question: What if we replace \( p(x) \) by the relative frequency -of the observation \( X_i \)? - -

    -If we draw observations in accordance with -the relative frequency of the observations, will we obtain the same -result in some asymptotic sense? The answer is yes. - -

    -









    - -

    Resampling methods: Bootstrap steps

    - -

    -The independent bootstrap works like this: - -

      -
    1. Draw with replacement \( n \) numbers for the observed variables \( \boldsymbol{x} = (x_1,x_2,\cdots,x_n) \).
    2. -
    3. Define a vector \( \boldsymbol{x}^* \) containing the values which were drawn from \( \boldsymbol{x} \).
    4. -
    5. Using the vector \( \boldsymbol{x}^* \) compute \( \widehat{\beta}^* \) by evaluating \( \widehat \beta \) under the observations \( \boldsymbol{x}^* \).
    6. -
    7. Repeat this process \( k \) times.
    8. -
    - -When you are done, you can draw a histogram of the relative frequency -of \( \widehat \beta^* \). This is your estimate of the probability -distribution \( p(t) \). Using this probability distribution you can -estimate any statistics thereof. In principle you never draw the -histogram of the relative frequency of \( \widehat{\beta}^* \). Instead -you use the estimators corresponding to the statistic of interest. For -example, if you are interested in estimating the variance of \( \widehat -\beta \), apply the etsimator \( \widehat \sigma^2 \) to the values -\( \widehat \beta^* \). - -

    -









    - -

    Code example for the Bootstrap method

    - -

    -The following code starts with a Gaussian distribution with mean value -\( \mu =100 \) and variance \( \sigma=15 \). We use this to generate the data -used in the bootstrap analysis. The bootstrap analysis returns a data -set after a given number of bootstrap operations (as many as we have -data points). This data set consists of estimated mean values for each -bootstrap operation. The histogram generated by the bootstrap method -shows that the distribution for these mean values is also a Gaussian, -centered around the mean value \( \mu=100 \) but with standard deviation -\( \sigma/\sqrt{n} \), where \( n \) is the number of bootstrap samples (in -this case the same as the number of original data points). The value -of the standard deviation is what we expect from the central limit -theorem. - -

    - - -

    from numpy import *
    -from numpy.random import randint, randn
    -from time import time
    -import matplotlib.mlab as mlab
    -import matplotlib.pyplot as plt
    -
    -# Returns mean of bootstrap samples                                                                              # Alternatively, we can run it using Scikit-Learn's function resample                                            # See the examples below
    -
    -def statistics(data):
    -    return mean(data)
    -
    -
    -# Bootstrap algorithm
    -def bootstrap(data, statistic, R):
    -    t = zeros(R); n = len(data); inds = arange(n); t0 = time()
    -    # non-parametric bootstrap         
    -    for i in range(R):
    -        t[i] = statistic(data[randint(0,n,n)])
    -
    -    # analysis    
    -    print("Runtime: %g sec" % (time()-t0)); print("Bootstrap Statistics :")
    -    print("original           bias      std. error")
    -    print("%8g %8g %14g %15g" % (statistic(data), std(data),mean(t),std(t)))
    -    return t
    -
    -
    -mu, sigma = 100, 15
    -datapoints = 10000
    -x = mu + sigma*random.randn(datapoints)
    -# bootstrap returns the data sample                                    
    -t = bootstrap(x, statistics, datapoints)
    -
    -

    -We see that our new variance and from that the standard deviation, agrees with the central limit theorem. - -

    -









    - -

    Plotting the Histogram

    -

    - - -

    # the histogram of the bootstrapped  data                                                                                                    
    -n, binsboot, patches = plt.hist(t, 50, normed=1, facecolor='red', alpha=0.75)
    -
    -# add a 'best fit' line  
    -y = mlab.normpdf( binsboot, mean(t), std(t))
    -lt = plt.plot(binsboot, y, 'r--', linewidth=1)
    -plt.xlabel('Smarts')
    -plt.ylabel('Probability')
    -plt.axis([99.5, 100.6, 0, 3.0])
    -plt.grid(True)
    -
    -plt.show()
    -
    -

    -









    - -

    The bias-variance tradeoff

    - -

    -We will discuss the bias-variance tradeoff in the context of -continuous predictions such as regression. However, many of the -intuitions and ideas discussed here also carry over to classification -tasks. Consider a dataset \( \mathcal{L} \) consisting of the data -\( \mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\} \). - -

    -Let us assume that the true data is generated from a noisy model - -$$ -\boldsymbol{y}=f(\boldsymbol{x}) + \boldsymbol{\epsilon} -$$ - -

    -where \( \epsilon \) is normally distributed with mean zero and standard deviation \( \sigma^2 \). - -

    -In our derivation of the ordinary least squares method we defined then -an approximation to the function \( f \) in terms of the parameters -\( \boldsymbol{\beta} \) and the design matrix \( \boldsymbol{X} \) which embody our model, -that is \( \boldsymbol{\tilde{y}}=\boldsymbol{X}\boldsymbol{\beta} \). - -

    -Thereafter we found the parameters \( \boldsymbol{\beta} \) by optimizing the means squared error via the so-called cost function -$$ -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]. -$$ - -

    -We can rewrite this as -$$ -\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. -$$ - -

    -The three terms represent the square of the bias of the learning -method, which can be thought of as the error caused by the simplifying -assumptions built into the method. The second term represents the -variance of the chosen model and finally the last terms is variance of -the error \( \boldsymbol{\epsilon} \). - -

    -To derive this equation, we need to recall that the variance of \( \boldsymbol{y} \) and \( \boldsymbol{\epsilon} \) are both equal to \( \sigma^2 \). The mean value of \( \boldsymbol{\epsilon} \) is by definition equal to zero. Furthermore, the function \( f \) is not a stochastics variable, idem for \( \boldsymbol{\tilde{y}} \). -We use a more compact notation in terms of the expectation value -$$ -\mathbb{E}\left[(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2\right]=\mathbb{E}\left[(\boldsymbol{f}+\boldsymbol{\epsilon}-\boldsymbol{\tilde{y}})^2\right], -$$ - -and adding and subtracting \( \mathbb{E}\left[\boldsymbol{\tilde{y}}\right] \) we get -$$ -\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], -$$ - -which, using the abovementioned expectation values can be rewritten as -$$ -\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, -$$ - -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} \). - -

    -









    - -

    A way to Read the Bias-Variance Tradeoff

    - -

    -



    - -

    -









    - -

    Example code for Bias-Variance tradeoff

    -

    - - -

    import matplotlib.pyplot as plt
    -import numpy as np
    -from sklearn.linear_model import LinearRegression, Ridge, Lasso
    -from sklearn.preprocessing import PolynomialFeatures
    -from sklearn.model_selection import train_test_split
    -from sklearn.pipeline import make_pipeline
    -from sklearn.utils import resample
    -
    -np.random.seed(2018)
    -
    -n = 500
    -n_boostraps = 100
    -degree = 18  # A quite high value, just to show.
    -noise = 0.1
    -
    -# Make data set.
    -x = np.linspace(-1, 3, n).reshape(-1, 1)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2) + np.random.normal(0, 0.1, x.shape)
    -
    -# Hold out some test data that is never used in training.
    -x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
    -
    -# Combine x transformation and model into one operation.
    -# Not neccesary, but convenient.
    -model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))
    -
    -# The following (m x n_bootstraps) matrix holds the column vectors y_pred
    -# for each bootstrap iteration.
    -y_pred = np.empty((y_test.shape[0], n_boostraps))
    -for i in range(n_boostraps):
    -    x_, y_ = resample(x_train, y_train)
    -
    -    # Evaluate the new model on the same test data each time.
    -    y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel()
    -
    -# Note: Expectations and variances taken w.r.t. different training
    -# data sets, hence the axis=1. Subsequent means are taken across the test data
    -# set in order to obtain a total value, but before this we have error/bias/variance
    -# calculated per data point in the test set.
    -# Note 2: The use of keepdims=True is important in the calculation of bias as this 
    -# maintains the column vector form. Dropping this yields very unexpected results.
    -error = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) )
    -bias = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 )
    -variance = np.mean( np.var(y_pred, axis=1, keepdims=True) )
    -print('Error:', error)
    -print('Bias^2:', bias)
    -print('Var:', variance)
    -print('{} >= {} + {} = {}'.format(error, bias, variance, bias+variance))
    -
    -plt.plot(x[::5, :], y[::5, :], label='f(x)')
    -plt.scatter(x_test, y_test, label='Data points')
    -plt.scatter(x_test, np.mean(y_pred, axis=1), label='Pred')
    -plt.legend()
    -plt.show()
    -
    -

    -









    - -

    Understanding what happens

    -

    - - -

    import matplotlib.pyplot as plt
    -import numpy as np
    -from sklearn.linear_model import LinearRegression, Ridge, Lasso
    -from sklearn.preprocessing import PolynomialFeatures
    -from sklearn.model_selection import train_test_split
    -from sklearn.pipeline import make_pipeline
    -from sklearn.utils import resample
    -
    -np.random.seed(2018)
    -
    -n = 40
    -n_boostraps = 100
    -maxdegree = 14
    -
    -
    -# Make data set.
    -x = np.linspace(-3, 3, n).reshape(-1, 1)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)
    -error = np.zeros(maxdegree)
    -bias = np.zeros(maxdegree)
    -variance = np.zeros(maxdegree)
    -polydegree = np.zeros(maxdegree)
    -x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
    -
    -for degree in range(maxdegree):
    -    model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))
    -    y_pred = np.empty((y_test.shape[0], n_boostraps))
    -    for i in range(n_boostraps):
    -        x_, y_ = resample(x_train, y_train)
    -        y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel()
    -
    -    polydegree[degree] = degree
    -    error[degree] = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) )
    -    bias[degree] = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 )
    -    variance[degree] = np.mean( np.var(y_pred, axis=1, keepdims=True) )
    -    print('Polynomial degree:', degree)
    -    print('Error:', error[degree])
    -    print('Bias^2:', bias[degree])
    -    print('Var:', variance[degree])
    -    print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree]))
    -
    -plt.plot(polydegree, error, label='Error')
    -plt.plot(polydegree, bias, label='bias')
    -plt.plot(polydegree, variance, label='Variance')
    -plt.legend()
    -plt.show()
    -
    -

    - - -

    Summing up

    - -

    -The bias-variance tradeoff summarizes the fundamental tension in -machine learning, particularly supervised learning, between the -complexity of a model and the amount of training data needed to train -it. Since data is often limited, in practice it is often useful to -use a less-complex model with higher bias, that is a model whose asymptotic -performance is worse than another model because it is easier to -train and less sensitive to sampling noise arising from having a -finite-sized training dataset (smaller variance). - -

    -The above equations tell us that in -order to minimize the expected test error, we need to select a -statistical learning method that simultaneously achieves low variance -and low bias. Note that variance is inherently a nonnegative quantity, -and squared bias is also nonnegative. Hence, we see that the expected -test MSE can never lie below \( Var(\epsilon) \), the irreducible error. - -

    -What do we mean by the variance and bias of a statistical learning -method? The variance refers to the amount by which our model would change if we -estimated it using a different training data set. Since the training -data are used to fit the statistical learning method, different -training data sets will result in a different estimate. But ideally the -estimate for our model should not vary too much between training -sets. However, if a method has high variance then small changes in -the training data can result in large changes in the model. In general, more -flexible statistical methods have higher variance. - -

    -You may also find this recent article of interest. - -

    -









    - -

    Another Example from Scikit-Learn's Repository

    -

    - - -

    """
    -============================
    -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__)
    -
    -import numpy as np
    -import matplotlib.pyplot as plt
    -from sklearn.pipeline import Pipeline
    -from sklearn.preprocessing import PolynomialFeatures
    -from sklearn.linear_model import LinearRegression
    -from sklearn.model_selection import cross_val_score
    -
    -
    -def true_fun(X):
    -    return np.cos(1.5 * np.pi * X)
    -
    -np.random.seed(0)
    -
    -n_samples = 30
    -degrees = [1, 4, 15]
    -
    -X = np.sort(np.random.rand(n_samples))
    -y = true_fun(X) + np.random.randn(n_samples) * 0.1
    -
    -plt.figure(figsize=(14, 5))
    -for i in range(len(degrees)):
    -    ax = plt.subplot(1, len(degrees), i + 1)
    -    plt.setp(ax, xticks=(), yticks=())
    -
    -    polynomial_features = PolynomialFeatures(degree=degrees[i],
    -                                             include_bias=False)
    -    linear_regression = LinearRegression()
    -    pipeline = Pipeline([("polynomial_features", polynomial_features),
    -                         ("linear_regression", linear_regression)])
    -    pipeline.fit(X[:, np.newaxis], y)
    -
    -    # Evaluate the models using crossvalidation
    -    scores = cross_val_score(pipeline, X[:, np.newaxis], y,
    -                             scoring="neg_mean_squared_error", cv=10)
    -
    -    X_test = np.linspace(0, 1, 100)
    -    plt.plot(X_test, pipeline.predict(X_test[:, np.newaxis]), label="Model")
    -    plt.plot(X_test, true_fun(X_test), label="True function")
    -    plt.scatter(X, y, edgecolor='b', s=20, label="Samples")
    -    plt.xlabel("x")
    -    plt.ylabel("y")
    -    plt.xlim((0, 1))
    -    plt.ylim((-2, 2))
    -    plt.legend(loc="best")
    -    plt.title("Degree {}\nMSE = {:.2e}(+/- {:.2e})".format(
    -        degrees[i], -scores.mean(), scores.std()))
    -plt.show()
    -
    -

    - - -

    Various steps in cross-validation

    - -

    -When the repetitive splitting of the data set is done randomly, -samples may accidently end up in a fast majority of the splits in -either training or test set. Such samples may have an unbalanced -influence on either model building or prediction evaluation. To avoid -this \( k \)-fold cross-validation structures the data splitting. The -samples are divided into \( k \) more or less equally sized exhaustive and -mutually exclusive subsets. In turn (at each split) one of these -subsets plays the role of the test set while the union of the -remaining subsets constitutes the training set. Such a splitting -warrants a balanced representation of each sample in both training and -test set over the splits. Still the division into the \( k \) subsets -involves a degree of randomness. This may be fully excluded when -choosing \( k=n \). This particular case is referred to as leave-one-out -cross-validation (LOOCV). - -

    - - -

    How to set up the cross-validation for Ridge and/or Lasso

    - -
      -
    • Define a range of interest for the penalty parameter.
    • -
    • Divide the data set into training and test set comprising samples \( \{1, \ldots, n\} \setminus i \) and \( \{ i \} \), respectively.
    • -
    • Fit the linear regression model by means of ridge estimation for each \( \lambda \) in the grid using the training set, and the corresponding estimate of the error variance \( \boldsymbol{\sigma}_{-i}^2(\lambda) \), as
    • -
    - -$$ -\begin{align*} -\boldsymbol{\beta}_{-i}(\lambda) & = ( \boldsymbol{X}_{-i, \ast}^{T} -\boldsymbol{X}_{-i, \ast} + \lambda \boldsymbol{I}_{pp})^{-1} -\boldsymbol{X}_{-i, \ast}^{T} \boldsymbol{y}_{-i} -\end{align*} -$$ - - -
      -
    • Evaluate the prediction performance of these models on the test set by \( \log\{L[y_i, \boldsymbol{X}_{i, \ast}; \boldsymbol{\beta}_{-i}(\lambda), \boldsymbol{\sigma}_{-i}^2(\lambda)]\} \). Or, by the prediction error \( |y_i - \boldsymbol{X}_{i, \ast} \boldsymbol{\beta}_{-i}(\lambda)| \), the relative error, the error squared or the R2 score function.
    • -
    • Repeat the first three steps such that each sample plays the role of the test set once.
    • -
    • Average the prediction performances of the test sets at each grid point of the penalty bias/parameter. It is an estimate of the prediction performance of the model corresponding to this value of the penalty parameter on novel data. It is defined as
    • -
    - -$$ -\begin{align*} -\frac{1}{n} \sum_{i = 1}^n \log\{L[y_i, \mathbf{X}_{i, \ast}; \boldsymbol{\beta}_{-i}(\lambda), \boldsymbol{\sigma}_{-i}^2(\lambda)]\}. -\end{align*} -$$ - -

    -









    - -

    Cross-validation in brief

    - -

    -For the various values of \( k \) - -

      -
    1. shuffle the dataset randomly.
    2. -
    3. Split the dataset into \( k \) groups.
    4. -
    5. For each unique group: - -
        -
      1. Decide which group to use as set for test data
      2. -
      3. Take the remaining groups as a training data set
      4. -
      5. Fit a model on the training set and evaluate it on the test set
      6. -
      7. Retain the evaluation score and discard the model
      8. -
      - -
    6. Summarize the model using the sample of model evaluation scores
    7. -
    - -









    - -

    Code Example for Cross-validation and \( k \)-fold Cross-validation

    - -

    -The code here uses Ridge regression with cross-validation (CV) resampling and \( k \)-fold CV in order to fit a specific polynomial. -

    - - -

    import numpy as np
    -import matplotlib.pyplot as plt
    -from sklearn.model_selection import KFold
    -from sklearn.linear_model import Ridge
    -from sklearn.model_selection import cross_val_score
    -from sklearn.preprocessing import PolynomialFeatures
    -
    -# A seed just to ensure that the random numbers are the same for every run.
    -# Useful for eventual debugging.
    -np.random.seed(3155)
    -
    -# Generate the data.
    -nsamples = 100
    -x = np.random.randn(nsamples)
    -y = 3*x**2 + np.random.randn(nsamples)
    -
    -## Cross-validation on Ridge regression using KFold only
    -
    -# Decide degree on polynomial to fit
    -poly = PolynomialFeatures(degree = 6)
    -
    -# Decide which values of lambda to use
    -nlambdas = 500
    -lambdas = np.logspace(-3, 5, nlambdas)
    -
    -# Initialize a KFold instance
    -k = 5
    -kfold = KFold(n_splits = k)
    -
    -# Perform the cross-validation to estimate MSE
    -scores_KFold = np.zeros((nlambdas, k))
    -
    -i = 0
    -for lmb in lambdas:
    -    ridge = Ridge(alpha = lmb)
    -    j = 0
    -    for train_inds, test_inds in kfold.split(x):
    -        xtrain = x[train_inds]
    -        ytrain = y[train_inds]
    -
    -        xtest = x[test_inds]
    -        ytest = y[test_inds]
    -
    -        Xtrain = poly.fit_transform(xtrain[:, np.newaxis])
    -        ridge.fit(Xtrain, ytrain[:, np.newaxis])
    -
    -        Xtest = poly.fit_transform(xtest[:, np.newaxis])
    -        ypred = ridge.predict(Xtest)
    -
    -        scores_KFold[i,j] = np.sum((ypred - ytest[:, np.newaxis])**2)/np.size(ypred)
    -
    -        j += 1
    -    i += 1
    -
    -
    -estimated_mse_KFold = np.mean(scores_KFold, axis = 1)
    -
    -## Cross-validation using cross_val_score from sklearn along with KFold
    -
    -# kfold is an instance initialized above as:
    -# kfold = KFold(n_splits = k)
    -
    -estimated_mse_sklearn = np.zeros(nlambdas)
    -i = 0
    -for lmb in lambdas:
    -    ridge = Ridge(alpha = lmb)
    -
    -    X = poly.fit_transform(x[:, np.newaxis])
    -    estimated_mse_folds = cross_val_score(ridge, X, y[:, np.newaxis], scoring='neg_mean_squared_error', cv=kfold)
    -
    -    # cross_val_score return an array containing the estimated negative mse for every fold.
    -    # we have to the the mean of every array in order to get an estimate of the mse of the model
    -    estimated_mse_sklearn[i] = np.mean(-estimated_mse_folds)
    -
    -    i += 1
    -
    -## Plot and compare the slightly different ways to perform cross-validation
    -
    -plt.figure()
    -
    -plt.plot(np.log10(lambdas), estimated_mse_sklearn, label = 'cross_val_score')
    -plt.plot(np.log10(lambdas), estimated_mse_KFold, 'r--', label = 'KFold')
    -
    -plt.xlabel('log10(lambda)')
    -plt.ylabel('mse')
    -
    -plt.legend()
    -
    -plt.show()
    -
    -

    -









    - -

    More examples on bootstrap and cross-validation and errors

    - -

    - - -

    # Common imports
    -import os
    -import numpy as np
    -import pandas as pd
    -import matplotlib.pyplot as plt
    -from sklearn.linear_model import LinearRegression, Ridge, Lasso
    -from sklearn.model_selection import train_test_split
    -from sklearn.utils import resample
    -from sklearn.metrics import mean_squared_error
    -# Where to save the figures and data files
    -PROJECT_ROOT_DIR = "Results"
    -FIGURE_ID = "Results/FigureFiles"
    -DATA_ID = "DataFiles/"
    -
    -if not os.path.exists(PROJECT_ROOT_DIR):
    -    os.mkdir(PROJECT_ROOT_DIR)
    -
    -if not os.path.exists(FIGURE_ID):
    -    os.makedirs(FIGURE_ID)
    -
    -if not os.path.exists(DATA_ID):
    -    os.makedirs(DATA_ID)
    -
    -def image_path(fig_id):
    -    return os.path.join(FIGURE_ID, fig_id)
    -
    -def data_path(dat_id):
    -    return os.path.join(DATA_ID, dat_id)
    -
    -def save_fig(fig_id):
    -    plt.savefig(image_path(fig_id) + ".png", format='png')
    -
    -infile = open(data_path("EoS.csv"),'r')
    -
    -# Read the EoS data as  csv file and organize the data into two arrays with density and energies
    -EoS = pd.read_csv(infile, names=('Density', 'Energy'))
    -EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce')
    -EoS = EoS.dropna()
    -Energies = EoS['Energy']
    -Density = EoS['Density']
    -#  The design matrix now as function of various polytrops
    -
    -Maxpolydegree = 30
    -X = np.zeros((len(Density),Maxpolydegree))
    -X[:,0] = 1.0
    -testerror = np.zeros(Maxpolydegree)
    -trainingerror = np.zeros(Maxpolydegree)
    -polynomial = np.zeros(Maxpolydegree)
    -
    -trials = 100
    -for polydegree in range(1, Maxpolydegree):
    -    polynomial[polydegree] = polydegree
    -    for degree in range(polydegree):
    -        X[:,degree] = Density**(degree/3.0)
    -
    -# loop over trials in order to estimate the expectation value of the MSE
    -    testerror[polydegree] = 0.0
    -    trainingerror[polydegree] = 0.0
    -    for samples in range(trials):
    -        x_train, x_test, y_train, y_test = train_test_split(X, Energies, test_size=0.2)
    -        model = LinearRegression(fit_intercept=True).fit(x_train, y_train)
    -        ypred = model.predict(x_train)
    -        ytilde = model.predict(x_test)
    -        testerror[polydegree] += mean_squared_error(y_test, ytilde)
    -        trainingerror[polydegree] += mean_squared_error(y_train, ypred) 
    -
    -    testerror[polydegree] /= trials
    -    trainingerror[polydegree] /= trials
    -    print("Degree of polynomial: %3d"% polynomial[polydegree])
    -    print("Mean squared error on training data: %.8f" % trainingerror[polydegree])
    -    print("Mean squared error on test data: %.8f" % testerror[polydegree])
    -
    -plt.plot(polynomial, np.log10(trainingerror), label='Training Error')
    -plt.plot(polynomial, np.log10(testerror), label='Test Error')
    -plt.xlabel('Polynomial degree')
    -plt.ylabel('log10[MSE]')
    -plt.legend()
    -plt.show()
    -
    -

    - - -

    The same example but now with cross-validation

    - -

    - - -

    # Common imports
    -import os
    -import numpy as np
    -import pandas as pd
    -import matplotlib.pyplot as plt
    -from sklearn.linear_model import LinearRegression, Ridge, Lasso
    -from sklearn.metrics import mean_squared_error
    -from sklearn.model_selection import KFold
    -from sklearn.model_selection import cross_val_score
    -
    -
    -# Where to save the figures and data files
    -PROJECT_ROOT_DIR = "Results"
    -FIGURE_ID = "Results/FigureFiles"
    -DATA_ID = "DataFiles/"
    -
    -if not os.path.exists(PROJECT_ROOT_DIR):
    -    os.mkdir(PROJECT_ROOT_DIR)
    -
    -if not os.path.exists(FIGURE_ID):
    -    os.makedirs(FIGURE_ID)
    -
    -if not os.path.exists(DATA_ID):
    -    os.makedirs(DATA_ID)
    -
    -def image_path(fig_id):
    -    return os.path.join(FIGURE_ID, fig_id)
    -
    -def data_path(dat_id):
    -    return os.path.join(DATA_ID, dat_id)
    -
    -def save_fig(fig_id):
    -    plt.savefig(image_path(fig_id) + ".png", format='png')
    -
    -infile = open(data_path("EoS.csv"),'r')
    -
    -# Read the EoS data as  csv file and organize the data into two arrays with density and energies
    -EoS = pd.read_csv(infile, names=('Density', 'Energy'))
    -EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce')
    -EoS = EoS.dropna()
    -Energies = EoS['Energy']
    -Density = EoS['Density']
    -#  The design matrix now as function of various polytrops
    -
    -Maxpolydegree = 30
    -X = np.zeros((len(Density),Maxpolydegree))
    -X[:,0] = 1.0
    -estimated_mse_sklearn = np.zeros(Maxpolydegree)
    -polynomial = np.zeros(Maxpolydegree)
    -k =5
    -kfold = KFold(n_splits = k)
    -
    -for polydegree in range(1, Maxpolydegree):
    -    polynomial[polydegree] = polydegree
    -    for degree in range(polydegree):
    -        X[:,degree] = Density**(degree/3.0)
    -        OLS = LinearRegression()
    -# loop over trials in order to estimate the expectation value of the MSE
    -    estimated_mse_folds = cross_val_score(OLS, X, Energies, scoring='neg_mean_squared_error', cv=kfold)
    -#[:, np.newaxis]
    -    estimated_mse_sklearn[polydegree] = np.mean(-estimated_mse_folds)
    -
    -plt.plot(polynomial, np.log10(estimated_mse_sklearn), label='Test Error')
    -plt.xlabel('Polynomial degree')
    -plt.ylabel('log10[MSE]')
    -plt.legend()
    -plt.show()
    -
    -

    -









    - -

    Cross-validation with Ridge

    -

    - - -

    import numpy as np
    -import matplotlib.pyplot as plt
    -from sklearn.model_selection import KFold
    -from sklearn.linear_model import Ridge
    -from sklearn.model_selection import cross_val_score
    -from sklearn.preprocessing import PolynomialFeatures
    -
    -# A seed just to ensure that the random numbers are the same for every run.
    -np.random.seed(3155)
    -# Generate the data.
    -n = 100
    -x = np.linspace(-3, 3, n).reshape(-1, 1)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)
    -# Decide degree on polynomial to fit
    -poly = PolynomialFeatures(degree = 10)
    -
    -# Decide which values of lambda to use
    -nlambdas = 500
    -lambdas = np.logspace(-3, 5, nlambdas)
    -# Initialize a KFold instance
    -k = 5
    -kfold = KFold(n_splits = k)
    -estimated_mse_sklearn = np.zeros(nlambdas)
    -i = 0
    -for lmb in lambdas:
    -    ridge = Ridge(alpha = lmb)
    -    estimated_mse_folds = cross_val_score(ridge, x, y, scoring='neg_mean_squared_error', cv=kfold)
    -    estimated_mse_sklearn[i] = np.mean(-estimated_mse_folds)
    -    i += 1
    -plt.figure()
    -plt.plot(np.log10(lambdas), estimated_mse_sklearn, label = 'cross_val_score')
    -plt.xlabel('log10(lambda)')
    -plt.ylabel('MSE')
    -plt.legend()
    -plt.show()
    -
    -

    - - - - -

    - © 1999-2021, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license -
    - - - - - - diff --git a/doc/src/week37/week37.ipynb b/doc/src/week37/week37.ipynb deleted file mode 100644 index 59ea57c5a..000000000 --- a/doc/src/week37/week37.ipynb +++ /dev/null @@ -1,2095 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# Week 37: Summary of Ridge and Lasso Regression and Resampling Methods\n", - "\n", - " \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 16, 2021**\n", - "\n", - "Copyright 1999-2021, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license\n", - "\n", - "\n", - "\n", - "## Plans for week 37\n", - "\n", - "* Thursday September 16: Summary of Ridge and Lasso with examples and start resampling techniques\n", - "\n", - "* Friday September 17: Resampling methods, Cross-validation, Bootstrapping and jackknife\n", - "\n", - "Recommended Reading:\n", - "1. Lectures on Resampling methods (these lectures)\n", - "\n", - "2. Bishop 1.3 (cross-validation) and 3.2 (bias-variance tradeoff)\n", - "\n", - "3. Hastie et al Chapter 7, here we recommend 7.1-7.5 and 7.10 (cross-validation) and 7.11 (bootstrap). This chapter is better than Bishop's on these topics. Goodfellow et al discuss this in a superficial way in sections 5.2-5.5.\n", - "\n", - "## Thursday September 16, Summary of Ridge and Lasso Regression and start Resampling methods\n", - "\n", - "\n", - "## Deriving OLS from a probability distribution\n", - "\n", - "Our basic assumption when we derived the OLS equations was to assume\n", - "that our output is determined by a given continuous function\n", - "$f(\\boldsymbol{x})$ and a random noise $\\boldsymbol{\\epsilon}$ given by the normal\n", - "distribution with zero mean value and an undetermined variance\n", - "$\\sigma^2$.\n", - "\n", - "We found above that the outputs $\\boldsymbol{y}$ have a mean value given by\n", - "$\\boldsymbol{X}\\hat{\\boldsymbol{\\beta}}$ and variance $\\sigma^2$. Since the entries to\n", - "the design matrix are not stochastic variables, we can assume that the\n", - "probability distribution of our targets is also a normal distribution\n", - "but now with mean value $\\boldsymbol{X}\\hat{\\boldsymbol{\\beta}}$. This means that a\n", - "single output $y_i$ is given by the Gaussian distribution" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "y_i\\sim \\mathcal{N}(\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta}, \\sigma^2)=\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Independent and Identically Distrubuted (iid)\n", - "\n", - "We assume now that the various $y_i$ values are stochastically distributed according to the above Gaussian distribution. \n", - "We define this distribution as" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "p(y_i, \\boldsymbol{X}\\vert\\boldsymbol{\\beta})=\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "which reads as finding the likelihood of an event $y_i$ with the input variables $\\boldsymbol{X}$ given the parameters (to be determined) $\\boldsymbol{\\beta}$.\n", - "\n", - "Since these events are assumed to be independent and identicall distributed we can build the probability distribution function (PDF) for all possible event $\\boldsymbol{y}$ as the product of the single events, that is we have" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "p(\\boldsymbol{y},\\boldsymbol{X}\\vert\\boldsymbol{\\beta})=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}=\\prod_{i=0}^{n-1}p(y_i,\\boldsymbol{X}\\vert\\boldsymbol{\\beta}).\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will write this in a more compact form reserving $\\boldsymbol{D}$ for the domain of events, including the ouputs (targets) and the inputs. That is\n", - "in case we have a simple one-dimensional input and output case" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\\dots, (x_{n-1},y_{n-1})].\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the more general case the various inputs should be replaced by the possible features represented by the input data set $\\boldsymbol{X}$. \n", - "We can now rewrite the above probability as" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "p(\\boldsymbol{D}\\vert\\boldsymbol{\\beta})=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "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}$.\n", - "\n", - "## Maximum Likelihood Estimation (MLE)\n", - "\n", - "In statistics, maximum likelihood estimation (MLE) is a method of\n", - "estimating the parameters of an assumed probability distribution,\n", - "given some observed data. This is achieved by maximizing a likelihood\n", - "function so that, under the assumed statistical model, the observed\n", - "data is the most probable. \n", - "\n", - "\n", - "We will assume here that our events are given by the above Gaussian\n", - "distribution and we will determine the optimal parameters $\\beta$ by\n", - "maximizing the above PDF. However, computing the derivatives of a\n", - "product function is cumbersome and can easily lead to overflow and/or\n", - "underflowproblems, with potentials for loss of numerical precision.\n", - "\n", - "\n", - "In practice, it is more convenient to maximize the logarithm of the\n", - "PDF because it is a monotonically increasing function of the argument.\n", - "Alternatively, and this will be our option, we will minimize the\n", - "negative of the logarithm since this is a monotonically decreasing\n", - "function.\n", - "\n", - "Note also that maximization/minimization of the logarithm of the PDF\n", - "is equivalent to the maximization/minimization of the function itself.\n", - "\n", - "\n", - "\n", - "## A new Cost Function\n", - "\n", - "We could now define a new cost function to minimize, namely the negative logarithm of the above PDF" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "C(\\boldsymbol{\\beta}=-\\log{\\prod_{i=0}^{n-1}p(y_i,\\boldsymbol{X}\\vert\\boldsymbol{\\beta})}=-\\sum_{i=0}^{n-1}\\log{p(y_i,\\boldsymbol{X}\\vert\\boldsymbol{\\beta})},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "which becomes" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "C(\\boldsymbol{\\beta}=\\frac{n}{2}\\log{2\\pi\\sigma^2}+\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "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", - "metadata": {}, - "source": [ - "$$\n", - "\\boldsymbol{X}^T\\left(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\right) =0,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "which leads to the well-known OLS equation for the optimal paramters $\\beta$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\hat{\\boldsymbol{\\beta}}^{\\mathrm{OLS}}=\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y}!\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Bayes' Theorem\n", - "\n", - "If we combine the conditional probability with the marginal probability and the standard product rule, we have" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "p(X\\vert Y)= \\frac{p(X,Y)}{p(Y)},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "which we can rewrite as" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "p(X\\vert Y)= \\frac{p(X,Y)}{\\sum_{i=0}^{n-1}p(Y\\vert X=x_i)p(x_i)}=\\frac{p(Y\\vert X)p(X)}{\\sum_{i=0}^{n-1}p(Y\\vert X=x_i)p(x_i)},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "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$. \n", - "\n", - "## Interpretations of Bayes' Theorem\n", - "\n", - "The quantity $p(Y\\vert X)$ on the right-hand side of the theorem is\n", - "evaluated for the observed data $Y$ and can be viewed as a function of\n", - "the parameter space represented by $X$. This function is not\n", - "necesseraly normalized and is normally called the likelihood function.\n", - "\n", - "The function $p(X)$ on the right hand side is called the prior while the function on the left hand side is the called the posterior probability. The denominator on the right hand side serves as a normalization factor for the posterior distribution.\n", - "\n", - "## Test Function for what happens with OLS, Ridge and Lasso\n", - "\n", - "We will play around with a study of the values for the optimal\n", - "parameters $\\boldsymbol{\\beta}$ using OLS, Ridge and Lasso regression. For\n", - "OLS, you will notice as function of the noise and polynomial degree,\n", - "that the parameters $\\beta$ will fluctuate from order to order in the\n", - "polynomial fit and that for larger and larger polynomial degrees of freedom, the parameters will tend to increase in value for OLS.\n", - "\n", - "For Ridge and Lasso regression, the higher order parameters will typically be reduced, providing thereby less fluctuations from one order to another one." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "editable": true - }, - "outputs": [], - "source": [ - "%matplotlib inline\n", - "\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from sklearn.model_selection import train_test_split\n", - "from sklearn import linear_model\n", - "\n", - "def R2(y_data, y_model):\n", - " return 1 - np.sum((y_data - y_model) ** 2) / np.sum((y_data - np.mean(y_data)) ** 2)\n", - "def MSE(y_data,y_model):\n", - " n = np.size(y_model)\n", - " return np.sum((y_data-y_model)**2)/n\n", - "\n", - "# Make data set.\n", - "n = 10000\n", - "x = np.random.rand(n)\n", - "y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.randn(n)\n", - "\n", - "Maxpolydegree = 5\n", - "X = np.zeros((len(x),Maxpolydegree))\n", - "X[:,0] = 1.0\n", - "\n", - "for polydegree in range(1, Maxpolydegree):\n", - " for degree in range(polydegree):\n", - " X[:,degree] = x**(degree)\n", - "\n", - "\n", - "# We split the data in test and training data\n", - "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)\n", - "\n", - "# matrix inversion to find beta\n", - "OLSbeta = np.linalg.pinv(X_train.T @ X_train) @ X_train.T @ y_train\n", - "print(OLSbeta)\n", - "ypredictOLS = X_test @ OLSbeta\n", - "print(\"Test MSE OLS\")\n", - "print(MSE(y_test,ypredictOLS))\n", - "# Repeat now for Lasso and Ridge regression and various values of the regularization parameter using Scikit-Learn\n", - "# Decide which values of lambda to use\n", - "nlambdas = 4\n", - "MSERidgePredict = np.zeros(nlambdas)\n", - "MSELassoPredict = np.zeros(nlambdas)\n", - "lambdas = np.logspace(-3, 1, nlambdas)\n", - "for i in range(nlambdas):\n", - " lmb = lambdas[i]\n", - " # Make the fit using Ridge and Lasso\n", - " RegRidge = linear_model.Ridge(lmb,fit_intercept=False)\n", - " RegRidge.fit(X_train,y_train)\n", - " RegLasso = linear_model.Lasso(lmb,fit_intercept=False)\n", - " RegLasso.fit(X_train,y_train)\n", - " # and then make the prediction\n", - " ypredictRidge = RegRidge.predict(X_test)\n", - " ypredictLasso = RegLasso.predict(X_test)\n", - " # Compute the MSE and print it\n", - " MSERidgePredict[i] = MSE(y_test,ypredictRidge)\n", - " MSELassoPredict[i] = MSE(y_test,ypredictLasso)\n", - " print(lmb,RegRidge.coef_)\n", - " print(lmb,RegLasso.coef_)\n", - "# Now plot the results\n", - "plt.figure()\n", - "plt.plot(np.log10(lambdas), MSERidgePredict, 'b', label = 'MSE Ridge Test')\n", - "plt.plot(np.log10(lambdas), MSELassoPredict, 'r', label = 'MSE Lasso Test')\n", - "plt.xlabel('log10(lambda)')\n", - "plt.ylabel('MSE')\n", - "plt.legend()\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "How can we understand this? \n", - "\n", - "\n", - "## Rerunning the above code\n", - "\n", - "Let us write out the values of the coefficients $\\beta_i$ as functions\n", - "of the polynomial degree and noise. We will focus only on the Ridge\n", - "results and some few selected values of the hyperparameter $\\lambda$.\n", - "\n", - "If we don't include any noise and run this code for different values\n", - "of the polynomial degree, we notice that the results for $\\beta_i$ do\n", - "not show great changes from one order to the next. This is an\n", - "indication that for higher polynomial orders, our parameters become\n", - "less important.\n", - "\n", - "If we however add noise, what happens is that the polynomial fit is\n", - "trying to adjust the fit to traverse in the best possible way all data\n", - "points. This can lead to large fluctuations in the parameters\n", - "$\\beta_i$ as functions of polynomial order. It will also be reflected\n", - "in a larger value of the variance of each parameter $\\beta_i$. What\n", - "Ridge regression (and Lasso as well) are doing then is to try to\n", - "quench the fluctuations in the parameters of $\\beta_i$ which have a\n", - "large variance (normally for higher orders in the polynomial)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "editable": true - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "import pandas as pd\n", - "from IPython.display import display\n", - "import matplotlib.pyplot as plt\n", - "from sklearn.model_selection import train_test_split\n", - "from sklearn import linear_model\n", - "\n", - "# Make data set.\n", - "n = 1000\n", - "x = np.random.rand(n)\n", - "y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.randn(n)\n", - "\n", - "Maxpolydegree = 5\n", - "X = np.zeros((len(x),Maxpolydegree))\n", - "X[:,0] = 1.0\n", - "\n", - "for polydegree in range(1, Maxpolydegree):\n", - " for degree in range(polydegree):\n", - " X[:,degree] = x**(degree)\n", - "\n", - "\n", - "# We split the data in test and training data\n", - "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)\n", - "\n", - "# Decide which values of lambda to use\n", - "nlambdas = 5\n", - "lambdas = np.logspace(-3, 2, nlambdas)\n", - "for i in range(nlambdas):\n", - " lmb = lambdas[i]\n", - " # Make the fit using Ridge only\n", - " RegRidge = linear_model.Ridge(lmb,fit_intercept=False)\n", - " RegRidge.fit(X_train,y_train)\n", - " # and then make the prediction\n", - " ypredictRidge = RegRidge.predict(X_test)\n", - " Coeffs = np.array(RegRidge.coef_)\n", - " BetaValues = pd.DataFrame(Coeffs)\n", - " BetaValues.columns = ['beta']\n", - " display(BetaValues)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Invoking Bayes' theorem\n", - "\n", - "Using Bayes' theorem we can gain a better intuition about Ridge and Lasso regression. \n", - "\n", - "For ordinary least squares we postulated that the maximum likelihood for the doamin of events $\\boldsymbol{D}$ (one-dimensional case)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\\dots, (x_{n-1},y_{n-1})],\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "is given by" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "p(\\boldsymbol{D}\\vert\\boldsymbol{\\beta})=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "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", - "metadata": {}, - "source": [ - "$$\n", - "p(\\boldsymbol{\\beta}\\vert\\boldsymbol{D}).\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Bayes' theorem comes to our rescue here since (omitting the normalization constant)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "p(\\boldsymbol{\\beta}\\vert\\boldsymbol{D})\\propto p(\\boldsymbol{D}\\vert\\boldsymbol{\\beta})p(\\boldsymbol{\\beta}).\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have a model for $p(\\boldsymbol{D}\\vert\\boldsymbol{\\beta})$ but need one for the **prior** $p(\\boldsymbol{\\beta}$! \n", - "\n", - "\n", - "## Ridge and Bayes\n", - "\n", - "With the posterior probability defined by a likelihood which we have\n", - "already modeled and an unknown prior, we are now ready to make\n", - "additional models for the prior.\n", - "\n", - "We can, based on our discussions of the variance of $\\boldsymbol{\\beta}$ and the mean value, assume that the prior for the values $\\boldsymbol{\\beta}$ is given by a Gaussian with mean value zero and variance $\\tau^2$, that is" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "p(\\boldsymbol{\\beta})=\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\beta_j^2}{2\\tau^2}\\right)}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Our posterior probability becomes then (omitting the normalization factor which is just a constant)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "p(\\boldsymbol{\\beta\\vert\\boldsymbol{D})}=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\beta_j^2}{2\\tau^2}\\right)}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can now optimize this quantity with respect to $\\boldsymbol{\\beta}$. As we\n", - "did for OLS, this is most conveniently done by taking the negative\n", - "logarithm of the posterior probability. Doing so and leaving out the\n", - "constants terms that do not depend on $\\beta$, we have" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "C(\\boldsymbol{\\beta})=\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}+\\frac{1}{2\\tau^2}\\vert\\vert\\boldsymbol{\\beta}\\vert\\vert_2^2,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "and replacing $1/2\\tau^2$ with $\\lambda$ we have" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "C(\\boldsymbol{\\beta})=\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}+\\lambda\\vert\\vert\\boldsymbol{\\beta}\\vert\\vert_2^2,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "which is our Ridge cost function! Nice, isn't it?\n", - "\n", - "## Lasso and Bayes\n", - "\n", - "To derive the Lasso cost function, we simply replace the Gaussian prior with an exponential distribution ([Laplace in this case](https://en.wikipedia.org/wiki/Laplace_distribution)) with zero mean value, that is" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "p(\\boldsymbol{\\beta})=\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\vert\\beta_j\\vert}{\\tau}\\right)}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Our posterior probability becomes then (omitting the normalization factor which is just a constant)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "p(\\boldsymbol{\\beta}\\vert\\boldsymbol{D})=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\vert\\beta_j\\vert}{\\tau}\\right)}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Taking the negative\n", - "logarithm of the posterior probability and leaving out the\n", - "constants terms that do not depend on $\\beta$, we have" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "C(\\boldsymbol{\\beta}=\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}+\\frac{1}{\\tau}\\vert\\vert\\boldsymbol{\\beta}\\vert\\vert_1,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "and replacing $1/\\tau$ with $\\lambda$ we have" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "C(\\boldsymbol{\\beta}=\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}+\\lambda\\vert\\vert\\boldsymbol{\\beta}\\vert\\vert_1,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "which is our Lasso cost function! \n", - "\n", - "\n", - "\n", - "## Why resampling methods\n", - "\n", - "Before we proceed, we need to rethink what we have been doing. In our\n", - "eager to fit the data, we have omitted several important elements in\n", - "our regression analysis. In what follows we will\n", - "1. look at statistical properties, including a discussion of mean values, variance and the so-called bias-variance tradeoff\n", - "\n", - "2. introduce resampling techniques like cross-validation, bootstrapping and jackknife and more\n", - "\n", - "and discuss how to select a given model (one of the difficult parts in machine learning).\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "## Resampling methods\n", - "Resampling methods are an indispensable tool in modern\n", - "statistics. They involve repeatedly drawing samples from a training\n", - "set and refitting a model of interest on each sample in order to\n", - "obtain additional information about the fitted model. For example, in\n", - "order to estimate the variability of a linear regression fit, we can\n", - "repeatedly draw different samples from the training data, fit a linear\n", - "regression to each new sample, and then examine the extent to which\n", - "the resulting fits differ. Such an approach may allow us to obtain\n", - "information that would not be available from fitting the model only\n", - "once using the original training sample.\n", - "\n", - "Two resampling methods are often used in Machine Learning analyses,\n", - "1. The **bootstrap method**\n", - "\n", - "2. and **Cross-Validation**\n", - "\n", - "In addition there are several other methods such as the Jackknife and the Blocking methods. We will discuss in particular\n", - "cross-validation and the bootstrap method.\n", - "\n", - "\n", - "\n", - "\n", - "## Resampling approaches can be computationally expensive\n", - "\n", - "Resampling approaches can be computationally expensive, because they\n", - "involve fitting the same statistical method multiple times using\n", - "different subsets of the training data. However, due to recent\n", - "advances in computing power, the computational requirements of\n", - "resampling methods generally are not prohibitive. In this chapter, we\n", - "discuss two of the most commonly used resampling methods,\n", - "cross-validation and the bootstrap. Both methods are important tools\n", - "in the practical application of many statistical learning\n", - "procedures. For example, cross-validation can be used to estimate the\n", - "test error associated with a given statistical learning method in\n", - "order to evaluate its performance, or to select the appropriate level\n", - "of flexibility. The process of evaluating a model’s performance is\n", - "known as model assessment, whereas the process of selecting the proper\n", - "level of flexibility for a model is known as model selection. The\n", - "bootstrap is widely used.\n", - "\n", - "\n", - "\n", - "## Why resampling methods ?\n", - "**Statistical analysis.**\n", - "\n", - "\n", - "* Our simulations can be treated as *computer experiments*. This is particularly the case for Monte Carlo methods which are widely used in statistical analyses.\n", - "\n", - "* The results can be analysed with the same statistical tools as we would use when analysing experimental data.\n", - "\n", - "* As in all experiments, we are looking for expectation values and an estimate of how accurate they are, i.e., possible sources for errors.\n", - "\n", - " \n", - "\n", - "## Statistical analysis\n", - "\n", - "* As in other experiments, many numerical experiments have two classes of errors:\n", - "\n", - " * Statistical errors\n", - "\n", - " * Systematical errors\n", - "\n", - "\n", - "* Statistical errors can be estimated using standard tools from statistics\n", - "\n", - "* Systematical errors are method specific and must be treated differently from case to case.\n", - "\n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "## Resampling methods\n", - "\n", - "With all these analytical equations for both the OLS and Ridge\n", - "regression, we will now outline how to assess a given model. This will\n", - "lead to a discussion of the so-called bias-variance tradeoff (see\n", - "below) and so-called resampling methods.\n", - "\n", - "One of the quantities we have discussed as a way to measure errors is\n", - "the mean-squared error (MSE), mainly used for fitting of continuous\n", - "functions. Another choice is the absolute error.\n", - "\n", - "In the discussions below we will focus on the MSE and in particular since we will split the data into test and training data,\n", - "we discuss the\n", - "1. prediction error or simply the **test error** $\\mathrm{Err_{Test}}$, where we have a fixed training set and the test error is the MSE arising from the data reserved for testing. We discuss also the \n", - "\n", - "2. training error $\\mathrm{Err_{Train}}$, which is the average loss over the training data.\n", - "\n", - "As our model becomes more and more complex, more of the training data tends to used. The training may thence adapt to more complicated structures in the data. This may lead to a decrease in the bias (see below for code example) and a slight increase of the variance for the test error.\n", - "For a certain level of complexity the test error will reach minimum, before starting to increase again. The\n", - "training error reaches a saturation.\n", - "\n", - "\n", - "\n", - "\n", - "## Resampling methods: Jackknife and Bootstrap\n", - "\n", - "Two famous\n", - "resampling methods are the **independent bootstrap** and **the jackknife**. \n", - "\n", - "The jackknife is a special case of the independent bootstrap. Still, the jackknife was made\n", - "popular prior to the independent bootstrap. And as the popularity of\n", - "the independent bootstrap soared, new variants, such as **the dependent bootstrap** have also been developed..\n", - "\n", - "The Jackknife and independent bootstrap work for\n", - "independent, identically distributed random variables.\n", - "If these conditions are not\n", - "satisfied, the methods will fail. Yet, it should be said that if the data are\n", - "independent, identically distributed, and we only want to estimate the\n", - "variance of $\\overline{X}$ (which often is the case), then there is no\n", - "need for bootstrapping. \n", - "\n", - "## Resampling methods: Jackknife\n", - "\n", - "The Jackknife works by making many replicas of the estimator $\\widehat{\\beta}$. \n", - "The jackknife is a resampling method where we systematically leave out one observation from the vector of observed values $\\boldsymbol{x} = (x_1,x_2,\\cdots,X_n)$. \n", - "Let $\\boldsymbol{x}_i$ denote the vector" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\boldsymbol{x}_i = (x_1,x_2,\\cdots,x_{i-1},x_{i+1},\\cdots,x_n),\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "which equals the vector $\\boldsymbol{x}$ with the exception that observation\n", - "number $i$ is left out. Using this notation, define\n", - "$\\widehat{\\beta}_i$ to be the estimator\n", - "$\\widehat{\\beta}$ computed using $\\vec{X}_i$. \n", - "\n", - "\n", - "## Jackknife code example" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "editable": true - }, - "outputs": [], - "source": [ - "from numpy import *\n", - "from numpy.random import randint, randn\n", - "from time import time\n", - "\n", - "def jackknife(data, stat):\n", - " n = len(data);t = zeros(n); inds = arange(n); t0 = time()\n", - " ## 'jackknifing' by leaving out an observation for each i \n", - " for i in range(n):\n", - " t[i] = stat(delete(data,i) )\n", - "\n", - " # analysis \n", - " print(\"Runtime: %g sec\" % (time()-t0)); print(\"Jackknife Statistics :\")\n", - " print(\"original bias std. error\")\n", - " print(\"%8g %14g %15g\" % (stat(data),(n-1)*mean(t)/n, (n*var(t))**.5))\n", - "\n", - " return t\n", - "\n", - "\n", - "# Returns mean of data samples \n", - "def stat(data):\n", - " return mean(data)\n", - "\n", - "\n", - "mu, sigma = 100, 15\n", - "datapoints = 10000\n", - "x = mu + sigma*random.randn(datapoints)\n", - "# jackknife returns the data sample \n", - "t = jackknife(x, stat)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Resampling methods: Bootstrap\n", - "Bootstrapping is a non-parametric approach to statistical inference\n", - "that substitutes computation for more traditional distributional\n", - "assumptions and asymptotic results. Bootstrapping offers a number of\n", - "advantages: \n", - "1. The bootstrap is quite general, although there are some cases in which it fails. \n", - "\n", - "2. Because it does not require distributional assumptions (such as normally distributed errors), the bootstrap can provide more accurate inferences when the data are not well behaved or when the sample size is small. \n", - "\n", - "3. It is possible to apply the bootstrap to statistics with sampling distributions that are difficult to derive, even asymptotically. \n", - "\n", - "4. It is relatively simple to apply the bootstrap to complex data-collection plans (such as stratified and clustered samples).\n", - "\n", - "\n", - "\n", - "The textbook by [Davison on the Bootstrap Methods and their Applications](https://www.cambridge.org/core/books/bootstrap-methods-and-their-application/ED2FD043579F27952363566DC09CBD6A) provides many more insights and proofs. In this course we will take a more practical approach and use the results and theorems provided in the literature. For those interested in reading more about the bootstrap methods, we recommend the above text and the one by [Efron and Tibshirani](https://www.routledge.com/An-Introduction-to-the-Bootstrap/Efron-Tibshirani/p/book/9780412042317).\n", - "\n", - "\n", - "Before we proceed however, we need to remind ourselves about a central theorem in statistics, namely the so-called **central limit theorem**.\n", - "\n", - "## The Central Limit Theorem\n", - "\n", - "\n", - "Suppose we have a PDF $p(x)$ from which we generate a series $N$\n", - "of averages $\\langle x_i \\rangle$. Each mean value $\\langle x_i \\rangle$\n", - "is viewed as the average of a specific measurement, e.g., throwing \n", - "dice 100 times and then taking the average value, or producing a certain\n", - "amount of random numbers. \n", - "For notational ease, we set $\\langle x_i \\rangle=x_i$ in the discussion\n", - "which follows. \n", - "\n", - "If we compute the mean $z$ of $m$ such mean values $x_i$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "z=\\frac{x_1+x_2+\\dots+x_m}{m},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "the question we pose is which is the PDF of the new variable $z$.\n", - "\n", - "## Finding the Limit\n", - "\n", - "The probability of obtaining an average value $z$ is the product of the \n", - "probabilities of obtaining arbitrary individual mean values $x_i$,\n", - "but with the constraint that the average is $z$. We can express this through\n", - "the following expression" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\tilde{p}(z)=\\int dx_1p(x_1)\\int dx_2p(x_2)\\dots\\int dx_mp(x_m)\n", - " \\delta(z-\\frac{x_1+x_2+\\dots+x_m}{m}),\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "where the $\\delta$-function enbodies the constraint that the mean is $z$.\n", - "All measurements that lead to each individual $x_i$ are expected to\n", - "be independent, which in turn means that we can express $\\tilde{p}$ as the \n", - "product of individual $p(x_i)$. The independence assumption is important in the derivation of the central limit theorem.\n", - "\n", - "\n", - "## Rewriting the $\\delta$-function\n", - "\n", - "If we use the integral expression for the $\\delta$-function" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\delta(z-\\frac{x_1+x_2+\\dots+x_m}{m})=\\frac{1}{2\\pi}\\int_{-\\infty}^{\\infty}\n", - " dq\\exp{\\left(iq(z-\\frac{x_1+x_2+\\dots+x_m}{m})\\right)},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "and inserting $e^{i\\mu q-i\\mu q}$ where $\\mu$ is the mean value\n", - "we arrive at" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\tilde{p}(z)=\\frac{1}{2\\pi}\\int_{-\\infty}^{\\infty}\n", - " dq\\exp{\\left(iq(z-\\mu)\\right)}\\left[\\int_{-\\infty}^{\\infty}\n", - " dxp(x)\\exp{\\left(iq(\\mu-x)/m\\right)}\\right]^m,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "with the integral over $x$ resulting in" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\int_{-\\infty}^{\\infty}dxp(x)\\exp{\\left(iq(\\mu-x)/m\\right)}=\n", - " \\int_{-\\infty}^{\\infty}dxp(x)\n", - " \\left[1+\\frac{iq(\\mu-x)}{m}-\\frac{q^2(\\mu-x)^2}{2m^2}+\\dots\\right].\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Identifying Terms\n", - "\n", - "The second term on the rhs disappears since this is just the mean and \n", - "employing the definition of $\\sigma^2$ we have" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\int_{-\\infty}^{\\infty}dxp(x)e^{\\left(iq(\\mu-x)/m\\right)}=\n", - " 1-\\frac{q^2\\sigma^2}{2m^2}+\\dots,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "resulting in" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\left[\\int_{-\\infty}^{\\infty}dxp(x)\\exp{\\left(iq(\\mu-x)/m\\right)}\\right]^m\\approx\n", - " \\left[1-\\frac{q^2\\sigma^2}{2m^2}+\\dots \\right]^m,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "and in the limit $m\\rightarrow \\infty$ we obtain" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\tilde{p}(z)=\\frac{1}{\\sqrt{2\\pi}(\\sigma/\\sqrt{m})}\n", - " \\exp{\\left(-\\frac{(z-\\mu)^2}{2(\\sigma/\\sqrt{m})^2}\\right)},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "which is the normal distribution with variance\n", - "$\\sigma^2_m=\\sigma^2/m$, where $\\sigma$ is the variance of the PDF $p(x)$\n", - "and $\\mu$ is also the mean of the PDF $p(x)$. \n", - "\n", - "## Wrapping it up\n", - "\n", - "Thus, the central limit theorem states that the PDF $\\tilde{p}(z)$ of\n", - "the average of $m$ random values corresponding to a PDF $p(x)$ \n", - "is a normal distribution whose mean is the \n", - "mean value of the PDF $p(x)$ and whose variance is the variance\n", - "of the PDF $p(x)$ divided by $m$, the number of values used to compute $z$.\n", - "\n", - "The theorem is satisfied by a large class of PDFs. Note however that for a\n", - "finite $m$, it is not always possible to find a closed expression for\n", - "$\\tilde{p}(x)$.\n", - "The central limit theorem leads then to the well-known expression for the\n", - "standard deviation, given by" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\sigma_m=\n", - "\\frac{\\sigma}{\\sqrt{m}}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The latter is true only if the average value is known exactly. This is obtained in the limit\n", - "$m\\rightarrow \\infty$ only. Because the mean and the variance are measured quantities we obtain \n", - "the familiar expression in statistics" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\sigma_m\\approx \n", - "\\frac{\\sigma}{\\sqrt{m-1}}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In many cases however the above estimate for the standard deviation,\n", - "in particular if correlations are strong, may be too simplistic.\n", - "\n", - "## Confidence Intervals\n", - "\n", - "\n", - "## Resampling methods: Bootstrap background\n", - "\n", - "Since $\\widehat{\\beta} = \\widehat{\\beta}(\\boldsymbol{X})$ is a function of random variables,\n", - "$\\widehat{\\beta}$ itself must be a random variable. Thus it has\n", - "a pdf, call this function $p(\\boldsymbol{t})$. The aim of the bootstrap is to\n", - "estimate $p(\\boldsymbol{t})$ by the relative frequency of\n", - "$\\widehat{\\beta}$. You can think of this as using a histogram\n", - "in the place of $p(\\boldsymbol{t})$. If the relative frequency closely\n", - "resembles $p(\\vec{t})$, then using numerics, it is straight forward to\n", - "estimate all the interesting parameters of $p(\\boldsymbol{t})$ using point\n", - "estimators. \n", - "\n", - "\n", - "## Resampling methods: More Bootstrap background\n", - "\n", - "In the case that $\\widehat{\\beta}$ has\n", - "more than one component, and the components are independent, we use the\n", - "same estimator on each component separately. If the probability\n", - "density function of $X_i$, $p(x)$, had been known, then it would have\n", - "been straightforward to do this by: \n", - "1. Drawing lots of numbers from $p(x)$, suppose we call one such set of numbers $(X_1^*, X_2^*, \\cdots, X_n^*)$. \n", - "\n", - "2. Then using these numbers, we could compute a replica of $\\widehat{\\beta}$ called $\\widehat{\\beta}^*$. \n", - "\n", - "By repeated use of the above two points, many\n", - "estimates of $\\widehat{\\beta}$ can be obtained. The\n", - "idea is to use the relative frequency of $\\widehat{\\beta}^*$\n", - "(think of a histogram) as an estimate of $p(\\boldsymbol{t})$.\n", - "\n", - "## Resampling methods: Bootstrap approach\n", - "\n", - "But\n", - "unless there is enough information available about the process that\n", - "generated $X_1,X_2,\\cdots,X_n$, $p(x)$ is in general\n", - "unknown. Therefore, [Efron in 1979](https://projecteuclid.org/euclid.aos/1176344552) asked the\n", - "question: What if we replace $p(x)$ by the relative frequency\n", - "of the observation $X_i$?\n", - "\n", - "If we draw observations in accordance with\n", - "the relative frequency of the observations, will we obtain the same\n", - "result in some asymptotic sense? The answer is yes.\n", - "\n", - "\n", - "\n", - "## Resampling methods: Bootstrap steps\n", - "\n", - "The independent bootstrap works like this: \n", - "\n", - "1. Draw with replacement $n$ numbers for the observed variables $\\boldsymbol{x} = (x_1,x_2,\\cdots,x_n)$. \n", - "\n", - "2. Define a vector $\\boldsymbol{x}^*$ containing the values which were drawn from $\\boldsymbol{x}$. \n", - "\n", - "3. Using the vector $\\boldsymbol{x}^*$ compute $\\widehat{\\beta}^*$ by evaluating $\\widehat \\beta$ under the observations $\\boldsymbol{x}^*$. \n", - "\n", - "4. Repeat this process $k$ times. \n", - "\n", - "When you are done, you can draw a histogram of the relative frequency\n", - "of $\\widehat \\beta^*$. This is your estimate of the probability\n", - "distribution $p(t)$. Using this probability distribution you can\n", - "estimate any statistics thereof. In principle you never draw the\n", - "histogram of the relative frequency of $\\widehat{\\beta}^*$. Instead\n", - "you use the estimators corresponding to the statistic of interest. For\n", - "example, if you are interested in estimating the variance of $\\widehat\n", - "\\beta$, apply the etsimator $\\widehat \\sigma^2$ to the values\n", - "$\\widehat \\beta^*$.\n", - "\n", - "\n", - "## Code example for the Bootstrap method\n", - "\n", - "The following code starts with a Gaussian distribution with mean value\n", - "$\\mu =100$ and variance $\\sigma=15$. We use this to generate the data\n", - "used in the bootstrap analysis. The bootstrap analysis returns a data\n", - "set after a given number of bootstrap operations (as many as we have\n", - "data points). This data set consists of estimated mean values for each\n", - "bootstrap operation. The histogram generated by the bootstrap method\n", - "shows that the distribution for these mean values is also a Gaussian,\n", - "centered around the mean value $\\mu=100$ but with standard deviation\n", - "$\\sigma/\\sqrt{n}$, where $n$ is the number of bootstrap samples (in\n", - "this case the same as the number of original data points). The value\n", - "of the standard deviation is what we expect from the central limit\n", - "theorem." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "editable": true - }, - "outputs": [], - "source": [ - "from numpy import *\n", - "from numpy.random import randint, randn\n", - "from time import time\n", - "import matplotlib.mlab as mlab\n", - "import matplotlib.pyplot as plt\n", - "\n", - "# Returns mean of bootstrap samples # Alternatively, we can run it using Scikit-Learn's function resample # See the examples below\n", - "\n", - "def statistics(data):\n", - " return mean(data)\n", - "\n", - "\n", - "# Bootstrap algorithm\n", - "def bootstrap(data, statistic, R):\n", - " t = zeros(R); n = len(data); inds = arange(n); t0 = time()\n", - " # non-parametric bootstrap \n", - " for i in range(R):\n", - " t[i] = statistic(data[randint(0,n,n)])\n", - "\n", - " # analysis \n", - " print(\"Runtime: %g sec\" % (time()-t0)); print(\"Bootstrap Statistics :\")\n", - " print(\"original bias std. error\")\n", - " print(\"%8g %8g %14g %15g\" % (statistic(data), std(data),mean(t),std(t)))\n", - " return t\n", - "\n", - "\n", - "mu, sigma = 100, 15\n", - "datapoints = 10000\n", - "x = mu + sigma*random.randn(datapoints)\n", - "# bootstrap returns the data sample \n", - "t = bootstrap(x, statistics, datapoints)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We see that our new variance and from that the standard deviation, agrees with the central limit theorem.\n", - "\n", - "## Plotting the Histogram" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "editable": true - }, - "outputs": [], - "source": [ - "# the histogram of the bootstrapped data \n", - "n, binsboot, patches = plt.hist(t, 50, normed=1, facecolor='red', alpha=0.75)\n", - "\n", - "# add a 'best fit' line \n", - "y = mlab.normpdf( binsboot, mean(t), std(t))\n", - "lt = plt.plot(binsboot, y, 'r--', linewidth=1)\n", - "plt.xlabel('Smarts')\n", - "plt.ylabel('Probability')\n", - "plt.axis([99.5, 100.6, 0, 3.0])\n", - "plt.grid(True)\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## The bias-variance tradeoff\n", - "\n", - "\n", - "We will discuss the bias-variance tradeoff in the context of\n", - "continuous predictions such as regression. However, many of the\n", - "intuitions and ideas discussed here also carry over to classification\n", - "tasks. Consider a dataset $\\mathcal{L}$ consisting of the data\n", - "$\\mathbf{X}_\\mathcal{L}=\\{(y_j, \\boldsymbol{x}_j), j=0\\ldots n-1\\}$. \n", - "\n", - "Let us assume that the true data is generated from a noisy model" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\boldsymbol{y}=f(\\boldsymbol{x}) + \\boldsymbol{\\epsilon}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "where $\\epsilon$ is normally distributed with mean zero and standard deviation $\\sigma^2$.\n", - "\n", - "In our derivation of the ordinary least squares method we defined then\n", - "an approximation to the function $f$ in terms of the parameters\n", - "$\\boldsymbol{\\beta}$ and the design matrix $\\boldsymbol{X}$ which embody our model,\n", - "that is $\\boldsymbol{\\tilde{y}}=\\boldsymbol{X}\\boldsymbol{\\beta}$. \n", - "\n", - "Thereafter we found the parameters $\\boldsymbol{\\beta}$ by optimizing the means squared error via the so-called cost function" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "C(\\boldsymbol{X},\\boldsymbol{\\beta}) =\\frac{1}{n}\\sum_{i=0}^{n-1}(y_i-\\tilde{y}_i)^2=\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right].\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can rewrite this as" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right]=\\frac{1}{n}\\sum_i(f_i-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2+\\frac{1}{n}\\sum_i(\\tilde{y}_i-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2+\\sigma^2.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The three terms represent the square of the bias of the learning\n", - "method, which can be thought of as the error caused by the simplifying\n", - "assumptions built into the method. The second term represents the\n", - "variance of the chosen model and finally the last terms is variance of\n", - "the error $\\boldsymbol{\\epsilon}$.\n", - "\n", - "To derive this equation, we need to recall that the variance of $\\boldsymbol{y}$ and $\\boldsymbol{\\epsilon}$ are both equal to $\\sigma^2$. The mean value of $\\boldsymbol{\\epsilon}$ is by definition equal to zero. Furthermore, the function $f$ is not a stochastics variable, idem for $\\boldsymbol{\\tilde{y}}$.\n", - "We use a more compact notation in terms of the expectation value" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right]=\\mathbb{E}\\left[(\\boldsymbol{f}+\\boldsymbol{\\epsilon}-\\boldsymbol{\\tilde{y}})^2\\right],\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "and adding and subtracting $\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right]$ we get" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right]=\\mathbb{E}\\left[(\\boldsymbol{f}+\\boldsymbol{\\epsilon}-\\boldsymbol{\\tilde{y}}+\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right]-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2\\right],\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "which, using the abovementioned expectation values can be rewritten as" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right]=\\mathbb{E}\\left[(\\boldsymbol{y}-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2\\right]+\\mathrm{Var}\\left[\\boldsymbol{\\tilde{y}}\\right]+\\sigma^2,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "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}$.\n", - "\n", - "\n", - "## A way to Read the Bias-Variance Tradeoff\n", - "\n", - "\n", - "\n", - "

    Figure 1:

    \n", - "\n", - "\n", - "\n", - "## Example code for Bias-Variance tradeoff" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "editable": true - }, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "from sklearn.linear_model import LinearRegression, Ridge, Lasso\n", - "from sklearn.preprocessing import PolynomialFeatures\n", - "from sklearn.model_selection import train_test_split\n", - "from sklearn.pipeline import make_pipeline\n", - "from sklearn.utils import resample\n", - "\n", - "np.random.seed(2018)\n", - "\n", - "n = 500\n", - "n_boostraps = 100\n", - "degree = 18 # A quite high value, just to show.\n", - "noise = 0.1\n", - "\n", - "# Make data set.\n", - "x = np.linspace(-1, 3, n).reshape(-1, 1)\n", - "y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2) + np.random.normal(0, 0.1, x.shape)\n", - "\n", - "# Hold out some test data that is never used in training.\n", - "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)\n", - "\n", - "# Combine x transformation and model into one operation.\n", - "# Not neccesary, but convenient.\n", - "model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))\n", - "\n", - "# The following (m x n_bootstraps) matrix holds the column vectors y_pred\n", - "# for each bootstrap iteration.\n", - "y_pred = np.empty((y_test.shape[0], n_boostraps))\n", - "for i in range(n_boostraps):\n", - " x_, y_ = resample(x_train, y_train)\n", - "\n", - " # Evaluate the new model on the same test data each time.\n", - " y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel()\n", - "\n", - "# Note: Expectations and variances taken w.r.t. different training\n", - "# data sets, hence the axis=1. Subsequent means are taken across the test data\n", - "# set in order to obtain a total value, but before this we have error/bias/variance\n", - "# calculated per data point in the test set.\n", - "# Note 2: The use of keepdims=True is important in the calculation of bias as this \n", - "# maintains the column vector form. Dropping this yields very unexpected results.\n", - "error = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) )\n", - "bias = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 )\n", - "variance = np.mean( np.var(y_pred, axis=1, keepdims=True) )\n", - "print('Error:', error)\n", - "print('Bias^2:', bias)\n", - "print('Var:', variance)\n", - "print('{} >= {} + {} = {}'.format(error, bias, variance, bias+variance))\n", - "\n", - "plt.plot(x[::5, :], y[::5, :], label='f(x)')\n", - "plt.scatter(x_test, y_test, label='Data points')\n", - "plt.scatter(x_test, np.mean(y_pred, axis=1), label='Pred')\n", - "plt.legend()\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Understanding what happens" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "editable": true - }, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "from sklearn.linear_model import LinearRegression, Ridge, Lasso\n", - "from sklearn.preprocessing import PolynomialFeatures\n", - "from sklearn.model_selection import train_test_split\n", - "from sklearn.pipeline import make_pipeline\n", - "from sklearn.utils import resample\n", - "\n", - "np.random.seed(2018)\n", - "\n", - "n = 40\n", - "n_boostraps = 100\n", - "maxdegree = 14\n", - "\n", - "\n", - "# Make data set.\n", - "x = np.linspace(-3, 3, n).reshape(-1, 1)\n", - "y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)\n", - "error = np.zeros(maxdegree)\n", - "bias = np.zeros(maxdegree)\n", - "variance = np.zeros(maxdegree)\n", - "polydegree = np.zeros(maxdegree)\n", - "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)\n", - "\n", - "for degree in range(maxdegree):\n", - " model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))\n", - " y_pred = np.empty((y_test.shape[0], n_boostraps))\n", - " for i in range(n_boostraps):\n", - " x_, y_ = resample(x_train, y_train)\n", - " y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel()\n", - "\n", - " polydegree[degree] = degree\n", - " error[degree] = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) )\n", - " bias[degree] = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 )\n", - " variance[degree] = np.mean( np.var(y_pred, axis=1, keepdims=True) )\n", - " print('Polynomial degree:', degree)\n", - " print('Error:', error[degree])\n", - " print('Bias^2:', bias[degree])\n", - " print('Var:', variance[degree])\n", - " print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree]))\n", - "\n", - "plt.plot(polydegree, error, label='Error')\n", - "plt.plot(polydegree, bias, label='bias')\n", - "plt.plot(polydegree, variance, label='Variance')\n", - "plt.legend()\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## Summing up\n", - "\n", - "\n", - "\n", - "\n", - "The bias-variance tradeoff summarizes the fundamental tension in\n", - "machine learning, particularly supervised learning, between the\n", - "complexity of a model and the amount of training data needed to train\n", - "it. Since data is often limited, in practice it is often useful to\n", - "use a less-complex model with higher bias, that is a model whose asymptotic\n", - "performance is worse than another model because it is easier to\n", - "train and less sensitive to sampling noise arising from having a\n", - "finite-sized training dataset (smaller variance). \n", - "\n", - "\n", - "\n", - "The above equations tell us that in\n", - "order to minimize the expected test error, we need to select a\n", - "statistical learning method that simultaneously achieves low variance\n", - "and low bias. Note that variance is inherently a nonnegative quantity,\n", - "and squared bias is also nonnegative. Hence, we see that the expected\n", - "test MSE can never lie below $Var(\\epsilon)$, the irreducible error.\n", - "\n", - "\n", - "What do we mean by the variance and bias of a statistical learning\n", - "method? The variance refers to the amount by which our model would change if we\n", - "estimated it using a different training data set. Since the training\n", - "data are used to fit the statistical learning method, different\n", - "training data sets will result in a different estimate. But ideally the\n", - "estimate for our model should not vary too much between training\n", - "sets. However, if a method has high variance then small changes in\n", - "the training data can result in large changes in the model. In general, more\n", - "flexible statistical methods have higher variance.\n", - "\n", - "\n", - "You may also find this recent [article](https://www.pnas.org/content/116/32/15849) of interest.\n", - "\n", - "## Another Example from Scikit-Learn's Repository" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "editable": true - }, - "outputs": [], - "source": [ - "\"\"\"\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", - "\n", - "print(__doc__)\n", - "\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from sklearn.pipeline import Pipeline\n", - "from sklearn.preprocessing import PolynomialFeatures\n", - "from sklearn.linear_model import LinearRegression\n", - "from sklearn.model_selection import cross_val_score\n", - "\n", - "\n", - "def true_fun(X):\n", - " return np.cos(1.5 * np.pi * X)\n", - "\n", - "np.random.seed(0)\n", - "\n", - "n_samples = 30\n", - "degrees = [1, 4, 15]\n", - "\n", - "X = np.sort(np.random.rand(n_samples))\n", - "y = true_fun(X) + np.random.randn(n_samples) * 0.1\n", - "\n", - "plt.figure(figsize=(14, 5))\n", - "for i in range(len(degrees)):\n", - " ax = plt.subplot(1, len(degrees), i + 1)\n", - " plt.setp(ax, xticks=(), yticks=())\n", - "\n", - " polynomial_features = PolynomialFeatures(degree=degrees[i],\n", - " include_bias=False)\n", - " linear_regression = LinearRegression()\n", - " pipeline = Pipeline([(\"polynomial_features\", polynomial_features),\n", - " (\"linear_regression\", linear_regression)])\n", - " pipeline.fit(X[:, np.newaxis], y)\n", - "\n", - " # Evaluate the models using crossvalidation\n", - " scores = cross_val_score(pipeline, X[:, np.newaxis], y,\n", - " scoring=\"neg_mean_squared_error\", cv=10)\n", - "\n", - " X_test = np.linspace(0, 1, 100)\n", - " plt.plot(X_test, pipeline.predict(X_test[:, np.newaxis]), label=\"Model\")\n", - " plt.plot(X_test, true_fun(X_test), label=\"True function\")\n", - " plt.scatter(X, y, edgecolor='b', s=20, label=\"Samples\")\n", - " plt.xlabel(\"x\")\n", - " plt.ylabel(\"y\")\n", - " plt.xlim((0, 1))\n", - " plt.ylim((-2, 2))\n", - " plt.legend(loc=\"best\")\n", - " plt.title(\"Degree {}\\nMSE = {:.2e}(+/- {:.2e})\".format(\n", - " degrees[i], -scores.mean(), scores.std()))\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## Various steps in cross-validation\n", - "\n", - "When the repetitive splitting of the data set is done randomly,\n", - "samples may accidently end up in a fast majority of the splits in\n", - "either training or test set. Such samples may have an unbalanced\n", - "influence on either model building or prediction evaluation. To avoid\n", - "this $k$-fold cross-validation structures the data splitting. The\n", - "samples are divided into $k$ more or less equally sized exhaustive and\n", - "mutually exclusive subsets. In turn (at each split) one of these\n", - "subsets plays the role of the test set while the union of the\n", - "remaining subsets constitutes the training set. Such a splitting\n", - "warrants a balanced representation of each sample in both training and\n", - "test set over the splits. Still the division into the $k$ subsets\n", - "involves a degree of randomness. This may be fully excluded when\n", - "choosing $k=n$. This particular case is referred to as leave-one-out\n", - "cross-validation (LOOCV). \n", - "\n", - "\n", - "## How to set up the cross-validation for Ridge and/or Lasso\n", - "\n", - "* Define a range of interest for the penalty parameter.\n", - "\n", - "* Divide the data set into training and test set comprising samples $\\{1, \\ldots, n\\} \\setminus i$ and $\\{ i \\}$, respectively.\n", - "\n", - "* Fit the linear regression model by means of ridge estimation for each $\\lambda$ in the grid using the training set, and the corresponding estimate of the error variance $\\boldsymbol{\\sigma}_{-i}^2(\\lambda)$, as" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\begin{align*}\n", - "\\boldsymbol{\\beta}_{-i}(\\lambda) & = ( \\boldsymbol{X}_{-i, \\ast}^{T}\n", - "\\boldsymbol{X}_{-i, \\ast} + \\lambda \\boldsymbol{I}_{pp})^{-1}\n", - "\\boldsymbol{X}_{-i, \\ast}^{T} \\boldsymbol{y}_{-i}\n", - "\\end{align*}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "* Evaluate the prediction performance of these models on the test set by $\\log\\{L[y_i, \\boldsymbol{X}_{i, \\ast}; \\boldsymbol{\\beta}_{-i}(\\lambda), \\boldsymbol{\\sigma}_{-i}^2(\\lambda)]\\}$. Or, by the prediction error $|y_i - \\boldsymbol{X}_{i, \\ast} \\boldsymbol{\\beta}_{-i}(\\lambda)|$, the relative error, the error squared or the R2 score function.\n", - "\n", - "* Repeat the first three steps such that each sample plays the role of the test set once.\n", - "\n", - "* Average the prediction performances of the test sets at each grid point of the penalty bias/parameter. It is an estimate of the prediction performance of the model corresponding to this value of the penalty parameter on novel data. It is defined as" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\begin{align*}\n", - "\\frac{1}{n} \\sum_{i = 1}^n \\log\\{L[y_i, \\mathbf{X}_{i, \\ast}; \\boldsymbol{\\beta}_{-i}(\\lambda), \\boldsymbol{\\sigma}_{-i}^2(\\lambda)]\\}.\n", - "\\end{align*}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Cross-validation in brief\n", - "\n", - "For the various values of $k$\n", - "\n", - "1. shuffle the dataset randomly.\n", - "\n", - "2. Split the dataset into $k$ groups.\n", - "\n", - "3. For each unique group:\n", - "\n", - "a. Decide which group to use as set for test data\n", - "\n", - "b. Take the remaining groups as a training data set\n", - "\n", - "c. Fit a model on the training set and evaluate it on the test set\n", - "\n", - "d. Retain the evaluation score and discard the model\n", - "\n", - "\n", - "5. Summarize the model using the sample of model evaluation scores\n", - "\n", - "## Code Example for Cross-validation and $k$-fold Cross-validation\n", - "\n", - "The code here uses Ridge regression with cross-validation (CV) resampling and $k$-fold CV in order to fit a specific polynomial." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "editable": true - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from sklearn.model_selection import KFold\n", - "from sklearn.linear_model import Ridge\n", - "from sklearn.model_selection import cross_val_score\n", - "from sklearn.preprocessing import PolynomialFeatures\n", - "\n", - "# A seed just to ensure that the random numbers are the same for every run.\n", - "# Useful for eventual debugging.\n", - "np.random.seed(3155)\n", - "\n", - "# Generate the data.\n", - "nsamples = 100\n", - "x = np.random.randn(nsamples)\n", - "y = 3*x**2 + np.random.randn(nsamples)\n", - "\n", - "## Cross-validation on Ridge regression using KFold only\n", - "\n", - "# Decide degree on polynomial to fit\n", - "poly = PolynomialFeatures(degree = 6)\n", - "\n", - "# Decide which values of lambda to use\n", - "nlambdas = 500\n", - "lambdas = np.logspace(-3, 5, nlambdas)\n", - "\n", - "# Initialize a KFold instance\n", - "k = 5\n", - "kfold = KFold(n_splits = k)\n", - "\n", - "# Perform the cross-validation to estimate MSE\n", - "scores_KFold = np.zeros((nlambdas, k))\n", - "\n", - "i = 0\n", - "for lmb in lambdas:\n", - " ridge = Ridge(alpha = lmb)\n", - " j = 0\n", - " for train_inds, test_inds in kfold.split(x):\n", - " xtrain = x[train_inds]\n", - " ytrain = y[train_inds]\n", - "\n", - " xtest = x[test_inds]\n", - " ytest = y[test_inds]\n", - "\n", - " Xtrain = poly.fit_transform(xtrain[:, np.newaxis])\n", - " ridge.fit(Xtrain, ytrain[:, np.newaxis])\n", - "\n", - " Xtest = poly.fit_transform(xtest[:, np.newaxis])\n", - " ypred = ridge.predict(Xtest)\n", - "\n", - " scores_KFold[i,j] = np.sum((ypred - ytest[:, np.newaxis])**2)/np.size(ypred)\n", - "\n", - " j += 1\n", - " i += 1\n", - "\n", - "\n", - "estimated_mse_KFold = np.mean(scores_KFold, axis = 1)\n", - "\n", - "## Cross-validation using cross_val_score from sklearn along with KFold\n", - "\n", - "# kfold is an instance initialized above as:\n", - "# kfold = KFold(n_splits = k)\n", - "\n", - "estimated_mse_sklearn = np.zeros(nlambdas)\n", - "i = 0\n", - "for lmb in lambdas:\n", - " ridge = Ridge(alpha = lmb)\n", - "\n", - " X = poly.fit_transform(x[:, np.newaxis])\n", - " estimated_mse_folds = cross_val_score(ridge, X, y[:, np.newaxis], scoring='neg_mean_squared_error', cv=kfold)\n", - "\n", - " # cross_val_score return an array containing the estimated negative mse for every fold.\n", - " # we have to the the mean of every array in order to get an estimate of the mse of the model\n", - " estimated_mse_sklearn[i] = np.mean(-estimated_mse_folds)\n", - "\n", - " i += 1\n", - "\n", - "## Plot and compare the slightly different ways to perform cross-validation\n", - "\n", - "plt.figure()\n", - "\n", - "plt.plot(np.log10(lambdas), estimated_mse_sklearn, label = 'cross_val_score')\n", - "plt.plot(np.log10(lambdas), estimated_mse_KFold, 'r--', label = 'KFold')\n", - "\n", - "plt.xlabel('log10(lambda)')\n", - "plt.ylabel('mse')\n", - "\n", - "plt.legend()\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## More examples on bootstrap and cross-validation and errors" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "editable": true - }, - "outputs": [], - "source": [ - "# Common imports\n", - "import os\n", - "import numpy as np\n", - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "from sklearn.linear_model import LinearRegression, Ridge, Lasso\n", - "from sklearn.model_selection import train_test_split\n", - "from sklearn.utils import resample\n", - "from sklearn.metrics import mean_squared_error\n", - "# Where to save the figures and data files\n", - "PROJECT_ROOT_DIR = \"Results\"\n", - "FIGURE_ID = \"Results/FigureFiles\"\n", - "DATA_ID = \"DataFiles/\"\n", - "\n", - "if not os.path.exists(PROJECT_ROOT_DIR):\n", - " os.mkdir(PROJECT_ROOT_DIR)\n", - "\n", - "if not os.path.exists(FIGURE_ID):\n", - " os.makedirs(FIGURE_ID)\n", - "\n", - "if not os.path.exists(DATA_ID):\n", - " os.makedirs(DATA_ID)\n", - "\n", - "def image_path(fig_id):\n", - " return os.path.join(FIGURE_ID, fig_id)\n", - "\n", - "def data_path(dat_id):\n", - " return os.path.join(DATA_ID, dat_id)\n", - "\n", - "def save_fig(fig_id):\n", - " plt.savefig(image_path(fig_id) + \".png\", format='png')\n", - "\n", - "infile = open(data_path(\"EoS.csv\"),'r')\n", - "\n", - "# Read the EoS data as csv file and organize the data into two arrays with density and energies\n", - "EoS = pd.read_csv(infile, names=('Density', 'Energy'))\n", - "EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce')\n", - "EoS = EoS.dropna()\n", - "Energies = EoS['Energy']\n", - "Density = EoS['Density']\n", - "# The design matrix now as function of various polytrops\n", - "\n", - "Maxpolydegree = 30\n", - "X = np.zeros((len(Density),Maxpolydegree))\n", - "X[:,0] = 1.0\n", - "testerror = np.zeros(Maxpolydegree)\n", - "trainingerror = np.zeros(Maxpolydegree)\n", - "polynomial = np.zeros(Maxpolydegree)\n", - "\n", - "trials = 100\n", - "for polydegree in range(1, Maxpolydegree):\n", - " polynomial[polydegree] = polydegree\n", - " for degree in range(polydegree):\n", - " X[:,degree] = Density**(degree/3.0)\n", - "\n", - "# loop over trials in order to estimate the expectation value of the MSE\n", - " testerror[polydegree] = 0.0\n", - " trainingerror[polydegree] = 0.0\n", - " for samples in range(trials):\n", - " x_train, x_test, y_train, y_test = train_test_split(X, Energies, test_size=0.2)\n", - " model = LinearRegression(fit_intercept=True).fit(x_train, y_train)\n", - " ypred = model.predict(x_train)\n", - " ytilde = model.predict(x_test)\n", - " testerror[polydegree] += mean_squared_error(y_test, ytilde)\n", - " trainingerror[polydegree] += mean_squared_error(y_train, ypred) \n", - "\n", - " testerror[polydegree] /= trials\n", - " trainingerror[polydegree] /= trials\n", - " print(\"Degree of polynomial: %3d\"% polynomial[polydegree])\n", - " print(\"Mean squared error on training data: %.8f\" % trainingerror[polydegree])\n", - " print(\"Mean squared error on test data: %.8f\" % testerror[polydegree])\n", - "\n", - "plt.plot(polynomial, np.log10(trainingerror), label='Training Error')\n", - "plt.plot(polynomial, np.log10(testerror), label='Test Error')\n", - "plt.xlabel('Polynomial degree')\n", - "plt.ylabel('log10[MSE]')\n", - "plt.legend()\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## The same example but now with cross-validation" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "editable": true - }, - "outputs": [], - "source": [ - "# Common imports\n", - "import os\n", - "import numpy as np\n", - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "from sklearn.linear_model import LinearRegression, Ridge, Lasso\n", - "from sklearn.metrics import mean_squared_error\n", - "from sklearn.model_selection import KFold\n", - "from sklearn.model_selection import cross_val_score\n", - "\n", - "\n", - "# Where to save the figures and data files\n", - "PROJECT_ROOT_DIR = \"Results\"\n", - "FIGURE_ID = \"Results/FigureFiles\"\n", - "DATA_ID = \"DataFiles/\"\n", - "\n", - "if not os.path.exists(PROJECT_ROOT_DIR):\n", - " os.mkdir(PROJECT_ROOT_DIR)\n", - "\n", - "if not os.path.exists(FIGURE_ID):\n", - " os.makedirs(FIGURE_ID)\n", - "\n", - "if not os.path.exists(DATA_ID):\n", - " os.makedirs(DATA_ID)\n", - "\n", - "def image_path(fig_id):\n", - " return os.path.join(FIGURE_ID, fig_id)\n", - "\n", - "def data_path(dat_id):\n", - " return os.path.join(DATA_ID, dat_id)\n", - "\n", - "def save_fig(fig_id):\n", - " plt.savefig(image_path(fig_id) + \".png\", format='png')\n", - "\n", - "infile = open(data_path(\"EoS.csv\"),'r')\n", - "\n", - "# Read the EoS data as csv file and organize the data into two arrays with density and energies\n", - "EoS = pd.read_csv(infile, names=('Density', 'Energy'))\n", - "EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce')\n", - "EoS = EoS.dropna()\n", - "Energies = EoS['Energy']\n", - "Density = EoS['Density']\n", - "# The design matrix now as function of various polytrops\n", - "\n", - "Maxpolydegree = 30\n", - "X = np.zeros((len(Density),Maxpolydegree))\n", - "X[:,0] = 1.0\n", - "estimated_mse_sklearn = np.zeros(Maxpolydegree)\n", - "polynomial = np.zeros(Maxpolydegree)\n", - "k =5\n", - "kfold = KFold(n_splits = k)\n", - "\n", - "for polydegree in range(1, Maxpolydegree):\n", - " polynomial[polydegree] = polydegree\n", - " for degree in range(polydegree):\n", - " X[:,degree] = Density**(degree/3.0)\n", - " OLS = LinearRegression()\n", - "# loop over trials in order to estimate the expectation value of the MSE\n", - " estimated_mse_folds = cross_val_score(OLS, X, Energies, scoring='neg_mean_squared_error', cv=kfold)\n", - "#[:, np.newaxis]\n", - " estimated_mse_sklearn[polydegree] = np.mean(-estimated_mse_folds)\n", - "\n", - "plt.plot(polynomial, np.log10(estimated_mse_sklearn), label='Test Error')\n", - "plt.xlabel('Polynomial degree')\n", - "plt.ylabel('log10[MSE]')\n", - "plt.legend()\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Cross-validation with Ridge" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "editable": true - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from sklearn.model_selection import KFold\n", - "from sklearn.linear_model import Ridge\n", - "from sklearn.model_selection import cross_val_score\n", - "from sklearn.preprocessing import PolynomialFeatures\n", - "\n", - "# A seed just to ensure that the random numbers are the same for every run.\n", - "np.random.seed(3155)\n", - "# Generate the data.\n", - "n = 100\n", - "x = np.linspace(-3, 3, n).reshape(-1, 1)\n", - "y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)\n", - "# Decide degree on polynomial to fit\n", - "poly = PolynomialFeatures(degree = 10)\n", - "\n", - "# Decide which values of lambda to use\n", - "nlambdas = 500\n", - "lambdas = np.logspace(-3, 5, nlambdas)\n", - "# Initialize a KFold instance\n", - "k = 5\n", - "kfold = KFold(n_splits = k)\n", - "estimated_mse_sklearn = np.zeros(nlambdas)\n", - "i = 0\n", - "for lmb in lambdas:\n", - " ridge = Ridge(alpha = lmb)\n", - " estimated_mse_folds = cross_val_score(ridge, x, y, scoring='neg_mean_squared_error', cv=kfold)\n", - " estimated_mse_sklearn[i] = np.mean(-estimated_mse_folds)\n", - " i += 1\n", - "plt.figure()\n", - "plt.plot(np.log10(lambdas), estimated_mse_sklearn, label = 'cross_val_score')\n", - "plt.xlabel('log10(lambda)')\n", - "plt.ylabel('MSE')\n", - "plt.legend()\n", - "plt.show()" - ] - } - ], - "metadata": {}, - "nbformat": 4, - "nbformat_minor": 4 -}