From 55beb4d9b856f566ab49d8bb373a3967cc480b94 Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Mon, 1 Sep 2025 14:00:15 +0200 Subject: [PATCH] small typos --- .../_build/.doctrees/environment.pickle | Bin 265762 -> 265762 bytes .../_build/.doctrees/exercisesweek37.doctree | Bin 36181 -> 36392 bytes .../html/_sources/exercisesweek37.ipynb | 56 ++++++++-------- .../_build/html/exercisesweek37.html | 10 +-- .../jupyter_execute/exercisesweek37.ipynb | 56 ++++++++-------- doc/LectureNotes/exercisesweek37.ipynb | 56 ++++++++-------- doc/pub/week36/ipynb/week36.ipynb | 60 +++++++++++++++--- doc/src/week37/exercisesweek37.do.txt | 6 +- 8 files changed, 143 insertions(+), 101 deletions(-) diff --git a/doc/LectureNotes/_build/.doctrees/environment.pickle b/doc/LectureNotes/_build/.doctrees/environment.pickle index ad5f50be0512fdb73d8f568fd6ab9b496ca9e50b..9dca30190141b950ca445a322b7874c78b779f68 100644 GIT binary patch delta 9092 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 Ugdgy73@=CUa#($8wIurfAL=}Ng8%>k diff --git a/doc/LectureNotes/_build/.doctrees/exercisesweek37.doctree b/doc/LectureNotes/_build/.doctrees/exercisesweek37.doctree index 287986c75c22e40369b5030088dab45bab19fd2e..7553c68abd63b8800db36d168506decb76688612 100644 GIT binary patch delta 1814 zcmZXUZA_C_6vw%jrxbZ8w9rAzOL+~p2t$~FlNJjo4#s=BxB#scC_Ho&1T8C5X3?$ZX6$EY5vcvM`Clj9W58)FmccV%Qsw%q(vA-a=Q{mvhhg-*bQW z+}C^O@#PPUM0`P8&Tk)(*|)Vg$r)Ph{swnCSsASc2rNX=eB;Za2RG8CR{lnJvX zci~~h7N19d0mEZM3VgG>8mWn_hBQMGOev!w#}EN(H;=S1SE7ZRyLqA{@{-prrqm$@ z1cgzFD>)c(Y=;ShN*4KIs!6b=4%iMmdyZ_za9n5K0HhkW!bD*SwgyH)dRaCFC*sxv z>t#}R)H~uG_G*PV`#>O<6lm1{zrYxXDo>^ihV}%~;c}9U$Z{|@ro&u$4W8kkEG7rO zOyFd{SK$yrE9eOSA_t2JvCviVE56QwvB89I_z@5G@KpIQNkyCb#_f?SL8G92?=6%LJo#@fY_xYzOSnop7h9}K1Ks7A(|*!p^aGNN`Om( z54{I&M?Q>o^F%w_ZNd&eFv-qTGWZo?#QnEIUHipGsC3dn&fRZv2OTxBl*nCOgH>vFgw@ z4ojt=XfA_NrxbJ2wZq(nk>8zly6Cp*2Hgm2rEprQq0Ox~3u!}NOD=h^T306CDP^C^ z+b*8=jJu3$>EthxyOn2#UfK|YFjT)$crv7;0)1TrCxWXty>%N4w8Rv!DAJ;;Ph1J^ zrQg8lQ5$wi*%eV8V{0R-Pk$^P;dhvw z%=gs9(ojxKMi?=v)U43(H);}TsG{a;iusBdr)Nv=L5J`Dl`d!->A$dF_pRz^9 z6&X`xJdv?P#t|7qbP8%ZY99K>3oBSLQ=tUSin&NDV#O>`j}@Z{6th4*R?I5(Xfbwj P5q}K1}q+yd`nE-{IBrNiqb zv2e5S6LDO7fd)O>Y;00DZ*gh6y}>(aI9&2V5QmW?z?bgN=d;vJf>}LaK4CjP7~0i4 zp!Vkdk7vp~;dZ!Fg=kALEEFGw17(R2Um6Ez%hWP#4d%)+NgcW`8VMr;t0$rGdlMaTUQzoW7Cs4w{=XHq;FV}W#+xP0C zph6c*IZo=+u8SdipuZ&(vWsP))5}@lif)hB&FN!crZybLTM~Q%Ue=fI(EC!a-*JAi z&f;^<_KLBcK)k+)xh~X?F-&UE(oGq(He4h9tOboC&UXY@>(h#}jZMLHii1^KSxEAA zHej@6k^{b=QX!o@a|lxu;4w7=$!Z4yS}eq!CP}O!!?;vhzPeJHsTa3hdn?F-so2?iP!j@!ggt z6hPSrjPNwS``9~#J#Nfdw=3Y8eS682ls9fwGCsG*MID}^4p{3cl|nV-oKMIb)`MFD z_pBXc$;UI<+lk4nV3_g1_L{M76y*1HLxVL7N>#EjldrSBu}F;Xzbd0Y2C>&rO@Cn3 z3o4;?NKU^+({umVhN`>+3|k3(EVYO~@7nXoVn}-T?S4D4^Dda93?6p zF@zenJz?(E9hs5h@T<#&T7solWC6o?*VX}lu-}K{^?rXR`IB?gy%Ja=ahDzK2buhE1+iDv$pKx1}Aa^D`=wfg{faN@N%p81aL&nT?gewRi zApC~#3&P(VgFg{&BiuyTKv+jOi!yTzY_1TismDAx(#LAB&%EU#{4tZFL2aj`>y$K| zlAcr2a!NW*NyBLqVlnGHRJiiWrDom>WYSVIqub4hXi3d%q9rx6xZTVOTG)(*?ekOD MCcPgFSI-Rn3wi)gWB>pF diff --git a/doc/LectureNotes/_build/html/_sources/exercisesweek37.ipynb b/doc/LectureNotes/_build/html/_sources/exercisesweek37.ipynb index a23fb43b2..933c27090 100644 --- a/doc/LectureNotes/_build/html/_sources/exercisesweek37.ipynb +++ b/doc/LectureNotes/_build/html/_sources/exercisesweek37.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "b0268cb1", + "id": "9b0bb122", "metadata": { "editable": true }, @@ -14,7 +14,7 @@ }, { "cell_type": "markdown", - "id": "700a1d0b", + "id": "48cf6ad1", "metadata": { "editable": true }, @@ -27,7 +27,7 @@ }, { "cell_type": "markdown", - "id": "dbe5809a", + "id": "3765446f", "metadata": { "editable": true }, @@ -46,7 +46,7 @@ }, { "cell_type": "markdown", - "id": "ac99e9c0", + "id": "82ccb1c9", "metadata": { "editable": true }, @@ -58,19 +58,19 @@ }, { "cell_type": "markdown", - "id": "6d71a32d", + "id": "2d9c0494", "metadata": { "editable": true }, "source": [ "$$\n", - "\\f(x)= 2-x+5x^2,\n", + "f(x)= 2-x+5x^2,\n", "$$" ] }, { "cell_type": "markdown", - "id": "c6496768", + "id": "df88ac02", "metadata": { "editable": true }, @@ -83,7 +83,7 @@ }, { "cell_type": "markdown", - "id": "24678181", + "id": "ce2e4a69", "metadata": { "editable": true }, @@ -99,7 +99,7 @@ }, { "cell_type": "markdown", - "id": "6b1bd90a", + "id": "294f41ac", "metadata": { "editable": true }, @@ -120,7 +120,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "5e751a16", + "id": "9c98b0d9", "metadata": { "collapsed": false, "editable": true @@ -140,7 +140,7 @@ }, { "cell_type": "markdown", - "id": "50a68a52", + "id": "802cf96b", "metadata": { "editable": true }, @@ -156,7 +156,7 @@ }, { "cell_type": "markdown", - "id": "db74a970", + "id": "90164acc", "metadata": { "editable": true }, @@ -168,7 +168,7 @@ }, { "cell_type": "markdown", - "id": "f8feaa49", + "id": "55d1c701", "metadata": { "editable": true }, @@ -179,7 +179,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "e6eca7a7", + "id": "22b80fe2", "metadata": { "collapsed": false, "editable": true @@ -200,21 +200,21 @@ }, { "cell_type": "markdown", - "id": "a2dff0cf", + "id": "a0a8a8ec", "metadata": { "editable": true }, "source": [ "This computes the Ridge and OLS regression coefficients directly. The identity\n", - "matrix $I$ has the same size as $X^T X$. It adds $\\lambda$ to the diagonal of $X^T X for Ridge regression. We\n", + "matrix $I$ has the same size as $X^T X$. It adds $\\lambda$ to the diagonal of $X^T X$ for Ridge regression. We\n", "then invert this matrix and multiply by $X^T y$. The result\n", "for $\\boldsymbol{\\theta}$ is a NumPy array of shape (n$\\_$features,) containing the\n", - "fitted parameters $\\boldsymbol{\\theta}$.." + "fitted parameters $\\boldsymbol{\\theta}$." ] }, { "cell_type": "markdown", - "id": "d7542c3e", + "id": "8e317939", "metadata": { "editable": true }, @@ -226,7 +226,7 @@ }, { "cell_type": "markdown", - "id": "b922fd54", + "id": "7b52e9af", "metadata": { "editable": true }, @@ -238,7 +238,7 @@ }, { "cell_type": "markdown", - "id": "92268a9a", + "id": "ba0b5a80", "metadata": { "editable": true }, @@ -258,7 +258,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "81660fa3", + "id": "e29c2842", "metadata": { "collapsed": false, "editable": true @@ -301,7 +301,7 @@ }, { "cell_type": "markdown", - "id": "95149551", + "id": "9dc52b0e", "metadata": { "editable": true }, @@ -313,7 +313,7 @@ }, { "cell_type": "markdown", - "id": "09b5400e", + "id": "4584ce15", "metadata": { "editable": true }, @@ -325,7 +325,7 @@ }, { "cell_type": "markdown", - "id": "c635ca9e", + "id": "2f9f5861", "metadata": { "editable": true }, @@ -351,7 +351,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "4ca4ce05", + "id": "9e336d9b", "metadata": { "collapsed": false, "editable": true @@ -380,7 +380,7 @@ }, { "cell_type": "markdown", - "id": "af39d8bc", + "id": "5afbeef2", "metadata": { "editable": true }, @@ -394,7 +394,7 @@ }, { "cell_type": "markdown", - "id": "d35d3438", + "id": "28beeaf3", "metadata": { "editable": true }, @@ -406,7 +406,7 @@ }, { "cell_type": "markdown", - "id": "b28bf122", + "id": "36ba38c1", "metadata": { "editable": true }, diff --git a/doc/LectureNotes/_build/html/exercisesweek37.html b/doc/LectureNotes/_build/html/exercisesweek37.html index 34799f577..b0a3a9843 100644 --- a/doc/LectureNotes/_build/html/exercisesweek37.html +++ b/doc/LectureNotes/_build/html/exercisesweek37.html @@ -427,7 +427,7 @@ doconce format html exercisesweek37.do.txt -->

