From ed7c56b77e9d0dd824ffc3cf9e887c2fad7e9f62 Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Tue, 30 Aug 2022 23:19:48 +0200 Subject: [PATCH] update chapter 1 --- doc/BookChapters/chapter1.dlog | 10 + doc/BookChapters/chapter1.do.txt | 382 ++++- .../_build/.doctrees/chapter1.doctree | Bin 465006 -> 511691 bytes .../_build/.doctrees/environment.pickle | Bin 170550 -> 171508 bytes .../_build/html/_images/chapter1_17_0.png | Bin 6537 -> 6543 bytes .../_build/html/_images/chapter1_19_1.png | Bin 9423 -> 9539 bytes .../_build/html/_images/chapter1_33_0.png | Bin 13191 -> 14414 bytes .../_build/html/_images/chapter1_9_0.png | Bin 9481 -> 10018 bytes .../_build/html/_sources/chapter1.ipynb | 1268 ++++++++++++---- doc/LectureNotes/_build/html/chapter1.html | 458 +++++- doc/LectureNotes/_build/html/searchindex.js | 2 +- .../_build/jupyter_execute/chapter1.ipynb | 1288 +++++++++++++---- .../_build/jupyter_execute/chapter1.py | 390 ++++- .../_build/jupyter_execute/chapter1_17_0.png | Bin 6537 -> 6543 bytes .../_build/jupyter_execute/chapter1_19_1.png | Bin 9423 -> 9539 bytes .../_build/jupyter_execute/chapter1_33_0.png | Bin 13191 -> 14414 bytes .../_build/jupyter_execute/chapter1_9_0.png | Bin 9481 -> 10018 bytes doc/LectureNotes/chapter1.ipynb | 1268 ++++++++++++---- 18 files changed, 4073 insertions(+), 993 deletions(-) diff --git a/doc/BookChapters/chapter1.dlog b/doc/BookChapters/chapter1.dlog index 7a39c150c..0e51fe222 100644 --- a/doc/BookChapters/chapter1.dlog +++ b/doc/BookChapters/chapter1.dlog @@ -57,3 +57,13 @@ Translating doconce text in chapter1.do.txt to ipynb *** warning: latex envir \begin{bmatrix} does not work well in Markdown. Stick to \[ ... \], equation, equation*, align, or align* environments in math environments. output in chapter1.ipynb +Translating doconce text in chapter1.do.txt to ipynb +*** replacing \bm{...} by \boldsymbol{...} (\bm is not supported by MathJax) +found info about 5 exercises + +*** warning: latex envir \begin{bmatrix} does not work well in Markdown. Stick to \[ ... \], equation, equation*, align, or align* environments in math environments. + +*** warning: latex envir \begin{bmatrix} does not work well in Markdown. Stick to \[ ... \], equation, equation*, align, or align* environments in math environments. + +*** warning: latex envir \begin{bmatrix} does not work well in Markdown. Stick to \[ ... \], equation, equation*, align, or align* environments in math environments. +output in chapter1.ipynb diff --git a/doc/BookChapters/chapter1.do.txt b/doc/BookChapters/chapter1.do.txt index 1a13c52b6..7995dcd7e 100644 --- a/doc/BookChapters/chapter1.do.txt +++ b/doc/BookChapters/chapter1.do.txt @@ -1292,25 +1292,23 @@ matrices as upper case boldfaced letters. !bt \[ -\frac{\partial\bm{b}^T\bm{a}}{\partial\bm{a}}=\bm{b}, +\frac{\partial (\bm{b}^T\bm{a})}{\partial \bm{a}} = \bm{b}, \] !et +and !bt \[ -\frac{\partial\bm{a}^T\bm{A}\bm{a}}{\partial\bm{a}}=(\bm{A}+\bm{A}^T)\bm{a}, +\frac{\partial (\bm{a}^T\bm{A}\bm{a})}{\partial \bm{a}} = \bm{a}^T(\bm{A}+\bm{A}^T), \] !et +and !bt \[ -\frac{\partial tr(\bm{B}\bm{A})}{\partial\bm{A}}=\bm{B}^T, +\frac{\partial \left(\bm{x}-\bm{A}\bm{s}\right)^T\left(\bm{x}-\bm{A}\bm{s}\right)}{\partial \bm{s}} = -2\left(\bm{x}-\bm{A}\bm{s}\right)^T\bm{A}, \] !et -!bt -\[ -\frac{\partial\log{\vert\bm{A}\vert}}{\partial \bm{A}}=(\bm{A}^{-1})^T. -\] -!et - +These and other relations are discussed in the exercises following this chapter (see the end of the chapter). +The latter equation is similar to the equation for the mean-squared error function we have been discussing. We can then compute the second derivative of the cost function, which in our case is the second derivative of the means squared error. This leads to @@ -1319,7 +1317,7 @@ of the means squared error. This leads to \frac{\partial^2 C(\bm{\beta})}{\partial \bm{\beta}^T\partial \bm{\beta}} =\frac{2}{n}\bm{X}^T\bm{X}. \] !et -This quantity defines was what is called the Hessian matrix (the second derivative of a function we want to optimize). +This quantity defines the so- called the Hessian matrix. The Hessian matrix plays an important role and is defined for the mean squared error as @@ -2187,7 +2185,8 @@ plt.show() ===== Exercises ===== -=== Exercise: Setting up various Python environments === + +===== Exercise: Setting up various Python environments ===== The first exercise here is of a mere technical art. We want you to have * git as a version control software and to establish a user account on a provider like GitHub. Other providers like GitLab etc are equally fine. You can also use the University of Oslo "GitHub facilities":"https://www.uio.no/tjenester/it/maskin/filer/versjonskontroll/github.html". @@ -2250,7 +2249,7 @@ We recommend using _Anaconda_ if you are not too familiar with setting paths in -=== Exercise: making your own data and exploring scikit-learn === +===== Exercise: making your own data and exploring scikit-learn ===== We will generate our own dataset for a function $y(x)$ where $x \in [0,1]$ and defined by random numbers computed with the uniform distribution. The function $y$ is a quadratic polynomial in $x$ with added stochastic noise according to the normal distribution $\cal {N}(0,1)$. @@ -2261,7 +2260,7 @@ y = 2.0+5*x*x+0.1*np.random.randn(100,1) !ec o Write your own code (following the examples under the "regression notes":"https://compphysics.github.io/MachineLearning/doc/LectureNotes/_build/html/chapter1.html") for computing the parametrization of the data set fitting a second-order polynomial. -o Use thereafter _scikit-learn_ (see again the examples in the regression slides) and compare with your own code. +o Use thereafter _scikit-learn_ (see again the examples in the regression slides) and compare with your own code. When compairing with _scikit_learn_, make sure you set the option for the intercept to _FALSE_, see URL:"https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html". This feature will be explained in more detail during the lectures of week 35 and week 36. You can find more in URL:"https://compphysics.github.io/MachineLearning/doc/LectureNotes/_build/html/chapter3.html#more-on-rescaling-data". o Using scikit-learn, compute also the mean square error, a risk metric corresponding to the expected value of the squared (quadratic) error defined as !bt \[ MSE(\bm{y},\bm{\tilde{y}}) = \frac{1}{n} @@ -2284,10 +2283,55 @@ where we have defined the mean value of $\bm{y}$ as You can use the functionality included in scikit-learn. If you feel for it, you can use your own program and define functions which compute the above two functions. Discuss the meaning of these results. Try also to vary the coefficient in front of the added stochastic noise term and discuss the quality of the fits. +!bsol +The code here is an example of where we define our own design matrix and fit parameters $\beta$. +!bc pycod +import os +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from sklearn.model_selection import train_test_split + +def save_fig(fig_id): + plt.savefig(image_path(fig_id) + ".png", format='png') + +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 + +x = np.random.rand(100) +y = 2.0+5*x*x+0.1*np.random.randn(100) + + +# The design matrix now as function of a given polynomial +X = np.zeros((len(x),3)) +X[:,0] = 1.0 +X[:,1] = x +X[:,2] = x**2 +# 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 +beta = np.linalg.inv(X_train.T @ X_train) @ X_train.T @ y_train +print(beta) +# and then make the prediction +ytilde = X_train @ beta +print("Training R2") +print(R2(y_train,ytilde)) +print("Training MSE") +print(MSE(y_train,ytilde)) +ypredict = X_test @ beta +print("Test R2") +print(R2(y_test,ypredict)) +print("Test MSE") +print(MSE(y_test,ypredict)) +!ec +!esol -=== Exercise: Normalizing our data === +===== Exercise: Normalizing our data ===== A much used approach before starting to train the data is to preprocess our @@ -2328,7 +2372,7 @@ It also common to split the data in a _training_ set and a _testing_ set. A typi for testing. This can be done as follows with our design matrix $\bm{X}$ and data $\bm{y}$ (remember to import _scikit-learn_) !bc pycod # split in training and test data -# X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2) +X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2) !ec Then we can use the standard scaler to scale our data as !bc pycod @@ -2358,28 +2402,308 @@ 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) !ec where $y$ is the function we want to fit with a given polynomial. +!bsubex +Write a first code which sets up a design matrix $X$ defined by a fifth-order polynomial. Scale your data and split it in training and test data. +!esubex + +!bsubex +Perform an ordinary least squares and compute the means squared error and the $R2$ factor for the training data and the test data, with and without scaling. +!esubex + +!bsubex +Add now a model which allows you to make polynomials up to degree $15$. Perform a standard OLS fitting of the training data and compute the MSE and $R2$ for the training and test data and plot both test and training data MSE and $R2$ as functions of the polynomial degree. Compare what you see with Figure 2.11 of Hastie et al. Comment your results. For which polynomial degree do you find an optimal MSE (smallest value)? + +!esubex -Write a first code which sets up a design matrix $X$ defined by a -fifth-order polynomial. Scale your data and split it in training and -test data. +!bsol +We present here the solution for the last exercise. All elements here can be used to solve exercises a) and b) as well. +Note that in this example we have used the polynomial fitting functions of _scikit-learn_. +!bc pycod +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 + + +np.random.seed(2018) +n = 30 +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) +TestError = np.zeros(maxdegree) +TrainError = 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)) + clf = model.fit(x_train,y_train) + y_fit = clf.predict(x_train) + y_pred = clf.predict(x_test) + polydegree[degree] = degree + TestError[degree] = np.mean( np.mean((y_test - y_pred)**2) ) + TrainError[degree] = np.mean( np.mean((y_train - y_fit)**2) ) + +plt.plot(polydegree, TestError, label='Test Error') +plt.plot(polydegree, TrainError, label='Train Error') +plt.legend() +plt.show() +!ec +!esol -Perform an ordinary least squares and compute the means squared error -and the $R2$ factor for the training data and the test data, with and -without scaling. + +===== Exercise: Adding Ridge Regression ===== + + +This exercise is a continuation of exercise 2. We will use the same function to +generate our data set, still staying with a simple function $y(x)$ +which we want to fit using linear regression, but now extending the +analysis to include the Ridge regression method. + +We will thus again generate our own dataset for a function $y(x)$ where +$x \in [0,1]$ and defined by random numbers computed with the uniform +distribution. The function $y$ is a quadratic polynomial in $x$ with +added stochastic noise according to the normal distribution $\cal{N}(0,1)$. + +The following simple Python instructions define our $x$ and $y$ values (with 100 data points). +!bc pycod +x = np.random.rand(100) +y = 2.0+5*x*x+0.1*np.random.randn(100) +!ec + + +Write your own code for the Ridge method (see chapter 3.4 of Hastie *et al.*, equations (3.43) and (3.44)) and compute the parametrization for different values of $\lambda$. Compare and analyze your results with those from exercise 3. Study the dependence on $\lambda$ while also varying the strength of the noise in your expression for $y(x)$. + + +Repeat the above but using the functionality of +_Scikit-Learn_. Compare your code with the results from +_Scikit-Learn_. Remember to run with the same random numbers for +generating $x$ and $y$. Observe also that when you compare with _Scikit-Learn_, you need to pay attention to how the intercept is dealt with. -Add now a model which allows you to make polynomials up to degree -$15$. Perform a standard OLS fitting of the training data and compute -the MSE and $R2$ for the training and test data and plot both test and -training data MSE and $R2$ as functions of the polynomial -degree. Compare what you see with Figure 2.11 of Hastie et al. Comment -your results. For which polynomial degree do you find an optimal MSE -(smallest value)? - +Finally, using _Scikit-Learn_ or your own code, compute also the mean square error, a risk metric corresponding to the expected value of the squared (quadratic) error defined as +!bt +\[ MSE(\hat{y},\hat{\tilde{y}}) = \frac{1}{n} +\sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2, +\] +!et +and the $R^2$ score function. +If $\tilde{\hat{y}}_i$ is the predicted value of the $i-th$ sample and $y_i$ is the corresponding true value, then the score $R^2$ is defined as +!bt +\[ +R^2(\hat{y}, \tilde{\hat{y}}) = 1 - \frac{\sum_{i=0}^{n - 1} (y_i - \tilde{y}_i)^2}{\sum_{i=0}^{n - 1} (y_i - \bar{y})^2}, +\] +!et +where we have defined the mean value of $\hat{y}$ as +!bt +\[ +\bar{y} = \frac{1}{n} \sum_{i=0}^{n - 1} y_i. +\] +!et +Discuss these quantities as functions of the variable $\lambda$ in Ridge regression. + + +!bsol +The code here allows you to perform your own Ridge calculation and +perform calculations for various values of the regularization +parameter $\lambda$. This program can easily be extended upon. + +!bc pycod +import os +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from sklearn.model_selection import train_test_split +from sklearn.preprocessing import StandardScaler +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 + + +# A seed just to ensure that the random numbers are the same for every run. +# Useful for eventual debugging. +np.random.seed(3155) + +x = np.random.rand(100) +y = 2.0+5*x*x+0.1*np.random.randn(100) + +# number of features p (here degree of polynomial +p = 3 +# The design matrix now as function of a given polynomial +X = np.zeros((len(x),p)) +X[:,0] = 1.0 +X[:,1] = x +X[:,2] = x*x +# 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.inv(X_train.T @ X_train) @ X_train.T @ y_train +print(OLSbeta) +# and then make the prediction +ytildeOLS = X_train @ OLSbeta +print("Training R2 for OLS") +print(R2(y_train,ytildeOLS)) +print("Training MSE for OLS") +print(MSE(y_train,ytildeOLS)) +ypredictOLS = X_test @ OLSbeta +print("Test R2 for OLS") +print(R2(y_test,ypredictOLS)) +print("Test MSE OLS") +print(MSE(y_test,ypredictOLS)) + + +# Repeat now for Ridge regression and various values of the regularization parameter +I = np.eye(p,p) +# Decide which values of lambda to use +nlambdas = 20 +OwnMSEPredict = np.zeros(nlambdas) +OwnMSETrain = np.zeros(nlambdas) +MSERidgePredict = np.zeros(nlambdas) +lambdas = np.logspace(-4, 1, nlambdas) +for i in range(nlambdas): + lmb = lambdas[i] + OwnRidgebeta = np.linalg.inv(X_train.T @ X_train+lmb*I) @ X_train.T @ y_train + # and then make the prediction + OwnytildeRidge = X_train @ OwnRidgebeta + OwnypredictRidge = X_test @ OwnRidgebeta + OwnMSEPredict[i] = MSE(y_test,OwnypredictRidge) + OwnMSETrain[i] = MSE(y_train,OwnytildeRidge) + # Make the fit using Ridge from Sklearn + RegRidge = linear_model.Ridge(lmb,fit_intercept=False) + RegRidge.fit(X_train,y_train) + # and then make the prediction + ypredictRidge = RegRidge.predict(X_test) + # Compute the MSE and print it + MSERidgePredict[i] = MSE(y_test,ypredictRidge) + +# Now plot the results +plt.figure() +plt.plot(np.log10(lambdas), OwnMSETrain, label = 'MSE Ridge train, Own code') +plt.plot(np.log10(lambdas), OwnMSEPredict, 'r--', label = 'MSE Ridge Test, Own code') +plt.plot(np.log10(lambdas), MSERidgePredict, 'g--', label = 'MSE Ridge Test, Sklearn code') +plt.xlabel('log10(lambda)') +plt.ylabel('MSE') +plt.legend() +plt.show() +!ec +!esol + + +===== Exercise: Analytical exercises ===== + +In this exercise we derive the expressions for various derivatives of +products of vectors and matrices. Such derivatives are central to the +optimization of various cost functions. Although we will often use +automatic differentiation in actual calculations, to be able to have +analytical expressions is extremely helpful in case we have simpler +derivatives as well as when we analyze various properties (like second +derivatives) of the chosen cost functions. Vectors are always written +as boldfaced lower case letters and matrices as upper case boldfaced +letters. + +Show that +!bt +\[ +\frac{\partial (\bm{b}^T\bm{a})}{\partial \bm{a}} = \bm{b}, +\] +!et +and +!bt +\[ +\frac{\partial (\bm{a}^T\bm{A}\bm{a})}{\partial \bm{a}} = \bm{a}^T(\bm{A}+\bm{A}^T), +\] +!et +and +!bt +\[ +\frac{\partial \left(\bm{x}-\bm{A}\bm{s}\right)^T\left(\bm{x}-\bm{A}\bm{s}\right)}{\partial \bm{s}} = -2\left(\bm{x}-\bm{A}\bm{s}\right)^T\bm{A}, +\] +!et +and finally find the second derivative of this function with respect to the vector $\bm{s}$. + +!bsol +In these exercises it is always useful to write out with summation indices the various quantities. +As an example, consider the function + +!bt +\[ +f(\bm{x}) =\bm{A}\bm{x}, +\] +!et +which reads for a specific component $f_i$ (we define the matrix $\bm{A}$ to have dimension $n\times n$ and the vector $\bm{x}$ to have length $n$) + +!bt +\[ +f_i =\sum_{j=0}^{n-1}a_{ij}x_j, +\] +!et +which leads to +!bt +\[ +\frac{\partial f_i}{\partial x_j}= a_{ij}, +\] +!et +and written out in terms of the vector $\bm{x}$ we have +!bt +\[ +\frac{\partial f(\bm{x})}{\partial \bm{x}}= \bm{A}. +\] +!et + +For the first derivative +!bt +\[ +\frac{\partial (\bm{b}^T\bm{a})}{\partial \bm{a}} = \bm{b}, +\] +!et +we can write out the inner product as (assuming all elements are real) +!bt +\[ +\bm{b}^T\bm{a}=\sum_i b_ia_i, +\] +!et +taking the derivative +!bt +\[ +\frac{\partial \left( \sum_i b_ia_i\right)}{\partial a_k}= b_k, +\] +!et +leading to +!bt +\[ +\frac{\partial \bm{b}^T\bm{a}}{\partial \bm{a}}= \begin{bmatrix} b_0 \\ b_1 \\ b_2 \\ \dots \\ \dots \\ b_{n-1}\end{bmatrix} = \bm{b}. +\] +!et + +For the second exercise we have +!bt +\[ +\frac{\partial (\bm{a}^T\bm{A}\bm{a})}{\partial \bm{a}}. +\] +!et +Defining a vector $\bm{f}=\bm{A}\bm{a}$ with components $f_i=\sum_ja_{ij}a_i$ we have +!bt +\[ +\frac{\partial (\bm{a}^T\bm{f})}{\partial \bm{a}}=\bm{a}^T\bm{A}+\bm{f}^T=\bm{a}^T\left(\bm{A}+\bm{A}^T\right), +\] +!et +since $f$ depends on $a$ and we have used the chain rule for derivatives on the derivative of $f$ with respect to $a$. + + +!esol diff --git a/doc/LectureNotes/_build/.doctrees/chapter1.doctree b/doc/LectureNotes/_build/.doctrees/chapter1.doctree index f3c5d6c3bd5a2556ab571ea4b87f23c44bf680a0..94ea5642e823665469809e0e3efb5c04df87eb41 100644 GIT binary patch delta 93650 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

)@-f=rxv4^}AU}eR(0Xj4B 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 b19Z%uQrG_g7d?(W delta 68954 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

UPCg;%U|G)(nyth*zOg;5A#! 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 literal 170550 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� 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 H{Q18DE$OH} literal 6537 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 W6X%xM-?-Z%2=JWc+0rvkxBmmhcdE(& diff --git a/doc/LectureNotes/_build/html/_images/chapter1_19_1.png b/doc/LectureNotes/_build/html/_images/chapter1_19_1.png index 1b03052ecbb750c4fb390134906ac70316a4ced2..1c9a4899aa4f848fb46420f56673caddaf5eff7d 100644 GIT binary patch literal 9539 zcmZ{KXH*ki)b1pqNskKnQbPz*q^R@`N=X0#DJn`;i1d!36F?M11cFE}Dn*Kb^iEKD zHBtox5eSjqn-DtO@oV?4b=UV}Rx)Sy*=Nr_XSZihtcj5x3nMop001l)w6-Y#KqA45 zlYtH#ab-yy2Y;0Obnf_>d1C!=_CAil4SPQ?H%~t|=lh69jy}H5o*pt%a#B|$5Kex6 zUcSoG((eC5Am!=vQ2M9+Rx8Nlj2GI{7XX;f{k@+ zl~^4TQwwC;nD;(bN-$iCiF)_A9!&(UUAs1w=*K|AjTs1}CX^_L9+FFfOP6jPFU^K& z%x^EQHSOLyZerLmSL<7k#?ryzi?(LZJn%6w=M5q>we$PL*kfY0m1v>xB=sUq1ae^h zJcG9OK^8Q^;mJ%ex?Hk}&tKDrg_P{`b6pFyF5DP3GmARSn31y-&?|}N) zX`|LU^}>uKN8lASfRE?_B)}So-D}cS);dD_3ILgf(pNSc9!7Wy3*aQm%8XfS{>euK zArrp|DalP0tf!6I09aT953zmD%Z*SraH_`wB-GPE7CkKv=p}^pwon9~%rINMt!so* zOq=$W3TpD__JJN+{hE&oDK{zP;h<}-&_0hw^rj*yL9Uf5M%YbiiJXxKx|D0X+MBJ< zP}m8+N1-bQTbU?@hM-=_h2;ET)=@y}na3q0Yg0hl=(NZFT0{AO{UZU!gnQT;j zl9j>M^o>>Pg;N%lqX*Utp1C)+Zk?`A>TVTjnQZn=JUz;t)ZB7KDeT+Y3hh6c^EKLn z5~TOS`$plXq2=^mocK6&+qJFhsMI9h%}Jk%)6nMAgLRy8g{ijx7x~Gb7-?Tk72B@@N z4ESWoxb_x3mU{n>QTK`&3S##*J(R4W5dL%f)$T_Fmerymlko57B4$?gWyTz^W55wl zOWZ#cYqtvdYTLBYhV%(QIyW2%q>Z*8YSPC_=$Jj9NV{gJ3 zq-9QEompn=#ug%gYvoVRiiJ!tgvbH(GON>5ma%o;+tb37941FHN4ZZU1I6+F*hkru zIZuIcW(xCZYctRiKckMNzBvu5JhlT^WX2q^8u92+W>~{ex6S2hNuUjoW`FIhk$Q00 zz(TwPym+A~f^{NvkKchnE3g2!2K+b3hjqi_fN9qf+qS z5ACklLx>^+neXtZ@PRR`veEhU_NU+`{N$6lpP_$WsKe;gtJm0gwrX3Lw}%J$P|$Y;r+FJXm8)_zJD+5K2}7J z_Y?vYC1=r5s)05p%4L}`h_sp?g!BM1eq#$Fa~Lk!{F6rdXW3@Bz*fEE4cZy?0ud<2 zm7Am>A1d5hy!Q~8PgLz#50pus5l9;6vFV)v+#o>v-agfa+ZEeR=S7c?J5v6X09YCM z2oTKBZRsl?14OBJyddL97@%`fhzkS1Y}37a`xUXCGlGB=WaIeFm@pxA90no1JthlujC7&;`VJeAYKRu83~A6*)F9H* z(xwJRX4kiMJ=EDKG&1)lSC5fMg2qVkYc}X!d?Y>w9oWFH=XJ5A+{+y;MOS$N!1iV- zou)l_;XNt^Ptp(G=%BC97|mK+cbk`xo9WxFIz#+`r3z$|o9#NF_i9~Ik{`v!3_(cr zJ#JbVeNBce*>sfG9$K2(+T%X|Fq~XM4qQVbt>0Un;SE!~?D%XqboSeud*(bwE;K0m z-!~Et=cQhVAmyrkgewECT$Z0ZZVPMORRNgUxJJq|ytcIMun(~EUEMZ5-m388^a2Bs zNKHGp?lBuZ9QjNldBkAfR$i{^j`p|p#(9GKdSRJ!;ceR;sgt6ts~_AaLwz;Mpb;@I zC;LsRRZ>-#hR$RF}KDQ=bH=zvl5E$$24?_5Ri@kwTeqkBTBw^S`~q z9t@-0Y`M#3p}Yjv9HlrZxJ_0EV8IQtqK?#0r(c1~}&-7!=FxMZvHb ztV2$DT9967Om7pWblTKG5MFi8+uS5+eZX@+0flQwb=*`a{%vp9$(Z+jL+V>RUF9yB zSZnd&$}*`IHHU>!L7xh{BZQ)=7nuGA;mq03-!{oE=M*X~?Xm|o}36mH9DEQ<14 zczv$DeOA&22$($lIN7d#-)HXK>OUq3cKGhcwQsk}L_J=5@f(YF;487gRKQq$bl(>S zBh@|B1S9yfB#TW2CQJ3#<6hT;freH2b+J7E;Iz$6hcTJFwYNy5rN1#tbH51R`C+HW zMG@Tb4u_b(ia=_58jIRHBdYy`qL|+0{(ay4S~tsJ;KDzP?k+LVB@um=Sae{SReI0D z@0Mu)L*}}N_5nW^C*O-e;bKoE=u8_gBpKAvN7Ojy5kOIs&gdBRjW27KwCK&Sveg$w zgdI)m)8p~goy*DnQ#(jnr)&n+jb|^*4|a{y&xYL;ZiRX%JQd)d7{g99ZLj{S?aGXN zV?ip^mEnl#zZxE@n{SOj4 znE%oix*9482qni%t4eVJ-VTt7E~9O8neQN7@weo>z$=p-&kyc|8uPZbeTR7|F!X+)$m0`u=Fs>qyh^T{2G_@(#b;0At|@cu4Ze zRSPWUzJIqsExI7$(V96s!)q`-+ws}?u?n&KmsuJx%)Diosc%#)2rp(Uh%f~sZ;ZL# zknE_vbDmo8d7Aq^XBp6IdRrF>?HBiHNRv2kE4Ub%f0_I7dj+pyOOOd!b$zF@2zF*x zTyEPRsLvez2UP@%x!^5`Oc_yrc=Pga?*4oA-zuG}qA(NCAShaRxA6&j4Mw>M=-ug# zaxNE4V(fB_NHhAgCkng_v(FF$LxmR~=_$tMx({|a6D@VI@!3p?+WXM_`ctekS9xsdg0Kox zVld)z^(6GC=9W|VAU#AiXV+T?rDu=p$vu(194ueyl%#-n9WLAETB%&iv)zA&EAwA& zDSy2@JS$UVTv7af7gFlc}YgcAtKx06S1dXV=-a72g$qr&nB91pE*B4ldSGjSKC4vo=@s>$nJKPIZT`jvsV$@fwAIA*t7Hf)g#-UI60|3R7J?g5EP%BsP?ec9G zXrJ0VSeV$_958wE2Z?cB0uOGR@(!JNW$KNIcO!{0FOBbTGi(DskFR=ahQ)eFG2M+GCQ`_@j{C@!vKb{02hZLWUdJ$HPbU4-FrLGZ`AVuNB|&?QLu zcctsi{u|euo=p5zn_MrP&Lip~m|5NDQIX2)rMahG!Y*-1{JxwMoTQUD&Dxb-Klg7G z({$)AL}9$Ytu-(_5L2zInf5N)?QVR0pw3)J2bDXb>E)cR95ksa=36`)GcY~9I`*eK z{V6S8D1jy?NPOaCO3L9J@8Q2Za^WV|O5ia=TIQ^(5)6Jp;nHumj=^BzW_fUY5wpz9 z63BHt+tr$z8{EspxO6RphZdT2S!ZVEt<)>f&69IE7mr)*gZS3jae|o$TJ!o%PREDX zg2N1r@V40VSclJUUYA9qgKYoCN92p(wZ{FrqQLf^L$)!p(>8UNh57Ni!cW|Wf*kj# zK>Hj}R`qhk>IZ}NU5?QNHJ1$we&4l(c!*TC=bsF;SmYvmR1zpu$i@^Td3iipLtOFenCvcqAkxyp# zaVs(Pb>2l8kxR7cW(am?i!a4VBNYk!=e)>)t7Fw^9I`GeMD;_zNzXrt`TNNu?iQj zxdP@npo>0UVzP~qq7(2p_fzP;ZIhmLfKh(*X2JP`u$htRb<_ytC&Z4IxK?x1Ks)2} zBFp)F<5v<8T|JSygcn9e$IL9z8t}&)4u8->nAcY7@RrH$IWdNqZP7A?egkP8+!;Q8 zI_j^|&|u&1iWn_lNLvYLWe~6p6#BQrqxV#WOV6I@0M06u%BrBzJo2h+lFs z_ZninKjCl%XTpC-F#Q_J3n8Tgg=wR#r}HWhD;I3NUa0OgLw*H^oI;}c-O(>_UK+|I zMxBw83Y-`hArPiwmeeBYAP>aiJ#I@0!Y$YEAY!wV$c^OBm>s9b6@E9VBG9CurCN

s;>4E-|#t%Fo7)L$ZQg4yi33l~YC>k_5a9&6JTvq4bL}qbfB98VpYo<4puR zuH2J{u)bEo&^`Chs2wbL z2e9vAlq6Wr|M>JyqF6eK^RFmX6N|XB)bst^zyKA`crQ+|4?ZMrXpmqolz4L1zn*+> zsx_{xYi>=m0ktP5e@dw(BYSsDg-j5MC+sQf2?x8AVk47IhE_l0q?oxvL&V~(;yO|5 z$o+Cz6)rJaP@#UMFhB7Xc^tiD5VBSLIVo`<&P=F*fyjZX5DN4nvz#Rv-r=)b8xM%4 zctlUwg=l~GPpV2FCF(D5Gjy*A${YgtdysLXt+ND~EzbTJ3FW7U+iqk8HNDk!Rdz8r*@9&}`eXR96~vahc+v zNiNJTz7{8~oG^1vsRpwou`Kp3H;7Sj=^b^|lKO<{S3zxLLE+R813%LlXoSYM1~pUv zi8bomi-m`uMF<*viK|+OiUOqnh@{-`;Me;y!52%Ppjker`^$LLcN={i&>XR?sEyPy z^^xzSAwdXi$t^#AT6kut_2zo@%(q%c&|>;<&}f@8l_Ni;%cfSlQArb_(gqg?L`ZtnWCt_aO>4- zt9BrShNy6qYYg>rt?%p3)tE#@B*Ck7KRw@WOL%TxBx%2%i#{+6VPUO1U7K2Wll?e0 z=rj|)qNuC;v9G6b{?+{CV?~HvN7G5;xck_%)(fe}N4nWORW0tXthUcGWEow*v4sM-GDh{3Ta5=zL`^Mtl#%Y*)B^~&y$l6$cVzvZNSB7 z{|>&rePek-nZ1HZc+_UweU+8biB%x!>`lbGD4U=kj|(0SjK66y13rBOIPO#~C@aVJ&^q=kp8)mIJbeCLye#L4=1@NxcqaIcv76g}Oo;83w<_6tiR@>w0T% z;=uOA(a$sQQaPGjs5-ZC^S>zAQ=}{#E+0jn?o`xIzE6k`#2xoc6-HQz2Sq9;F`6P4 z=x;6(#ysMT`e<;=S`;Vhd(RYUfJRm;8-1UVM(Vs;WSvhGY|@cI20i47v+glQOz~{kOH;+W}#VTprPYH}Ir8+uDf=sjYY3#!vn{%z_`EuRJ{&t;1-GYef*FRdxI8p8c88 zf+|d^?yGszMRQCXTWI?fXqs?k=cs~qJw3fSpqcUcMn2VCqP+S+0xf@dOK33Rbgul_ z1ajaUM_d6PnCA_2v%GZNy z>xVy%EtY9w{to|0*TK{*DTF92Hqd?2<*01*s_g# zMM<3?rwZ>F`rv1T02{!oDE$~YqZWrLM>e{2y^@s5urRVeUWKf`P`kk`>JpAW*o*De32mbH?-#A9icsriJ<3*s4^G3~cZn;&+B4DEB?y(u%s zO5q2Jnp8bJsxsv5SAT6>f%HTolC~8mf*`X$4A9!*pL8l-E1`D(gy%pg*MYF?QOL8b zuM%<2=g^e22NykES9`A46-7_+iTw6_d5iyO=f|C7-+wd6*BDn6tr%5x_X|x8U4&xPM_IL~n3;FKBJu{U_AO`D zn|}y2^>mMNKhJ30(mz_uv+Myf=q2TaOhd7^nkx4H%-@p`62eABb*Rr# zwS5gZ%$6%XuI^}?W*nop8+Q6Ush94re2Sbp{~u}9y;YG&BiuLV+rx}&Q+j%1wgy|; zT2Izt?~Ery|MF(~A;pP1D{t|MVz>KJ-`rkaGbp*xKd3dc>3m?3;TdC3e-%9>q47kL z6GxD*Ag_9;EyYd|41PrsA@oDdUo(FM{fjhx=Ry-%Lran!rAvVA3chc;mDPb~Kr#RX%>&=Xv$Y{;?ah>H% z1beZ9B)Hx3aIDJyps}YhEc9S-kt??N>R)jKXQeq)-y=r5A~(xt)ZX0H)-NJ=PF0;p zeVU_VJbTU2bobNHeGI0KLSj!T~|zs867)^D zE-9y6M5dU|7ZD^5X9(|-G&tX3hmtO6%+sa*kbLk+9xb0l9E@o^6q)&RdG4| zsJGQVE9!|@7-G2^Cq)p+9nYZ)S}G2x#d|PK&7@ovcU9Kc7JuIY`&Q=>Z<7N@xBE@U zNe3l&$f@kv*$o!%u{_Us?Kdm|0w{#O0B*fsqvksK(nG$QmPO5LHP$E+6><40)G#+^ zMM|Xv!8DV4RXq4F$I=$?gvCtdzm0$T``)3@j$~t~o&bn5PoAo6+z#hB{%7YiJSpSd!;04^5CpUvR$>51!*aI-!r;Zl zF7%POmba}6{W)qRk(l7wlvtbV2Cr&tXXL)L#|+)shiU!H-mC5lf>1tuxk$!!Ns@Jx z-RAm@4%H9cJd^f`3-9Vz9RBFogzo9&|NG5ah@tEEQ_P`)Hb-0piFUe5GF1#Y@TN^J zvQlLe+bYE|TAbxdHfaZojN877ELx+GrdOnL7#{uY=aLyI+CaG0miq_w^xf>ejmusW z{^YXP5th|>*9!OcudXk`!B-rIMWnmSSA*SA91s8{3Vu*unKB9qxbU;d{|&j)zf@`q zIdD6R%8d+E#0NuKCc14r0^P6RJAuoxva;c!=AQg;xU(6k7t}7)O9ubvUK9W}4gYV2 zTVja>ohJr?P-3xRzvGOZ^z}A`!(+ebR0u-%F5*SHS4sl~q~SdRDCE>kEQJk_fNnqt z3469oe7yBCe}|!YD`ti>VhOcitDDg@_P+O`6N?=j4jl6`$c87zFyO;jX)-j>+BBLP z^w9s90HodZgE7jfmNB)*Y`30-BH2N55LZHm8vj=p-8{aqlRfGA4(>yPOQiFaNdK%T z=PLk5s}4#|4Q@^vC^)Bu0Q)HJTyP8+RrO^hpTx{){(pb+UJjZhk3;O-zpskMjskV^ z$38?WN}@Ay+nU&WgZSrOggb3rUkYaab>E_uVSi(qS55kA_FRpm&H z(Y@DYvg6JubDcvM+I-dl5#s;u?SJEDxOIL4fA)Lh#)9hK>3P0a1a}%m9Y5Rw`$A&N zAch>H_y$Dp2Id)=Xi&z&jjv_~!G7hIGR9`Hy)9$LTc>6)`ojGEpBnU~n3Lx-&Ci^Q zm?nC41`op$W)w*>R&{*^it~{(7?gk@c%Y1}>c6L4I86W>?~`ctrQEpcIH!kXw2i?Q zEg?atC1rA$K)$ z;|h0=FA&{|MZ@^466yc%NAF(%OX+ zb`wJqXGF4Vd*3V0PYFO;IEWX4c4+12Zfb+GO>sUbyj&;E^}1T>gZMu=$}z_{LWo9- z=El>;x_64+y`3X~l^b@N++*wBsl;Ul>89V%0%U-3&-GDq36YWlMqP7~bZs&7MD^tWt)b*M?bCi}cq77L|oPWW5y#eE6<1K?=j z#yJC_AO6+vhWcRu`P$YEu(zOijwmU)-bhOnITqiG1#GTX_muN2X^!}6`7jW70f~~| z6E@Z5^B=p(4%nxeqrU+U=tep>9Rxu>71E&D;3t@2SfPp#;<*=Ni`TMzH+fq`gc4O5 zh~I%6?_b}1(Ebw=GqJ?(N6AMLcooVHL&I?QaH8s$@MG}+wQHQv0B+)imKa-=D}9}l z&@@^K&q?-%N9ph9aaa0uY-4<-x>wE+>S1?S?AY+G-4ZqT>{B|AaGN^7Nb(U!%l6k! z?5*a-VoVql5d&b8#~CPRfk8aEJTv3|HSjYUXNM0l=v)x$gfITZn~|YL|LfN^_Yr{# zq~zmVX`w*J@9t+w`Zs-9V$FMm0V&}?1Re+5bLv=ylb-8x#(kct0P48#$=z;x-@&10 zAbNNuF@zo;1!*ZqApSz<1JUgt2lWF=HCpwzKG7;*P-fube0zf`;cP@&ES09kQYw|> tmuS-SV%@(+y{-NKe&O@K3fy?g=Eg5h|BXEP_k$(?qhq99e$6iO{{S_&+m8SM literal 9423 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 diff --git a/doc/LectureNotes/_build/html/_images/chapter1_33_0.png b/doc/LectureNotes/_build/html/_images/chapter1_33_0.png index 20dc302772322d39d59599ee94acb9420f411c33..37bbb1c40d0da2cbc00ec3cff4206e450f3130d8 100644 GIT binary patch literal 14414 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 G=zjsYa&~|K literal 13191 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

F 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 literal 9481 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. This feature will be explained in more detail during the lectures of week 35 and week 36. You can find more in .\n", "\n", "3. Using scikit-learn, compute also the mean square error, a risk metric corresponding to the expected value of the squared (quadratic) error defined as" ] }, { "cell_type": "markdown", - "id": "83bc7720", + "id": "9b6db66e", "metadata": { "editable": true }, @@ -4113,7 +4123,7 @@ }, { "cell_type": "markdown", - "id": "28e6d655", + "id": "91003866", "metadata": { "editable": true }, @@ -4124,7 +4134,7 @@ }, { "cell_type": "markdown", - "id": "ab874e06", + "id": "341e67fe", "metadata": { "editable": true }, @@ -4136,7 +4146,7 @@ }, { "cell_type": "markdown", - "id": "d936331f", + "id": "486fb461", "metadata": { "editable": true }, @@ -4146,7 +4156,7 @@ }, { "cell_type": "markdown", - "id": "4d0520ed", + "id": "b6785408", "metadata": { "editable": true }, @@ -4158,23 +4168,89 @@ }, { "cell_type": "markdown", - "id": "a4c22443", + "id": "46c12d87", "metadata": { "editable": true }, "source": [ "You can use the functionality included in scikit-learn. If you feel for it, you can use your own program and define functions which compute the above two functions. \n", - "Discuss the meaning of these results. Try also to vary the coefficient in front of the added stochastic noise term and discuss the quality of the fits." + "Discuss the meaning of these results. Try also to vary the coefficient in front of the added stochastic noise term and discuss the quality of the fits.\n", + "\n", + "\n", + "**Solution.**\n", + "The code here is an example of where we define our own design matrix and fit parameters $\\beta$." + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "ff067689", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import os\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.model_selection import train_test_split\n", + "\n", + "def save_fig(fig_id):\n", + " plt.savefig(image_path(fig_id) + \".png\", format='png')\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", + "x = np.random.rand(100)\n", + "y = 2.0+5*x*x+0.1*np.random.randn(100)\n", + "\n", + "\n", + "# The design matrix now as function of a given polynomial\n", + "X = np.zeros((len(x),3))\n", + "X[:,0] = 1.0\n", + "X[:,1] = x\n", + "X[:,2] = x**2\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", + "# matrix inversion to find beta\n", + "beta = np.linalg.inv(X_train.T @ X_train) @ X_train.T @ y_train\n", + "print(beta)\n", + "# and then make the prediction\n", + "ytilde = X_train @ beta\n", + "print(\"Training R2\")\n", + "print(R2(y_train,ytilde))\n", + "print(\"Training MSE\")\n", + "print(MSE(y_train,ytilde))\n", + "ypredict = X_test @ beta\n", + "print(\"Test R2\")\n", + "print(R2(y_test,ypredict))\n", + "print(\"Test MSE\")\n", + "print(MSE(y_test,ypredict))" ] }, { "cell_type": "markdown", - "id": "5da59397", + "id": "b7704c33", "metadata": { "editable": true }, "source": [ - "### Exercise: Normalizing our data\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "1c2ac182", + "metadata": { + "editable": true + }, + "source": [ + "## Exercise 3: Normalizing our data\n", "\n", "A much used approach before starting to train the data is to preprocess our\n", "data. Normally the data may need a rescaling and/or may be sensitive\n", @@ -4214,8 +4290,8 @@ }, { "cell_type": "code", - "execution_count": 41, - "id": "74e0714b", + "execution_count": 42, + "id": "dc94e107", "metadata": { "collapsed": false, "editable": true @@ -4223,12 +4299,12 @@ "outputs": [], "source": [ "# split in training and test data\n", - "# X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2)" + "X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2)" ] }, { "cell_type": "markdown", - "id": "af983a9c", + "id": "eb016ff4", "metadata": { "editable": true }, @@ -4238,8 +4314,8 @@ }, { "cell_type": "code", - "execution_count": 42, - "id": "5ad3d9f9", + "execution_count": 43, + "id": "1c3b0985", "metadata": { "collapsed": false, "editable": true @@ -4254,7 +4330,7 @@ }, { "cell_type": "markdown", - "id": "699eebfa", + "id": "fd966077", "metadata": { "editable": true }, @@ -4271,8 +4347,8 @@ }, { "cell_type": "code", - "execution_count": 43, - "id": "eb9eb5fe", + "execution_count": 44, + "id": "dff4770a", "metadata": { "collapsed": false, "editable": true @@ -4289,28 +4365,650 @@ }, { "cell_type": "markdown", - "id": "a7dfb469", + "id": "9876ac7f", "metadata": { "editable": true }, "source": [ "where $y$ is the function we want to fit with a given polynomial.\n", "\n", - "Write a first code which sets up a design matrix $X$ defined by a\n", - "fifth-order polynomial. Scale your data and split it in training and\n", - "test data.\n", + "\n", + "**Solution.**\n", + "We present here the solution for the last exercise. All elements here can be used to solve exercises a) and b) as well.\n", + "Note that in this example we have used the polynomial fitting functions of **scikit-learn**." + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "305042b6", + "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", "\n", - "Perform an ordinary least squares and compute the means squared error\n", - "and the $R2$ factor for the training data and the test data, with and\n", - "without scaling.\n", "\n", - "Add now a model which allows you to make polynomials up to degree\n", - "$15$. Perform a standard OLS fitting of the training data and compute\n", - "the MSE and $R2$ for the training and test data and plot both test and\n", - "training data MSE and $R2$ as functions of the polynomial\n", - "degree. Compare what you see with Figure 2.11 of Hastie et al. Comment\n", - "your results. For which polynomial degree do you find an optimal MSE\n", - "(smallest value)?" + "np.random.seed(2018)\n", + "n = 30\n", + "maxdegree = 14\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", + "TestError = np.zeros(maxdegree)\n", + "TrainError = 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", + "\n", + "for degree in range(maxdegree):\n", + " model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))\n", + " clf = model.fit(x_train,y_train)\n", + " y_fit = clf.predict(x_train)\n", + " y_pred = clf.predict(x_test) \n", + " polydegree[degree] = degree\n", + " TestError[degree] = np.mean( np.mean((y_test - y_pred)**2) )\n", + " TrainError[degree] = np.mean( np.mean((y_train - y_fit)**2) )\n", + "\n", + "plt.plot(polydegree, TestError, label='Test Error')\n", + "plt.plot(polydegree, TrainError, label='Train Error')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "87233cf1", + "metadata": { + "editable": true + }, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "id": "41cbe8c3", + "metadata": { + "editable": true + }, + "source": [ + "**a)**\n", + "Write a first code which sets up a design matrix $X$ defined by a fifth-order polynomial. Scale your data and split it in training and test data." + ] + }, + { + "cell_type": "markdown", + "id": "d4294280", + "metadata": { + "editable": true + }, + "source": [ + "**b)**\n", + "Perform an ordinary least squares and compute the means squared error and the $R2$ factor for the training data and the test data, with and without scaling." + ] + }, + { + "cell_type": "markdown", + "id": "0f5ec60d", + "metadata": { + "editable": true + }, + "source": [ + "**c)**\n", + "Add now a model which allows you to make polynomials up to degree $15$. Perform a standard OLS fitting of the training data and compute the MSE and $R2$ for the training and test data and plot both test and training data MSE and $R2$ as functions of the polynomial degree. Compare what you see with Figure 2.11 of Hastie et al. Comment your results. For which polynomial degree do you find an optimal MSE (smallest value)?" + ] + }, + { + "cell_type": "markdown", + "id": "650a7cf6", + "metadata": { + "editable": true + }, + "source": [ + "## Exercise 4: Adding Ridge Regression\n", + "\n", + "This exercise is a continuation of exercise 2. We will use the same function to\n", + "generate our data set, still staying with a simple function $y(x)$\n", + "which we want to fit using linear regression, but now extending the\n", + "analysis to include the Ridge regression method.\n", + "\n", + "We will thus again generate our own dataset for a function $y(x)$ where \n", + "$x \\in [0,1]$ and defined by random numbers computed with the uniform\n", + "distribution. The function $y$ is a quadratic polynomial in $x$ with\n", + "added stochastic noise according to the normal distribution $\\cal{N}(0,1)$.\n", + "\n", + "The following simple Python instructions define our $x$ and $y$ values (with 100 data points)." + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "57da61e9", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "x = np.random.rand(100)\n", + "y = 2.0+5*x*x+0.1*np.random.randn(100)" + ] + }, + { + "cell_type": "markdown", + "id": "4f6c6ed4", + "metadata": { + "editable": true + }, + "source": [ + "Write your own code for the Ridge method (see chapter 3.4 of Hastie *et al.*, equations (3.43) and (3.44)) and compute the parametrization for different values of $\\lambda$. Compare and analyze your results with those from exercise 3. Study the dependence on $\\lambda$ while also varying the strength of the noise in your expression for $y(x)$. \n", + "\n", + "Repeat the above but using the functionality of\n", + "**Scikit-Learn**. Compare your code with the results from\n", + "**Scikit-Learn**. Remember to run with the same random numbers for\n", + "generating $x$ and $y$. Observe also that when you compare with **Scikit-Learn**, you need to pay attention to how the intercept is dealt with.\n", + "\n", + "Finally, using **Scikit-Learn** or your own code, compute also the mean square error, a risk metric corresponding to the expected value of the squared (quadratic) error defined as" + ] + }, + { + "cell_type": "markdown", + "id": "83164bcc", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "MSE(\\hat{y},\\hat{\\tilde{y}}) = \\frac{1}{n}\n", + "\\sum_{i=0}^{n-1}(y_i-\\tilde{y}_i)^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "35e2f214", + "metadata": { + "editable": true + }, + "source": [ + "and the $R^2$ score function.\n", + "If $\\tilde{\\hat{y}}_i$ is the predicted value of the $i-th$ sample and $y_i$ is the corresponding true value, then the score $R^2$ is defined as" + ] + }, + { + "cell_type": "markdown", + "id": "e7fcd4bf", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "R^2(\\hat{y}, \\tilde{\\hat{y}}) = 1 - \\frac{\\sum_{i=0}^{n - 1} (y_i - \\tilde{y}_i)^2}{\\sum_{i=0}^{n - 1} (y_i - \\bar{y})^2},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "f980f5dd", + "metadata": { + "editable": true + }, + "source": [ + "where we have defined the mean value of $\\hat{y}$ as" + ] + }, + { + "cell_type": "markdown", + "id": "404c4590", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\bar{y} = \\frac{1}{n} \\sum_{i=0}^{n - 1} y_i.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "de7b647e", + "metadata": { + "editable": true + }, + "source": [ + "Discuss these quantities as functions of the variable $\\lambda$ in Ridge regression.\n", + "\n", + "\n", + "**Solution.**\n", + "The code here allows you to perform your own Ridge calculation and\n", + "perform calculations for various values of the regularization\n", + "parameter $\\lambda$. This program can easily be extended upon." + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "c64fe530", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import os\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.preprocessing import StandardScaler\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", + "\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", + "x = np.random.rand(100)\n", + "y = 2.0+5*x*x+0.1*np.random.randn(100)\n", + "\n", + "# number of features p (here degree of polynomial\n", + "p = 3\n", + "# The design matrix now as function of a given polynomial\n", + "X = np.zeros((len(x),p))\n", + "X[:,0] = 1.0\n", + "X[:,1] = x\n", + "X[:,2] = x*x\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.inv(X_train.T @ X_train) @ X_train.T @ y_train\n", + "print(OLSbeta)\n", + "# and then make the prediction\n", + "ytildeOLS = X_train @ OLSbeta\n", + "print(\"Training R2 for OLS\")\n", + "print(R2(y_train,ytildeOLS))\n", + "print(\"Training MSE for OLS\")\n", + "print(MSE(y_train,ytildeOLS))\n", + "ypredictOLS = X_test @ OLSbeta\n", + "print(\"Test R2 for OLS\")\n", + "print(R2(y_test,ypredictOLS))\n", + "print(\"Test MSE OLS\")\n", + "print(MSE(y_test,ypredictOLS))\n", + "\n", + "\n", + "# Repeat now for Ridge regression and various values of the regularization parameter\n", + "I = np.eye(p,p)\n", + "# Decide which values of lambda to use\n", + "nlambdas = 20\n", + "OwnMSEPredict = np.zeros(nlambdas)\n", + "OwnMSETrain = np.zeros(nlambdas)\n", + "MSERidgePredict = np.zeros(nlambdas)\n", + "lambdas = np.logspace(-4, 1, nlambdas)\n", + "for i in range(nlambdas):\n", + " lmb = lambdas[i]\n", + " OwnRidgebeta = np.linalg.inv(X_train.T @ X_train+lmb*I) @ X_train.T @ y_train\n", + " # and then make the prediction\n", + " OwnytildeRidge = X_train @ OwnRidgebeta\n", + " OwnypredictRidge = X_test @ OwnRidgebeta\n", + " OwnMSEPredict[i] = MSE(y_test,OwnypredictRidge)\n", + " OwnMSETrain[i] = MSE(y_train,OwnytildeRidge)\n", + " # Make the fit using Ridge from Sklearn\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", + " # Compute the MSE and print it\n", + " MSERidgePredict[i] = MSE(y_test,ypredictRidge)\n", + "\n", + "# Now plot the results\n", + "plt.figure()\n", + "plt.plot(np.log10(lambdas), OwnMSETrain, label = 'MSE Ridge train, Own code')\n", + "plt.plot(np.log10(lambdas), OwnMSEPredict, 'r--', label = 'MSE Ridge Test, Own code')\n", + "plt.plot(np.log10(lambdas), MSERidgePredict, 'g--', label = 'MSE Ridge Test, Sklearn code')\n", + "plt.xlabel('log10(lambda)')\n", + "plt.ylabel('MSE')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "687ff081", + "metadata": { + "editable": true + }, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "id": "2e5938cd", + "metadata": { + "editable": true + }, + "source": [ + "## Exercise 5: Analytical exercises\n", + "\n", + "In this exercise we derive the expressions for various derivatives of\n", + "products of vectors and matrices. Such derivatives are central to the\n", + "optimization of various cost functions. Although we will often use\n", + "automatic differentiation in actual calculations, to be able to have\n", + "analytical expressions is extremely helpful in case we have simpler\n", + "derivatives as well as when we analyze various properties (like second\n", + "derivatives) of the chosen cost functions. Vectors are always written\n", + "as boldfaced lower case letters and matrices as upper case boldfaced\n", + "letters.\n", + "\n", + "Show that" + ] + }, + { + "cell_type": "markdown", + "id": "d9e99254", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial (\\boldsymbol{b}^T\\boldsymbol{a})}{\\partial \\boldsymbol{a}} = \\boldsymbol{b},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "f6caf857", + "metadata": { + "editable": true + }, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "id": "004eea35", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial (\\boldsymbol{a}^T\\boldsymbol{A}\\boldsymbol{a})}{\\partial \\boldsymbol{a}} = \\boldsymbol{a}^T(\\boldsymbol{A}+\\boldsymbol{A}^T),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "fd3037ee", + "metadata": { + "editable": true + }, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "id": "53700a04", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial \\left(\\boldsymbol{x}-\\boldsymbol{A}\\boldsymbol{s}\\right)^T\\left(\\boldsymbol{x}-\\boldsymbol{A}\\boldsymbol{s}\\right)}{\\partial \\boldsymbol{s}} = -2\\left(\\boldsymbol{x}-\\boldsymbol{A}\\boldsymbol{s}\\right)^T\\boldsymbol{A},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "3e15d191", + "metadata": { + "editable": true + }, + "source": [ + "and finally find the second derivative of this function with respect to the vector $\\boldsymbol{s}$.\n", + "\n", + "\n", + "**Solution.**\n", + "In these exercises it is always useful to write out with summation indices the various quantities.\n", + "As an example, consider the function" + ] + }, + { + "cell_type": "markdown", + "id": "75c00aa1", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "f(\\boldsymbol{x}) =\\boldsymbol{A}\\boldsymbol{x},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "765be39e", + "metadata": { + "editable": true + }, + "source": [ + "which reads for a specific component $f_i$ (we define the matrix $\\boldsymbol{A}$ to have dimension $n\\times n$ and the vector $\\boldsymbol{x}$ to have length $n$)" + ] + }, + { + "cell_type": "markdown", + "id": "371bb281", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "f_i =\\sum_{j=0}^{n-1}a_{ij}x_j,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "7531bc5c", + "metadata": { + "editable": true + }, + "source": [ + "which leads to" + ] + }, + { + "cell_type": "markdown", + "id": "096367a8", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial f_i}{\\partial x_j}= a_{ij},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "f2b48135", + "metadata": { + "editable": true + }, + "source": [ + "and written out in terms of the vector $\\boldsymbol{x}$ we have" + ] + }, + { + "cell_type": "markdown", + "id": "64e7a83f", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial f(\\boldsymbol{x})}{\\partial \\boldsymbol{x}}= \\boldsymbol{A}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "7cd415f6", + "metadata": { + "editable": true + }, + "source": [ + "For the first derivative" + ] + }, + { + "cell_type": "markdown", + "id": "b1d73cf8", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial (\\boldsymbol{b}^T\\boldsymbol{a})}{\\partial \\boldsymbol{a}} = \\boldsymbol{b},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "23c1b258", + "metadata": { + "editable": true + }, + "source": [ + "we can write out the inner product as (assuming all elements are real)" + ] + }, + { + "cell_type": "markdown", + "id": "f26c3a7c", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\boldsymbol{b}^T\\boldsymbol{a}=\\sum_i b_ia_i,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "73594acc", + "metadata": { + "editable": true + }, + "source": [ + "taking the derivative" + ] + }, + { + "cell_type": "markdown", + "id": "9e2c6bff", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial \\left( \\sum_i b_ia_i\\right)}{\\partial a_k}= b_k,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "f0ecd236", + "metadata": { + "editable": true + }, + "source": [ + "leading to" + ] + }, + { + "cell_type": "markdown", + "id": "9a6ec43b", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial \\boldsymbol{b}^T\\boldsymbol{a}}{\\partial \\boldsymbol{a}}= \\begin{bmatrix} b_0 \\\\ b_1 \\\\ b_2 \\\\ \\dots \\\\ \\dots \\\\ b_{n-1}\\end{bmatrix} = \\boldsymbol{b}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "eb98056f", + "metadata": { + "editable": true + }, + "source": [ + "For the second exercise we have" + ] + }, + { + "cell_type": "markdown", + "id": "5e5ac90a", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial (\\boldsymbol{a}^T\\boldsymbol{A}\\boldsymbol{a})}{\\partial \\boldsymbol{a}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "c8bdfe01", + "metadata": { + "editable": true + }, + "source": [ + "Defining a vector $\\boldsymbol{f}=\\boldsymbol{A}\\boldsymbol{a}$ with components $f_i=\\sum_ja_{ij}a_i$ we have" + ] + }, + { + "cell_type": "markdown", + "id": "4dacfd83", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial (\\boldsymbol{a}^T\\boldsymbol{f})}{\\partial \\boldsymbol{a}}=\\boldsymbol{a}^T\\boldsymbol{A}+\\boldsymbol{f}^T=\\boldsymbol{a}^T\\left(\\boldsymbol{A}+\\boldsymbol{A}^T\\right),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "66ba7f8c", + "metadata": { + "editable": true + }, + "source": [ + "since $f$ depends on $a$ and we have used the chain rule for derivatives on the derivative of $f$ with respect to $a$.\n", + "\n", + "" ] } ], diff --git a/doc/LectureNotes/_build/html/chapter1.html b/doc/LectureNotes/_build/html/chapter1.html index aeb4e4859..7249d2a4d 100644 --- a/doc/LectureNotes/_build/html/chapter1.html +++ b/doc/LectureNotes/_build/html/chapter1.html @@ -396,23 +396,31 @@ const thebe_selector_output = ".output, .cell_output" 3.10. Exercises -

+ +
  • + + 3.11. Exercise 1: Setting up various Python environments + +
  • +
  • + + 3.12. Exercise 2: making your own data and exploring scikit-learn + +
  • +
  • + + 3.13. Exercise 3: Normalizing our data + +
  • +
  • + + 3.14. Exercise 4: Adding Ridge Regression + +
  • +
  • + + 3.15. Exercise 5: Analytical exercises +
  • @@ -521,23 +529,31 @@ const thebe_selector_output = ".output, .cell_output" 3.10. Exercises - + +
  • + + 3.11. Exercise 1: Setting up various Python environments + +
  • +
  • + + 3.12. Exercise 2: making your own data and exploring scikit-learn + +
  • +
  • + + 3.13. Exercise 3: Normalizing our data + +
  • +
  • + + 3.14. Exercise 4: Adding Ridge Regression + +
  • +
  • + + 3.15. Exercise 5: Analytical exercises +
  • @@ -938,13 +954,13 @@ example of the functionality of Scikit-Learn.

    The intercept alpha: 
    - [1.92272314]
    + [1.99274513]
     Coefficient beta : 
    - [[5.13117061]]
    -Mean squared error: 0.21
    -Variance score: 0.92
    + [[5.03570747]]
    +Mean squared error: 0.27
    +Variance score: 0.88
     Mean squared log error: 0.01
    -Mean absolute error: 0.36
    +Mean absolute error: 0.42
     
    _images/chapter1_19_1.png @@ -1044,7 +1060,7 @@ a linear \(x\)-dependence we s
    _images/chapter1_33_0.png -
    0.004999999999999996
    +
    0.005000000000000011
     
    @@ -1748,27 +1764,27 @@ allow for the usage of direct linear algebra methods such as LU matrices as upper case boldfaced letters.

    \[ -\frac{\partial\boldsymbol{b}^T\boldsymbol{a}}{\partial\boldsymbol{a}}=\boldsymbol{b}, +\frac{\partial (\boldsymbol{b}^T\boldsymbol{a})}{\partial \boldsymbol{a}} = \boldsymbol{b}, \]
    +

    and

    \[ -\frac{\partial\boldsymbol{a}^T\boldsymbol{A}\boldsymbol{a}}{\partial\boldsymbol{a}}=(\boldsymbol{A}+\boldsymbol{A}^T)\boldsymbol{a}, +\frac{\partial (\boldsymbol{a}^T\boldsymbol{A}\boldsymbol{a})}{\partial \boldsymbol{a}} = \boldsymbol{a}^T(\boldsymbol{A}+\boldsymbol{A}^T), \]
    +

    and

    \[ -\frac{\partial tr(\boldsymbol{B}\boldsymbol{A})}{\partial\boldsymbol{A}}=\boldsymbol{B}^T, +\frac{\partial \left(\boldsymbol{x}-\boldsymbol{A}\boldsymbol{s}\right)^T\left(\boldsymbol{x}-\boldsymbol{A}\boldsymbol{s}\right)}{\partial \boldsymbol{s}} = -2\left(\boldsymbol{x}-\boldsymbol{A}\boldsymbol{s}\right)^T\boldsymbol{A}, \]
    -
    -\[ -\frac{\partial\log{\vert\boldsymbol{A}\vert}}{\partial \boldsymbol{A}}=(\boldsymbol{A}^{-1})^T. -\]
    -

    We can then compute the second derivative of the cost function, which in our case is the second derivative +

    These and other relations are discussed in the exercises following this chapter (see the end of the chapter). +The latter equation is similar to the equation for the mean-squared error function we have been discussing. +We can then compute the second derivative of the cost function, which in our case is the second derivative of the means squared error. This leads to

    \[ \frac{\partial^2 C(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}^T\partial \boldsymbol{\beta}} =\frac{2}{n}\boldsymbol{X}^T\boldsymbol{X}. \]
    -

    This quantity defines was what is called the Hessian matrix (the second derivative of a function we want to optimize).

    +

    This quantity defines the so- called the Hessian matrix.

    The Hessian matrix plays an important role and is defined for the mean squared error as

    \[ @@ -2606,8 +2622,9 @@ ourmodel (here in terms of the polynomial degree of the model).

    3.10. Exercises¶

    -
    -

    3.10.1. Exercise: Setting up various Python environments¶

    +
    +
    +

    3.11. Exercise 1: Setting up various Python environments¶

    The first exercise here is of a mere technical art. We want you to have

    • git as a version control software and to establish a user account on a provider like GitHub. Other providers like GitLab etc are equally fine. You can also use the University of Oslo GitHub facilities.

    • @@ -2662,8 +2679,8 @@ analysis environment, available for free and under a commercial license.

      We recommend using Anaconda if you are not too familiar with setting paths in a terminal environment.

    -
    -

    3.10.2. Exercise: making your own data and exploring scikit-learn¶

    +
    +

    3.12. Exercise 2: making your own data and exploring scikit-learn¶

    We will generate our own dataset for a function \(y(x)\) where \(x \in [0,1]\) and defined by random numbers computed with the uniform distribution. The function \(y\) is a quadratic polynomial in \(x\) with added stochastic noise according to the normal distribution \(\cal {N}(0,1)\). The following simple Python instructions define our \(x\) and \(y\) values (with 100 data points).

    @@ -2676,7 +2693,7 @@ The following simple Python instructions define our
  • Write your own code (following the examples under the regression notes) for computing the parametrization of the data set fitting a second-order polynomial.

  • -
  • Use thereafter scikit-learn (see again the examples in the regression slides) and compare with your own code.

  • +
  • Use thereafter scikit-learn (see again the examples in the regression slides) and compare with your own code. When compairing with scikit_learn, make sure you set the option for the intercept to FALSE, see https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html. This feature will be explained in more detail during the lectures of week 35 and week 36. You can find more in https://compphysics.github.io/MachineLearning/doc/LectureNotes/_build/html/chapter3.html#more-on-rescaling-data.

  • Using scikit-learn, compute also the mean square error, a risk metric corresponding to the expected value of the squared (quadratic) error defined as

  • @@ -2697,9 +2714,58 @@ R^2(\boldsymbol{y}, \tilde{\boldsymbol{y}}) = 1 - \frac{\sum_{i=0}^{n - 1} (y_i \]

    You can use the functionality included in scikit-learn. If you feel for it, you can use your own program and define functions which compute the above two functions. Discuss the meaning of these results. Try also to vary the coefficient in front of the added stochastic noise term and discuss the quality of the fits.

    + +

    Solution. +The code here is an example of where we define our own design matrix and fit parameters \(\beta\).

    +
    +
    +
    import os
    +import numpy as np
    +import pandas as pd
    +import matplotlib.pyplot as plt
    +from sklearn.model_selection import train_test_split
    +
    +def save_fig(fig_id):
    +    plt.savefig(image_path(fig_id) + ".png", format='png')
    +
    +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
    +
    +x = np.random.rand(100)
    +y = 2.0+5*x*x+0.1*np.random.randn(100)
    +
    +
    +#  The design matrix now as function of a given polynomial
    +X = np.zeros((len(x),3))
    +X[:,0] = 1.0
    +X[:,1] = x
    +X[:,2] = x**2
    +# 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
    +beta = np.linalg.inv(X_train.T @ X_train) @ X_train.T @ y_train
    +print(beta)
    +# and then make the prediction
    +ytilde = X_train @ beta
    +print("Training R2")
    +print(R2(y_train,ytilde))
    +print("Training MSE")
    +print(MSE(y_train,ytilde))
    +ypredict = X_test @ beta
    +print("Test R2")
    +print(R2(y_test,ypredict))
    +print("Test MSE")
    +print(MSE(y_test,ypredict))
    +
    -
    -

    3.10.3. Exercise: Normalizing our data¶

    +
    +
    +
    +
    +

    3.13. Exercise 3: Normalizing our data¶

    A much used approach before starting to train the data is to preprocess our data. Normally the data may need a rescaling and/or may be sensitive to extreme values. Scaling the data renders our inputs much more @@ -2733,7 +2799,7 @@ for testing. This can be done as follows with our design matrix

    # split in training and test data
    -# X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2)
    +X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2)
     
    @@ -2768,21 +2834,273 @@ the aims is to reproduce Figure 2.11 of \(y\) is the function we want to fit with a given polynomial.

    -

    Write a first code which sets up a design matrix \(X\) defined by a -fifth-order polynomial. Scale your data and split it in training and -test data.

    -

    Perform an ordinary least squares and compute the means squared error -and the \(R2\) factor for the training data and the test data, with and -without scaling.

    -

    Add now a model which allows you to make polynomials up to degree -\(15\). Perform a standard OLS fitting of the training data and compute -the MSE and \(R2\) for the training and test data and plot both test and -training data MSE and \(R2\) as functions of the polynomial -degree. Compare what you see with Figure 2.11 of Hastie et al. Comment -your results. For which polynomial degree do you find an optimal MSE -(smallest value)?

    + +

    Solution. +We present here the solution for the last exercise. All elements here can be used to solve exercises a) and b) as well. +Note that in this example we have used the polynomial fitting functions of scikit-learn.

    +
    +
    +
    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
    +
    +
    +np.random.seed(2018)
    +n = 30
    +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)
    +TestError = np.zeros(maxdegree)
    +TrainError = 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))
    +    clf = model.fit(x_train,y_train)
    +    y_fit = clf.predict(x_train)
    +    y_pred = clf.predict(x_test) 
    +    polydegree[degree] = degree
    +    TestError[degree] = np.mean( np.mean((y_test - y_pred)**2) )
    +    TrainError[degree] = np.mean( np.mean((y_train - y_fit)**2) )
    +
    +plt.plot(polydegree, TestError, label='Test Error')
    +plt.plot(polydegree, TrainError, label='Train Error')
    +plt.legend()
    +plt.show()
    +
    +
    +

    a) +Write a first code which sets up a design matrix \(X\) defined by a fifth-order polynomial. Scale your data and split it in training and test data.

    +

    b) +Perform an ordinary least squares and compute the means squared error and the \(R2\) factor for the training data and the test data, with and without scaling.

    +

    c) +Add now a model which allows you to make polynomials up to degree \(15\). Perform a standard OLS fitting of the training data and compute the MSE and \(R2\) for the training and test data and plot both test and training data MSE and \(R2\) as functions of the polynomial degree. Compare what you see with Figure 2.11 of Hastie et al. Comment your results. For which polynomial degree do you find an optimal MSE (smallest value)?

    +
    +
    +

    3.14. Exercise 4: Adding Ridge Regression¶

    +

    This exercise is a continuation of exercise 2. We will use the same function to +generate our data set, still staying with a simple function \(y(x)\) +which we want to fit using linear regression, but now extending the +analysis to include the Ridge regression method.

    +

    We will thus again generate our own dataset for a function \(y(x)\) where +\(x \in [0,1]\) and defined by random numbers computed with the uniform +distribution. The function \(y\) is a quadratic polynomial in \(x\) with +added stochastic noise according to the normal distribution \(\cal{N}(0,1)\).

    +

    The following simple Python instructions define our \(x\) and \(y\) values (with 100 data points).

    +
    +
    +
    x = np.random.rand(100)
    +y = 2.0+5*x*x+0.1*np.random.randn(100)
    +
    +
    +
    +
    +

    Write your own code for the Ridge method (see chapter 3.4 of Hastie et al., equations (3.43) and (3.44)) and compute the parametrization for different values of \(\lambda\). Compare and analyze your results with those from exercise 3. Study the dependence on \(\lambda\) while also varying the strength of the noise in your expression for \(y(x)\).

    +

    Repeat the above but using the functionality of +Scikit-Learn. Compare your code with the results from +Scikit-Learn. Remember to run with the same random numbers for +generating \(x\) and \(y\). Observe also that when you compare with Scikit-Learn, you need to pay attention to how the intercept is dealt with.

    +

    Finally, using Scikit-Learn or your own code, compute also the mean square error, a risk metric corresponding to the expected value of the squared (quadratic) error defined as

    +
    +\[ +MSE(\hat{y},\hat{\tilde{y}}) = \frac{1}{n} +\sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2, +\]
    +

    and the \(R^2\) score function. +If \(\tilde{\hat{y}}_i\) is the predicted value of the \(i-th\) sample and \(y_i\) is the corresponding true value, then the score \(R^2\) is defined as

    +
    +\[ +R^2(\hat{y}, \tilde{\hat{y}}) = 1 - \frac{\sum_{i=0}^{n - 1} (y_i - \tilde{y}_i)^2}{\sum_{i=0}^{n - 1} (y_i - \bar{y})^2}, +\]
    +

    where we have defined the mean value of \(\hat{y}\) as

    +
    +\[ +\bar{y} = \frac{1}{n} \sum_{i=0}^{n - 1} y_i. +\]
    +

    Discuss these quantities as functions of the variable \(\lambda\) in Ridge regression.

    + +

    Solution. +The code here allows you to perform your own Ridge calculation and +perform calculations for various values of the regularization +parameter \(\lambda\). This program can easily be extended upon.

    +
    +
    +
    import os
    +import numpy as np
    +import pandas as pd
    +import matplotlib.pyplot as plt
    +from sklearn.model_selection import train_test_split
    +from sklearn.preprocessing import StandardScaler
    +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
    +
    +
    +# A seed just to ensure that the random numbers are the same for every run.
    +# Useful for eventual debugging.
    +np.random.seed(3155)
    +
    +x = np.random.rand(100)
    +y = 2.0+5*x*x+0.1*np.random.randn(100)
    +
    +# number of features p (here degree of polynomial
    +p = 3
    +#  The design matrix now as function of a given polynomial
    +X = np.zeros((len(x),p))
    +X[:,0] = 1.0
    +X[:,1] = x
    +X[:,2] = x*x
    +# 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.inv(X_train.T @ X_train) @ X_train.T @ y_train
    +print(OLSbeta)
    +# and then make the prediction
    +ytildeOLS = X_train @ OLSbeta
    +print("Training R2 for OLS")
    +print(R2(y_train,ytildeOLS))
    +print("Training MSE for OLS")
    +print(MSE(y_train,ytildeOLS))
    +ypredictOLS = X_test @ OLSbeta
    +print("Test R2 for OLS")
    +print(R2(y_test,ypredictOLS))
    +print("Test MSE OLS")
    +print(MSE(y_test,ypredictOLS))
    +
    +
    +# Repeat now for Ridge regression and various values of the regularization parameter
    +I = np.eye(p,p)
    +# Decide which values of lambda to use
    +nlambdas = 20
    +OwnMSEPredict = np.zeros(nlambdas)
    +OwnMSETrain = np.zeros(nlambdas)
    +MSERidgePredict =  np.zeros(nlambdas)
    +lambdas = np.logspace(-4, 1, nlambdas)
    +for i in range(nlambdas):
    +    lmb = lambdas[i]
    +    OwnRidgebeta = np.linalg.inv(X_train.T @ X_train+lmb*I) @ X_train.T @ y_train
    +    # and then make the prediction
    +    OwnytildeRidge = X_train @ OwnRidgebeta
    +    OwnypredictRidge = X_test @ OwnRidgebeta
    +    OwnMSEPredict[i] = MSE(y_test,OwnypredictRidge)
    +    OwnMSETrain[i] = MSE(y_train,OwnytildeRidge)
    +    # Make the fit using Ridge from Sklearn
    +    RegRidge = linear_model.Ridge(lmb,fit_intercept=False)
    +    RegRidge.fit(X_train,y_train)
    +    # and then make the prediction
    +    ypredictRidge = RegRidge.predict(X_test)
    +    # Compute the MSE and print it
    +    MSERidgePredict[i] = MSE(y_test,ypredictRidge)
    +
    +# Now plot the results
    +plt.figure()
    +plt.plot(np.log10(lambdas), OwnMSETrain, label = 'MSE Ridge train, Own code')
    +plt.plot(np.log10(lambdas), OwnMSEPredict, 'r--', label = 'MSE Ridge Test, Own code')
    +plt.plot(np.log10(lambdas), MSERidgePredict, 'g--', label = 'MSE Ridge Test, Sklearn code')
    +plt.xlabel('log10(lambda)')
    +plt.ylabel('MSE')
    +plt.legend()
    +plt.show()
    +
    +
    +
    +
    +
    +
    +

    3.15. Exercise 5: Analytical exercises¶

    +

    In this exercise we derive the expressions for various derivatives of +products of vectors and matrices. Such derivatives are central to the +optimization of various cost functions. Although we will often use +automatic differentiation in actual calculations, to be able to have +analytical expressions is extremely helpful in case we have simpler +derivatives as well as when we analyze various properties (like second +derivatives) of the chosen cost functions. Vectors are always written +as boldfaced lower case letters and matrices as upper case boldfaced +letters.

    +

    Show that

    +
    +\[ +\frac{\partial (\boldsymbol{b}^T\boldsymbol{a})}{\partial \boldsymbol{a}} = \boldsymbol{b}, +\]
    +

    and

    +
    +\[ +\frac{\partial (\boldsymbol{a}^T\boldsymbol{A}\boldsymbol{a})}{\partial \boldsymbol{a}} = \boldsymbol{a}^T(\boldsymbol{A}+\boldsymbol{A}^T), +\]
    +

    and

    +
    +\[ +\frac{\partial \left(\boldsymbol{x}-\boldsymbol{A}\boldsymbol{s}\right)^T\left(\boldsymbol{x}-\boldsymbol{A}\boldsymbol{s}\right)}{\partial \boldsymbol{s}} = -2\left(\boldsymbol{x}-\boldsymbol{A}\boldsymbol{s}\right)^T\boldsymbol{A}, +\]
    +

    and finally find the second derivative of this function with respect to the vector \(\boldsymbol{s}\).

    + +

    Solution. +In these exercises it is always useful to write out with summation indices the various quantities. +As an example, consider the function

    +
    +\[ +f(\boldsymbol{x}) =\boldsymbol{A}\boldsymbol{x}, +\]
    +

    which reads for a specific component \(f_i\) (we define the matrix \(\boldsymbol{A}\) to have dimension \(n\times n\) and the vector \(\boldsymbol{x}\) to have length \(n\))

    +
    +\[ +f_i =\sum_{j=0}^{n-1}a_{ij}x_j, +\]
    +

    which leads to

    +
    +\[ +\frac{\partial f_i}{\partial x_j}= a_{ij}, +\]
    +

    and written out in terms of the vector \(\boldsymbol{x}\) we have

    +
    +\[ +\frac{\partial f(\boldsymbol{x})}{\partial \boldsymbol{x}}= \boldsymbol{A}. +\]
    +

    For the first derivative

    +
    +\[ +\frac{\partial (\boldsymbol{b}^T\boldsymbol{a})}{\partial \boldsymbol{a}} = \boldsymbol{b}, +\]
    +

    we can write out the inner product as (assuming all elements are real)

    +
    +\[ +\boldsymbol{b}^T\boldsymbol{a}=\sum_i b_ia_i, +\]
    +

    taking the derivative

    +
    +\[ +\frac{\partial \left( \sum_i b_ia_i\right)}{\partial a_k}= b_k, +\]
    +

    leading to

    +
    +\[\begin{split} +\frac{\partial \boldsymbol{b}^T\boldsymbol{a}}{\partial \boldsymbol{a}}= \begin{bmatrix} b_0 \\ b_1 \\ b_2 \\ \dots \\ \dots \\ b_{n-1}\end{bmatrix} = \boldsymbol{b}. +\end{split}\]
    +

    For the second exercise we have

    +
    +\[ +\frac{\partial (\boldsymbol{a}^T\boldsymbol{A}\boldsymbol{a})}{\partial \boldsymbol{a}}. +\]
    +

    Defining a vector \(\boldsymbol{f}=\boldsymbol{A}\boldsymbol{a}\) with components \(f_i=\sum_ja_{ij}a_i\) we have

    +
    +\[ +\frac{\partial (\boldsymbol{a}^T\boldsymbol{f})}{\partial \boldsymbol{a}}=\boldsymbol{a}^T\boldsymbol{A}+\boldsymbol{f}^T=\boldsymbol{a}^T\left(\boldsymbol{A}+\boldsymbol{A}^T\right), +\]
    +

    since \(f\) depends on \(a\) and we have used the chain rule for derivatives on the derivative of \(f\) with respect to \(a\).

    +