We start with a very simple function

\[ -\f(x)= 2-x+5x^2, +f(x)= 2-x+5x^2, \]

defined for \(x\in [-2,2]\). You can add noise if you wish.

We are going to fit this function with a polynomial ansatz. The easiest thing is to set up a second-order polynomial and see if you can fit the above function. @@ -496,10 +496,10 @@ print("Closed-form OLS coefficients:", theta_closed_form)

This computes the Ridge and OLS regression coefficients directly. The identity -matrix \(I\) has the same size as \(X^T X\). It adds \(\lambda\) to the diagonal of \(X^T X for Ridge regression. We -then invert this matrix and multiply by \)X^T y\(. The result -for \)\boldsymbol{\theta}\( is a NumPy array of shape (n\)_\(features,) containing the -fitted parameters \)\boldsymbol{\theta}$..

+matrix \(I\) has the same size as \(X^T X\). It adds \(\lambda\) to the diagonal of \(X^T X\) for Ridge regression. We +then invert this matrix and multiply by \(X^T y\). The result +for \(\boldsymbol{\theta}\) is a NumPy array of shape (n\(\_\)features,) containing the +fitted parameters \(\boldsymbol{\theta}\).

3a)#

Finalize, in the above code, the OLS and Ridge regression determination of the optimal parameters \(\boldsymbol{\theta}\).

diff --git a/doc/LectureNotes/_build/jupyter_execute/exercisesweek37.ipynb b/doc/LectureNotes/_build/jupyter_execute/exercisesweek37.ipynb index 4857c84a5..60de5d8c6 100644 --- a/doc/LectureNotes/_build/jupyter_execute/exercisesweek37.ipynb +++ b/doc/LectureNotes/_build/jupyter_execute/exercisesweek37.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "b0268cb1", + "id": "9b0bb122", "metadata": { "editable": true }, @@ -14,7 +14,7 @@ }, { "cell_type": "markdown", - "id": "700a1d0b", + "id": "48cf6ad1", "metadata": { "editable": true }, @@ -27,7 +27,7 @@ }, { "cell_type": "markdown", - "id": "dbe5809a", + "id": "3765446f", "metadata": { "editable": true }, @@ -46,7 +46,7 @@ }, { "cell_type": "markdown", - "id": "ac99e9c0", + "id": "82ccb1c9", "metadata": { "editable": true }, @@ -58,19 +58,19 @@ }, { "cell_type": "markdown", - "id": "6d71a32d", + "id": "2d9c0494", "metadata": { "editable": true }, "source": [ "$$\n", - "\\f(x)= 2-x+5x^2,\n", + "f(x)= 2-x+5x^2,\n", "$$" ] }, { "cell_type": "markdown", - "id": "c6496768", + "id": "df88ac02", "metadata": { "editable": true }, @@ -83,7 +83,7 @@ }, { "cell_type": "markdown", - "id": "24678181", + "id": "ce2e4a69", "metadata": { "editable": true }, @@ -99,7 +99,7 @@ }, { "cell_type": "markdown", - "id": "6b1bd90a", + "id": "294f41ac", "metadata": { "editable": true }, @@ -120,7 +120,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "5e751a16", + "id": "9c98b0d9", "metadata": { "collapsed": false, "editable": true @@ -140,7 +140,7 @@ }, { "cell_type": "markdown", - "id": "50a68a52", + "id": "802cf96b", "metadata": { "editable": true }, @@ -156,7 +156,7 @@ }, { "cell_type": "markdown", - "id": "db74a970", + "id": "90164acc", "metadata": { "editable": true }, @@ -168,7 +168,7 @@ }, { "cell_type": "markdown", - "id": "f8feaa49", + "id": "55d1c701", "metadata": { "editable": true }, @@ -179,7 +179,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "e6eca7a7", + "id": "22b80fe2", "metadata": { "collapsed": false, "editable": true @@ -200,21 +200,21 @@ }, { "cell_type": "markdown", - "id": "a2dff0cf", + "id": "a0a8a8ec", "metadata": { "editable": true }, "source": [ "This computes the Ridge and OLS regression coefficients directly. The identity\n", - "matrix $I$ has the same size as $X^T X$. It adds $\\lambda$ to the diagonal of $X^T X for Ridge regression. We\n", + "matrix $I$ has the same size as $X^T X$. It adds $\\lambda$ to the diagonal of $X^T X$ for Ridge regression. We\n", "then invert this matrix and multiply by $X^T y$. The result\n", "for $\\boldsymbol{\\theta}$ is a NumPy array of shape (n$\\_$features,) containing the\n", - "fitted parameters $\\boldsymbol{\\theta}$.." + "fitted parameters $\\boldsymbol{\\theta}$." ] }, { "cell_type": "markdown", - "id": "d7542c3e", + "id": "8e317939", "metadata": { "editable": true }, @@ -226,7 +226,7 @@ }, { "cell_type": "markdown", - "id": "b922fd54", + "id": "7b52e9af", "metadata": { "editable": true }, @@ -238,7 +238,7 @@ }, { "cell_type": "markdown", - "id": "92268a9a", + "id": "ba0b5a80", "metadata": { "editable": true }, @@ -258,7 +258,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "81660fa3", + "id": "e29c2842", "metadata": { "collapsed": false, "editable": true @@ -301,7 +301,7 @@ }, { "cell_type": "markdown", - "id": "95149551", + "id": "9dc52b0e", "metadata": { "editable": true }, @@ -313,7 +313,7 @@ }, { "cell_type": "markdown", - "id": "09b5400e", + "id": "4584ce15", "metadata": { "editable": true }, @@ -325,7 +325,7 @@ }, { "cell_type": "markdown", - "id": "c635ca9e", + "id": "2f9f5861", "metadata": { "editable": true }, @@ -351,7 +351,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "4ca4ce05", + "id": "9e336d9b", "metadata": { "collapsed": false, "editable": true @@ -380,7 +380,7 @@ }, { "cell_type": "markdown", - "id": "af39d8bc", + "id": "5afbeef2", "metadata": { "editable": true }, @@ -394,7 +394,7 @@ }, { "cell_type": "markdown", - "id": "d35d3438", + "id": "28beeaf3", "metadata": { "editable": true }, @@ -406,7 +406,7 @@ }, { "cell_type": "markdown", - "id": "b28bf122", + "id": "36ba38c1", "metadata": { "editable": true }, diff --git a/doc/LectureNotes/exercisesweek37.ipynb b/doc/LectureNotes/exercisesweek37.ipynb index a23fb43b2..933c27090 100644 --- a/doc/LectureNotes/exercisesweek37.ipynb +++ b/doc/LectureNotes/exercisesweek37.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "b0268cb1", + "id": "9b0bb122", "metadata": { "editable": true }, @@ -14,7 +14,7 @@ }, { "cell_type": "markdown", - "id": "700a1d0b", + "id": "48cf6ad1", "metadata": { "editable": true }, @@ -27,7 +27,7 @@ }, { "cell_type": "markdown", - "id": "dbe5809a", + "id": "3765446f", "metadata": { "editable": true }, @@ -46,7 +46,7 @@ }, { "cell_type": "markdown", - "id": "ac99e9c0", + "id": "82ccb1c9", "metadata": { "editable": true }, @@ -58,19 +58,19 @@ }, { "cell_type": "markdown", - "id": "6d71a32d", + "id": "2d9c0494", "metadata": { "editable": true }, "source": [ "$$\n", - "\\f(x)= 2-x+5x^2,\n", + "f(x)= 2-x+5x^2,\n", "$$" ] }, { "cell_type": "markdown", - "id": "c6496768", + "id": "df88ac02", "metadata": { "editable": true }, @@ -83,7 +83,7 @@ }, { "cell_type": "markdown", - "id": "24678181", + "id": "ce2e4a69", "metadata": { "editable": true }, @@ -99,7 +99,7 @@ }, { "cell_type": "markdown", - "id": "6b1bd90a", + "id": "294f41ac", "metadata": { "editable": true }, @@ -120,7 +120,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "5e751a16", + "id": "9c98b0d9", "metadata": { "collapsed": false, "editable": true @@ -140,7 +140,7 @@ }, { "cell_type": "markdown", - "id": "50a68a52", + "id": "802cf96b", "metadata": { "editable": true }, @@ -156,7 +156,7 @@ }, { "cell_type": "markdown", - "id": "db74a970", + "id": "90164acc", "metadata": { "editable": true }, @@ -168,7 +168,7 @@ }, { "cell_type": "markdown", - "id": "f8feaa49", + "id": "55d1c701", "metadata": { "editable": true }, @@ -179,7 +179,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "e6eca7a7", + "id": "22b80fe2", "metadata": { "collapsed": false, "editable": true @@ -200,21 +200,21 @@ }, { "cell_type": "markdown", - "id": "a2dff0cf", + "id": "a0a8a8ec", "metadata": { "editable": true }, "source": [ "This computes the Ridge and OLS regression coefficients directly. The identity\n", - "matrix $I$ has the same size as $X^T X$. It adds $\\lambda$ to the diagonal of $X^T X for Ridge regression. We\n", + "matrix $I$ has the same size as $X^T X$. It adds $\\lambda$ to the diagonal of $X^T X$ for Ridge regression. We\n", "then invert this matrix and multiply by $X^T y$. The result\n", "for $\\boldsymbol{\\theta}$ is a NumPy array of shape (n$\\_$features,) containing the\n", - "fitted parameters $\\boldsymbol{\\theta}$.." + "fitted parameters $\\boldsymbol{\\theta}$." ] }, { "cell_type": "markdown", - "id": "d7542c3e", + "id": "8e317939", "metadata": { "editable": true }, @@ -226,7 +226,7 @@ }, { "cell_type": "markdown", - "id": "b922fd54", + "id": "7b52e9af", "metadata": { "editable": true }, @@ -238,7 +238,7 @@ }, { "cell_type": "markdown", - "id": "92268a9a", + "id": "ba0b5a80", "metadata": { "editable": true }, @@ -258,7 +258,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "81660fa3", + "id": "e29c2842", "metadata": { "collapsed": false, "editable": true @@ -301,7 +301,7 @@ }, { "cell_type": "markdown", - "id": "95149551", + "id": "9dc52b0e", "metadata": { "editable": true }, @@ -313,7 +313,7 @@ }, { "cell_type": "markdown", - "id": "09b5400e", + "id": "4584ce15", "metadata": { "editable": true }, @@ -325,7 +325,7 @@ }, { "cell_type": "markdown", - "id": "c635ca9e", + "id": "2f9f5861", "metadata": { "editable": true }, @@ -351,7 +351,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "4ca4ce05", + "id": "9e336d9b", "metadata": { "collapsed": false, "editable": true @@ -380,7 +380,7 @@ }, { "cell_type": "markdown", - "id": "af39d8bc", + "id": "5afbeef2", "metadata": { "editable": true }, @@ -394,7 +394,7 @@ }, { "cell_type": "markdown", - "id": "d35d3438", + "id": "28beeaf3", "metadata": { "editable": true }, @@ -406,7 +406,7 @@ }, { "cell_type": "markdown", - "id": "b28bf122", + "id": "36ba38c1", "metadata": { "editable": true }, diff --git a/doc/pub/week36/ipynb/week36.ipynb b/doc/pub/week36/ipynb/week36.ipynb index c39a730a5..9eecb9565 100644 --- a/doc/pub/week36/ipynb/week36.ipynb +++ b/doc/pub/week36/ipynb/week36.ipynb @@ -792,7 +792,10 @@ "id": "1968205f", "metadata": { "collapsed": false, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -1112,7 +1115,10 @@ "id": "7dcfad0e", "metadata": { "collapsed": false, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -2775,7 +2781,10 @@ "id": "6444430a", "metadata": { "collapsed": false, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -3019,7 +3028,10 @@ "id": "3ad7c5f2", "metadata": { "collapsed": false, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -3197,7 +3209,10 @@ "id": "200aa258", "metadata": { "collapsed": false, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -4711,7 +4726,10 @@ "id": "7ca4918a", "metadata": { "collapsed": false, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -4792,7 +4810,10 @@ "id": "3b6ba6a2", "metadata": { "collapsed": false, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -4870,7 +4891,10 @@ "id": "3410ffb2", "metadata": { "collapsed": false, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -4955,7 +4979,25 @@ ] } ], - "metadata": {}, + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.15" + } + }, "nbformat": 4, "nbformat_minor": 5 } diff --git a/doc/src/week37/exercisesweek37.do.txt b/doc/src/week37/exercisesweek37.do.txt index 556724301..32dc647ea 100644 --- a/doc/src/week37/exercisesweek37.do.txt +++ b/doc/src/week37/exercisesweek37.do.txt @@ -17,7 +17,7 @@ o Scale the data properly We start with a very simple function !bt \[ -\f(x)= 2-x+5x^2, +f(x)= 2-x+5x^2, \] !et @@ -88,10 +88,10 @@ print("Closed-form OLS coefficients:", theta_closed_form) !ec This computes the Ridge and OLS regression coefficients directly. The identity -matrix $I$ has the same size as $X^T X$. It adds $\lambda$ to the diagonal of $X^T X for Ridge regression. We +matrix $I$ has the same size as $X^T X$. It adds $\lambda$ to the diagonal of $X^T X$ for Ridge regression. We then invert this matrix and multiply by $X^T y$. The result for $\bm{\theta}$ is a NumPy array of shape (n$\_$features,) containing the -fitted parameters $\bm{\theta}$.. +fitted parameters $\bm{\theta}$. === 3a) === Finalize, in the above code, the OLS and Ridge regression determination of the optimal parameters $\bm{\theta}$.