From 2a445d0f022b9ce8e4dd86c45e39f09063193a24 Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Mon, 4 Sep 2023 08:04:42 +0200 Subject: [PATCH] project 1 final version(?) --- .../2023/Project1/html/._Project1-bs000.html | 78 +++++---- .../2023/Project1/html/Project1-bs.html | 78 +++++---- doc/Projects/2023/Project1/html/Project1.html | 69 +++++--- .../2023/Project1/ipynb/Project1.ipynb | 165 ++++++++++-------- .../Project1/ipynb/ipynb-Project1-src.tar.gz | Bin 193 -> 193 bytes doc/Projects/2023/Project1/pdf/Project1.p.tex | 44 +++-- doc/Projects/2023/Project1/pdf/Project1.pdf | Bin 269564 -> 269934 bytes doc/Projects/2023/Project1/pdf/Project1.tex | 44 +++-- .../Projects/2023/Project1/Project1.do.txt | 45 +++-- 9 files changed, 303 insertions(+), 220 deletions(-) diff --git a/doc/Projects/2023/Project1/html/._Project1-bs000.html b/doc/Projects/2023/Project1/html/._Project1-bs000.html index e4b893262..3a8cec6ec 100644 --- a/doc/Projects/2023/Project1/html/._Project1-bs000.html +++ b/doc/Projects/2023/Project1/html/._Project1-bs000.html @@ -48,24 +48,27 @@ doconce format html Project1.do.txt --html_style=bootstrap --pygments_html_style 3, None, 'part-a-ordinary-least-square-ols-on-the-franke-function'), - ('Part b): Adding Ridge and Lasso Regression on the Franke ' - 'function', + ('Part b): Adding Ridge regression for the Franke function', 3, None, - 'part-b-adding-ridge-and-lasso-regression-on-the-franke-function'), - ('Part a): Paper and pencil part', + 'part-b-adding-ridge-regression-for-the-franke-function'), + ('Part c): Adding Lasso for the Franke function', 3, None, - 'part-a-paper-and-pencil-part'), - ('Part c): Bias-variance trade-off and resampling techniques', + 'part-c-adding-lasso-for-the-franke-function'), + ('Part d): Paper and pencil part', 3, None, - 'part-c-bias-variance-trade-off-and-resampling-techniques'), - ('Part d): Cross-validation as resampling techniques, adding ' + 'part-d-paper-and-pencil-part'), + ('Part e): Bias-variance trade-off and resampling techniques', + 3, + None, + 'part-e-bias-variance-trade-off-and-resampling-techniques'), + ('Part f): Cross-validation as resampling techniques, adding ' 'more complexity', 3, None, - 'part-d-cross-validation-as-resampling-techniques-adding-more-complexity'), + 'part-f-cross-validation-as-resampling-techniques-adding-more-complexity'), ('Part g): Analysis of real data', 3, None, @@ -120,10 +123,11 @@ MathJax.Hub.Config({
  • Regression analysis and resampling methods
  •    Description of two-dimensional function
  •    Part a) : Ordinary Least Square (OLS) on the Franke function
  • -
  •    Part b): Adding Ridge and Lasso Regression on the Franke function
  • -
  •    Part a): Paper and pencil part
  • -
  •    Part c): Bias-variance trade-off and resampling techniques
  • -
  •    Part d): Cross-validation as resampling techniques, adding more complexity
  • +
  •    Part b): Adding Ridge regression for the Franke function
  • +
  •    Part c): Adding Lasso for the Franke function
  • +
  •    Part d): Paper and pencil part
  • +
  •    Part e): Bias-variance trade-off and resampling techniques
  • +
  •    Part f): Cross-validation as resampling techniques, adding more complexity
  •    Part g): Analysis of real data
  • Background literature
  • Introduction to numerical projects
  • @@ -173,14 +177,14 @@ for example we detail how to write a report. Furthermore, at https://github.com/CompPhysics/MachineLearning/blob/master/doc/Projects/ReportExample/ you can find examples of previous reports. How to write reports will -also be discussed during lectures and at the various lab sessions. +also be discussed during the various lab sessions.

    A small recommendation when developing the codes here. Instead of jumping on to the two-dimensional function described below, we recommend to do the code development and testing with a simpler one-dimensional function, similar to those discussed in the exercises -of week 35. A simple test, as discussed during the lectures the first +of weeks 35 and 36. A simple test, as discussed during the lectures the first two weeks is to set the design matrix equal to the identity matrix. Then your model should give a mean square error which is exactly equal to zero. When you are sure that your codes function well, you can then replace @@ -212,12 +216,17 @@ f(x,y) &= \frac{3}{4}\exp{\left(-\frac{(9x-2)^2}{4} - \frac{(9y-2)^2}{4}\right)} \end{align*} $$ -

    The function will be defined for \( x,y\in [0,1] \). Our first step will +

    The function will be defined for \( x,y\in [0,1] \). In a sense, our data are thus scaled to a particular domain for the input values.

    + +

    Our first step will be to perform an OLS regression analysis of this function, trying out a polynomial fit with an \( x \) and \( y \) dependence of the form \( [x, y, x^2, y^2, xy, \dots] \). We will also include bootstrap first as a resampling technique. After that we will include the cross-validation -technique. As discussed in the lectures for weeks 35 and 36,, we can +technique. +

    + +

    We can use a uniform distribution to set up the arrays of values for \( x \) and \( y \), or as in the example below just a set of fixed values for \( x \) and \( y \) with a given step size. We will fit a function (for example a @@ -352,26 +361,29 @@ approximately \( 2/3 \) to \( 4/5 \) of the data as training data.

    You can easily reuse the solutions to your exercises from week 35 and week 36. See also the lecture slides from week 35 and week 36.

    -

    Part b): Adding Ridge and Lasso Regression on the Franke function

    +

    Part b): Adding Ridge regression for the Franke function

    Write your own code for the Ridge method, either using matrix inversion or the singular value decomposition as done in the previous -exercise. +exercise. The lecture notes from week 35 and 36 contain more information. Furthermore, the numerical exercise from week 36 is something you can reuse here.

    Perform the same analysis as you did in the previous exercise but now for different values of \( \lambda \). Compare and -analyze your results with those obtained in parts b-d). Study the +analyze your results with those obtained in part a) with the ordinary least squares method. Study the dependence on \( \lambda \).

    +

    Part c): Adding Lasso for the Franke function

    This exercise is essentially a repeat of the previous two ones, but now with Lasso regression. Write either your own code (difficult and optional) or, in this case, -you can also use the functionalities of Scikit-Learn (recommended). +you can also use the functionalities of Scikit-Learn (recommended). Keep in mind that the library Scikit-Learn excludes the intercept by default. Give a critical discussion of the three methods and a judgement of which -model fits the data best. Perform here as well an analysis of the bias-variance trade-off using the bootstrap resampling technique and an analysis of the mean squared error using cross-validation. +model fits the data best.

    -

    Part a): Paper and pencil part

    + +

    v

    +

    Part d): Paper and pencil part

    This exercise deals with various mean values and variances in linear regression method (here it may be useful to look up chapter 3, equation (3.8) of Trevor Hastie, Robert Tibshirani, Jerome H. Friedman, The Elements of Statistical Learning, Springer).

    @@ -421,9 +433,11 @@ $$

    We can use the last expression when we define a so-called confidence interval for the parameters \( \beta \). . A given parameter \( \beta_j \) is given by the diagonal matrix element of the above matrix.

    -

    Part c): Bias-variance trade-off and resampling techniques

    +

    Part e): Bias-variance trade-off and resampling techniques

    -

    Our aim here is to study the bias-variance trade-off by implementing the bootstrap resampling technique.

    +

    Our aim here is to study the bias-variance trade-off by implementing the bootstrap resampling technique. +We will only use the simpler ordinary least squares here. +

    With a code which does OLS and includes resampling techniques, we will now discuss the bias-variance trade-off in the context of @@ -446,7 +460,7 @@ dataset \( \mathcal{L} \) consisting of the data \( \mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\} \).

    -

    As in part a), we assume that the true data is generated from a noisy model

    +

    As in part d), we assume that the true data is generated from a noisy model

    $$ \boldsymbol{y}=f(\boldsymbol{x}) + \boldsymbol{\epsilon}. @@ -503,12 +517,10 @@ of your model complexity (the degree of the polynomial) and the number of data points, and possibly also your training and test data using the bootstrap resampling method. You can follow the code example in the jupyter-book at https://compphysics.github.io/MachineLearning/doc/LectureNotes/_build/html/chapter3.html#the-bias-variance-tradeoff.

    -

    Part d): Cross-validation as resampling techniques, adding more complexity

    +

    Part f): Cross-validation as resampling techniques, adding more complexity

    The aim here is to write your own code for another widely popular -resampling technique, the so-called cross-validation method. Again, -before you start with cross-validation approach, you should scale your -data if you think this is needed. +resampling technique, the so-called cross-validation method.

    Implement the \( k \)-fold cross-validation algorithm (write your own @@ -522,17 +534,19 @@ you got from your bootstrap code. Comment your results. Try \( 5-10 \) folds. You can also compare your own cross-validation code with the one provided by Scikit-Learn.

    + +

    In addition to using the ordinary least squares method, you should include both Ridge and Lasso regression.

    Part g): Analysis of real data

    With our codes functioning and having been tested properly on a simpler function we are now ready to look at real data. We will -essentially repeat in this exercise what was done in exercises 1-5. However, we +essentially repeat in this exercise what was done in exercises a-f. However, we need first to download the data and prepare properly the inputs to our codes. We are going to download digital terrain data from the website https://earthexplorer.usgs.gov/,

    -

    Or, if you prefer, we have placed selected datafiles at https://github.com/CompPhysics/MachineLearning/tree/master/doc/Projects/2022/Project1/DataFiles

    +

    Or, if you prefer, we have placed selected datafiles at https://github.com/CompPhysics/MachineLearning/tree/master/doc/Projects/2023/Project1/DataFiles

    In order to obtain data for a specific region, you need to register as a user (free) at this website and then decide upon which area you want diff --git a/doc/Projects/2023/Project1/html/Project1-bs.html b/doc/Projects/2023/Project1/html/Project1-bs.html index e4b893262..3a8cec6ec 100644 --- a/doc/Projects/2023/Project1/html/Project1-bs.html +++ b/doc/Projects/2023/Project1/html/Project1-bs.html @@ -48,24 +48,27 @@ doconce format html Project1.do.txt --html_style=bootstrap --pygments_html_style 3, None, 'part-a-ordinary-least-square-ols-on-the-franke-function'), - ('Part b): Adding Ridge and Lasso Regression on the Franke ' - 'function', + ('Part b): Adding Ridge regression for the Franke function', 3, None, - 'part-b-adding-ridge-and-lasso-regression-on-the-franke-function'), - ('Part a): Paper and pencil part', + 'part-b-adding-ridge-regression-for-the-franke-function'), + ('Part c): Adding Lasso for the Franke function', 3, None, - 'part-a-paper-and-pencil-part'), - ('Part c): Bias-variance trade-off and resampling techniques', + 'part-c-adding-lasso-for-the-franke-function'), + ('Part d): Paper and pencil part', 3, None, - 'part-c-bias-variance-trade-off-and-resampling-techniques'), - ('Part d): Cross-validation as resampling techniques, adding ' + 'part-d-paper-and-pencil-part'), + ('Part e): Bias-variance trade-off and resampling techniques', + 3, + None, + 'part-e-bias-variance-trade-off-and-resampling-techniques'), + ('Part f): Cross-validation as resampling techniques, adding ' 'more complexity', 3, None, - 'part-d-cross-validation-as-resampling-techniques-adding-more-complexity'), + 'part-f-cross-validation-as-resampling-techniques-adding-more-complexity'), ('Part g): Analysis of real data', 3, None, @@ -120,10 +123,11 @@ MathJax.Hub.Config({

  • Regression analysis and resampling methods
  •    Description of two-dimensional function
  •    Part a) : Ordinary Least Square (OLS) on the Franke function
  • -
  •    Part b): Adding Ridge and Lasso Regression on the Franke function
  • -
  •    Part a): Paper and pencil part
  • -
  •    Part c): Bias-variance trade-off and resampling techniques
  • -
  •    Part d): Cross-validation as resampling techniques, adding more complexity
  • +
  •    Part b): Adding Ridge regression for the Franke function
  • +
  •    Part c): Adding Lasso for the Franke function
  • +
  •    Part d): Paper and pencil part
  • +
  •    Part e): Bias-variance trade-off and resampling techniques
  • +
  •    Part f): Cross-validation as resampling techniques, adding more complexity
  •    Part g): Analysis of real data
  • Background literature
  • Introduction to numerical projects
  • @@ -173,14 +177,14 @@ for example we detail how to write a report. Furthermore, at https://github.com/CompPhysics/MachineLearning/blob/master/doc/Projects/ReportExample/ you can find examples of previous reports. How to write reports will -also be discussed during lectures and at the various lab sessions. +also be discussed during the various lab sessions.

    A small recommendation when developing the codes here. Instead of jumping on to the two-dimensional function described below, we recommend to do the code development and testing with a simpler one-dimensional function, similar to those discussed in the exercises -of week 35. A simple test, as discussed during the lectures the first +of weeks 35 and 36. A simple test, as discussed during the lectures the first two weeks is to set the design matrix equal to the identity matrix. Then your model should give a mean square error which is exactly equal to zero. When you are sure that your codes function well, you can then replace @@ -212,12 +216,17 @@ f(x,y) &= \frac{3}{4}\exp{\left(-\frac{(9x-2)^2}{4} - \frac{(9y-2)^2}{4}\right)} \end{align*} $$ -

    The function will be defined for \( x,y\in [0,1] \). Our first step will +

    The function will be defined for \( x,y\in [0,1] \). In a sense, our data are thus scaled to a particular domain for the input values.

    + +

    Our first step will be to perform an OLS regression analysis of this function, trying out a polynomial fit with an \( x \) and \( y \) dependence of the form \( [x, y, x^2, y^2, xy, \dots] \). We will also include bootstrap first as a resampling technique. After that we will include the cross-validation -technique. As discussed in the lectures for weeks 35 and 36,, we can +technique. +

    + +

    We can use a uniform distribution to set up the arrays of values for \( x \) and \( y \), or as in the example below just a set of fixed values for \( x \) and \( y \) with a given step size. We will fit a function (for example a @@ -352,26 +361,29 @@ approximately \( 2/3 \) to \( 4/5 \) of the data as training data.

    You can easily reuse the solutions to your exercises from week 35 and week 36. See also the lecture slides from week 35 and week 36.

    -

    Part b): Adding Ridge and Lasso Regression on the Franke function

    +

    Part b): Adding Ridge regression for the Franke function

    Write your own code for the Ridge method, either using matrix inversion or the singular value decomposition as done in the previous -exercise. +exercise. The lecture notes from week 35 and 36 contain more information. Furthermore, the numerical exercise from week 36 is something you can reuse here.

    Perform the same analysis as you did in the previous exercise but now for different values of \( \lambda \). Compare and -analyze your results with those obtained in parts b-d). Study the +analyze your results with those obtained in part a) with the ordinary least squares method. Study the dependence on \( \lambda \).

    +

    Part c): Adding Lasso for the Franke function

    This exercise is essentially a repeat of the previous two ones, but now with Lasso regression. Write either your own code (difficult and optional) or, in this case, -you can also use the functionalities of Scikit-Learn (recommended). +you can also use the functionalities of Scikit-Learn (recommended). Keep in mind that the library Scikit-Learn excludes the intercept by default. Give a critical discussion of the three methods and a judgement of which -model fits the data best. Perform here as well an analysis of the bias-variance trade-off using the bootstrap resampling technique and an analysis of the mean squared error using cross-validation. +model fits the data best.

    -

    Part a): Paper and pencil part

    + +

    v

    +

    Part d): Paper and pencil part

    This exercise deals with various mean values and variances in linear regression method (here it may be useful to look up chapter 3, equation (3.8) of Trevor Hastie, Robert Tibshirani, Jerome H. Friedman, The Elements of Statistical Learning, Springer).

    @@ -421,9 +433,11 @@ $$

    We can use the last expression when we define a so-called confidence interval for the parameters \( \beta \). . A given parameter \( \beta_j \) is given by the diagonal matrix element of the above matrix.

    -

    Part c): Bias-variance trade-off and resampling techniques

    +

    Part e): Bias-variance trade-off and resampling techniques

    -

    Our aim here is to study the bias-variance trade-off by implementing the bootstrap resampling technique.

    +

    Our aim here is to study the bias-variance trade-off by implementing the bootstrap resampling technique. +We will only use the simpler ordinary least squares here. +

    With a code which does OLS and includes resampling techniques, we will now discuss the bias-variance trade-off in the context of @@ -446,7 +460,7 @@ dataset \( \mathcal{L} \) consisting of the data \( \mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\} \).

    -

    As in part a), we assume that the true data is generated from a noisy model

    +

    As in part d), we assume that the true data is generated from a noisy model

    $$ \boldsymbol{y}=f(\boldsymbol{x}) + \boldsymbol{\epsilon}. @@ -503,12 +517,10 @@ of your model complexity (the degree of the polynomial) and the number of data points, and possibly also your training and test data using the bootstrap resampling method. You can follow the code example in the jupyter-book at https://compphysics.github.io/MachineLearning/doc/LectureNotes/_build/html/chapter3.html#the-bias-variance-tradeoff.

    -

    Part d): Cross-validation as resampling techniques, adding more complexity

    +

    Part f): Cross-validation as resampling techniques, adding more complexity

    The aim here is to write your own code for another widely popular -resampling technique, the so-called cross-validation method. Again, -before you start with cross-validation approach, you should scale your -data if you think this is needed. +resampling technique, the so-called cross-validation method.

    Implement the \( k \)-fold cross-validation algorithm (write your own @@ -522,17 +534,19 @@ you got from your bootstrap code. Comment your results. Try \( 5-10 \) folds. You can also compare your own cross-validation code with the one provided by Scikit-Learn.

    + +

    In addition to using the ordinary least squares method, you should include both Ridge and Lasso regression.

    Part g): Analysis of real data

    With our codes functioning and having been tested properly on a simpler function we are now ready to look at real data. We will -essentially repeat in this exercise what was done in exercises 1-5. However, we +essentially repeat in this exercise what was done in exercises a-f. However, we need first to download the data and prepare properly the inputs to our codes. We are going to download digital terrain data from the website https://earthexplorer.usgs.gov/,

    -

    Or, if you prefer, we have placed selected datafiles at https://github.com/CompPhysics/MachineLearning/tree/master/doc/Projects/2022/Project1/DataFiles

    +

    Or, if you prefer, we have placed selected datafiles at https://github.com/CompPhysics/MachineLearning/tree/master/doc/Projects/2023/Project1/DataFiles

    In order to obtain data for a specific region, you need to register as a user (free) at this website and then decide upon which area you want diff --git a/doc/Projects/2023/Project1/html/Project1.html b/doc/Projects/2023/Project1/html/Project1.html index 3e45c97e0..ef7099584 100644 --- a/doc/Projects/2023/Project1/html/Project1.html +++ b/doc/Projects/2023/Project1/html/Project1.html @@ -126,24 +126,27 @@ div.toc p,a { 3, None, 'part-a-ordinary-least-square-ols-on-the-franke-function'), - ('Part b): Adding Ridge and Lasso Regression on the Franke ' - 'function', + ('Part b): Adding Ridge regression for the Franke function', 3, None, - 'part-b-adding-ridge-and-lasso-regression-on-the-franke-function'), - ('Part a): Paper and pencil part', + 'part-b-adding-ridge-regression-for-the-franke-function'), + ('Part c): Adding Lasso for the Franke function', 3, None, - 'part-a-paper-and-pencil-part'), - ('Part c): Bias-variance trade-off and resampling techniques', + 'part-c-adding-lasso-for-the-franke-function'), + ('Part d): Paper and pencil part', 3, None, - 'part-c-bias-variance-trade-off-and-resampling-techniques'), - ('Part d): Cross-validation as resampling techniques, adding ' + 'part-d-paper-and-pencil-part'), + ('Part e): Bias-variance trade-off and resampling techniques', + 3, + None, + 'part-e-bias-variance-trade-off-and-resampling-techniques'), + ('Part f): Cross-validation as resampling techniques, adding ' 'more complexity', 3, None, - 'part-d-cross-validation-as-resampling-techniques-adding-more-complexity'), + 'part-f-cross-validation-as-resampling-techniques-adding-more-complexity'), ('Part g): Analysis of real data', 3, None, @@ -210,14 +213,14 @@ for example we detail how to write a report. Furthermore, at https://github.com/CompPhysics/MachineLearning/blob/master/doc/Projects/ReportExample/ you can find examples of previous reports. How to write reports will -also be discussed during lectures and at the various lab sessions. +also be discussed during the various lab sessions.

    A small recommendation when developing the codes here. Instead of jumping on to the two-dimensional function described below, we recommend to do the code development and testing with a simpler one-dimensional function, similar to those discussed in the exercises -of week 35. A simple test, as discussed during the lectures the first +of weeks 35 and 36. A simple test, as discussed during the lectures the first two weeks is to set the design matrix equal to the identity matrix. Then your model should give a mean square error which is exactly equal to zero. When you are sure that your codes function well, you can then replace @@ -249,12 +252,17 @@ f(x,y) &= \frac{3}{4}\exp{\left(-\frac{(9x-2)^2}{4} - \frac{(9y-2)^2}{4}\right)} \end{align*} $$ -

    The function will be defined for \( x,y\in [0,1] \). Our first step will +

    The function will be defined for \( x,y\in [0,1] \). In a sense, our data are thus scaled to a particular domain for the input values.

    + +

    Our first step will be to perform an OLS regression analysis of this function, trying out a polynomial fit with an \( x \) and \( y \) dependence of the form \( [x, y, x^2, y^2, xy, \dots] \). We will also include bootstrap first as a resampling technique. After that we will include the cross-validation -technique. As discussed in the lectures for weeks 35 and 36,, we can +technique. +

    + +

    We can use a uniform distribution to set up the arrays of values for \( x \) and \( y \), or as in the example below just a set of fixed values for \( x \) and \( y \) with a given step size. We will fit a function (for example a @@ -389,26 +397,29 @@ approximately \( 2/3 \) to \( 4/5 \) of the data as training data.

    You can easily reuse the solutions to your exercises from week 35 and week 36. See also the lecture slides from week 35 and week 36.

    -

    Part b): Adding Ridge and Lasso Regression on the Franke function

    +

    Part b): Adding Ridge regression for the Franke function

    Write your own code for the Ridge method, either using matrix inversion or the singular value decomposition as done in the previous -exercise. +exercise. The lecture notes from week 35 and 36 contain more information. Furthermore, the numerical exercise from week 36 is something you can reuse here.

    Perform the same analysis as you did in the previous exercise but now for different values of \( \lambda \). Compare and -analyze your results with those obtained in parts b-d). Study the +analyze your results with those obtained in part a) with the ordinary least squares method. Study the dependence on \( \lambda \).

    +

    Part c): Adding Lasso for the Franke function

    This exercise is essentially a repeat of the previous two ones, but now with Lasso regression. Write either your own code (difficult and optional) or, in this case, -you can also use the functionalities of Scikit-Learn (recommended). +you can also use the functionalities of Scikit-Learn (recommended). Keep in mind that the library Scikit-Learn excludes the intercept by default. Give a critical discussion of the three methods and a judgement of which -model fits the data best. Perform here as well an analysis of the bias-variance trade-off using the bootstrap resampling technique and an analysis of the mean squared error using cross-validation. +model fits the data best.

    -

    Part a): Paper and pencil part

    + +

    v

    +

    Part d): Paper and pencil part

    This exercise deals with various mean values and variances in linear regression method (here it may be useful to look up chapter 3, equation (3.8) of Trevor Hastie, Robert Tibshirani, Jerome H. Friedman, The Elements of Statistical Learning, Springer).

    @@ -458,9 +469,11 @@ $$

    We can use the last expression when we define a so-called confidence interval for the parameters \( \beta \). . A given parameter \( \beta_j \) is given by the diagonal matrix element of the above matrix.

    -

    Part c): Bias-variance trade-off and resampling techniques

    +

    Part e): Bias-variance trade-off and resampling techniques

    -

    Our aim here is to study the bias-variance trade-off by implementing the bootstrap resampling technique.

    +

    Our aim here is to study the bias-variance trade-off by implementing the bootstrap resampling technique. +We will only use the simpler ordinary least squares here. +

    With a code which does OLS and includes resampling techniques, we will now discuss the bias-variance trade-off in the context of @@ -483,7 +496,7 @@ dataset \( \mathcal{L} \) consisting of the data \( \mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\} \).

    -

    As in part a), we assume that the true data is generated from a noisy model

    +

    As in part d), we assume that the true data is generated from a noisy model

    $$ \boldsymbol{y}=f(\boldsymbol{x}) + \boldsymbol{\epsilon}. @@ -540,12 +553,10 @@ of your model complexity (the degree of the polynomial) and the number of data points, and possibly also your training and test data using the bootstrap resampling method. You can follow the code example in the jupyter-book at https://compphysics.github.io/MachineLearning/doc/LectureNotes/_build/html/chapter3.html#the-bias-variance-tradeoff.

    -

    Part d): Cross-validation as resampling techniques, adding more complexity

    +

    Part f): Cross-validation as resampling techniques, adding more complexity

    The aim here is to write your own code for another widely popular -resampling technique, the so-called cross-validation method. Again, -before you start with cross-validation approach, you should scale your -data if you think this is needed. +resampling technique, the so-called cross-validation method.

    Implement the \( k \)-fold cross-validation algorithm (write your own @@ -559,17 +570,19 @@ you got from your bootstrap code. Comment your results. Try \( 5-10 \) folds. You can also compare your own cross-validation code with the one provided by Scikit-Learn.

    + +

    In addition to using the ordinary least squares method, you should include both Ridge and Lasso regression.

    Part g): Analysis of real data

    With our codes functioning and having been tested properly on a simpler function we are now ready to look at real data. We will -essentially repeat in this exercise what was done in exercises 1-5. However, we +essentially repeat in this exercise what was done in exercises a-f. However, we need first to download the data and prepare properly the inputs to our codes. We are going to download digital terrain data from the website https://earthexplorer.usgs.gov/,

    -

    Or, if you prefer, we have placed selected datafiles at https://github.com/CompPhysics/MachineLearning/tree/master/doc/Projects/2022/Project1/DataFiles

    +

    Or, if you prefer, we have placed selected datafiles at https://github.com/CompPhysics/MachineLearning/tree/master/doc/Projects/2023/Project1/DataFiles

    In order to obtain data for a specific region, you need to register as a user (free) at this website and then decide upon which area you want diff --git a/doc/Projects/2023/Project1/ipynb/Project1.ipynb b/doc/Projects/2023/Project1/ipynb/Project1.ipynb index eb44608a1..c867ffa98 100644 --- a/doc/Projects/2023/Project1/ipynb/Project1.ipynb +++ b/doc/Projects/2023/Project1/ipynb/Project1.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "9b31c43c", + "id": "1ceb1efb", "metadata": { "editable": true }, @@ -14,7 +14,7 @@ }, { "cell_type": "markdown", - "id": "de414429", + "id": "1f73d83b", "metadata": { "editable": true }, @@ -27,7 +27,7 @@ }, { "cell_type": "markdown", - "id": "24422f72", + "id": "df2b7d33", "metadata": { "editable": true }, @@ -44,13 +44,13 @@ "we detail how to write a report. Furthermore, at\n", "\n", "you can find examples of previous reports. How to write reports will\n", - "also be discussed during lectures and at the various lab sessions.\n", + "also be discussed during the various lab sessions.\n", "\n", "**A small recommendation when developing the codes here**. Instead of\n", "jumping on to the two-dimensional function described below, we\n", "recommend to do the code development and testing with a simpler\n", "one-dimensional function, similar to those discussed in the exercises\n", - "of week 35. A simple test, as discussed during the lectures the first\n", + "of weeks 35 and 36. A simple test, as discussed during the lectures the first\n", "two weeks is to set the design matrix equal to the identity\n", "matrix. Then your model should give a mean square error which is exactly equal to zero.\n", "When you are sure that your codes function well, you can then replace\n", @@ -63,7 +63,7 @@ }, { "cell_type": "markdown", - "id": "2f57baf4", + "id": "83787bae", "metadata": { "editable": true }, @@ -85,7 +85,7 @@ }, { "cell_type": "markdown", - "id": "1cd79adf", + "id": "d7ee2bfd", "metadata": { "editable": true }, @@ -100,17 +100,21 @@ }, { "cell_type": "markdown", - "id": "35c04be8", + "id": "958a455e", "metadata": { "editable": true }, "source": [ - "The function will be defined for $x,y\\in [0,1]$. Our first step will\n", + "The function will be defined for $x,y\\in [0,1]$. In a sense, our data are thus scaled to a particular domain for the input values.\n", + "\n", + "Our first step will\n", "be to perform an OLS regression analysis of this function, trying out\n", "a polynomial fit with an $x$ and $y$ dependence of the form $[x, y,\n", "x^2, y^2, xy, \\dots]$. We will also include bootstrap first as a\n", "resampling technique. After that we will include the cross-validation\n", - "technique. As discussed in the lectures for weeks 35 and 36,, we can\n", + "technique.\n", + "\n", + "We can\n", "use a uniform distribution to set up the arrays of values for $x$ and\n", "$y$, or as in the example below just a set of fixed values for $x$ and\n", "$y$ with a given step size. We will fit a function (for example a\n", @@ -129,7 +133,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "d531f23c", + "id": "3deb0a35", "metadata": { "collapsed": false, "editable": true @@ -181,7 +185,7 @@ }, { "cell_type": "markdown", - "id": "3117b409", + "id": "742ae4b5", "metadata": { "editable": true }, @@ -203,7 +207,7 @@ }, { "cell_type": "markdown", - "id": "b10e86f2", + "id": "e49ae3a8", "metadata": { "editable": true }, @@ -216,7 +220,7 @@ }, { "cell_type": "markdown", - "id": "71459fea", + "id": "091e8f0d", "metadata": { "editable": true }, @@ -228,7 +232,7 @@ }, { "cell_type": "markdown", - "id": "f5687714", + "id": "3fad86e6", "metadata": { "editable": true }, @@ -240,7 +244,7 @@ }, { "cell_type": "markdown", - "id": "b7ddfef4", + "id": "d281bfb0", "metadata": { "editable": true }, @@ -250,7 +254,7 @@ }, { "cell_type": "markdown", - "id": "5ffbd03c", + "id": "af6fb771", "metadata": { "editable": true }, @@ -262,7 +266,7 @@ }, { "cell_type": "markdown", - "id": "04963148", + "id": "0d89eb4e", "metadata": { "editable": true }, @@ -291,37 +295,49 @@ }, { "cell_type": "markdown", - "id": "d17e5544", + "id": "e1c30216", "metadata": { "editable": true }, "source": [ - "### Part b): Adding Ridge and Lasso Regression on the Franke function\n", + "### Part b): Adding Ridge regression for the Franke function\n", "\n", "Write your own code for the Ridge method, either using matrix\n", "inversion or the singular value decomposition as done in the previous\n", - "exercise.\n", + "exercise. The lecture notes from week 35 and 36 contain more information. Furthermore, the numerical exercise from week 36 is something you can reuse here.\n", "\n", "Perform the same analysis as you did in the previous exercise but now for different values of $\\lambda$. Compare and\n", - "analyze your results with those obtained in parts b-d). Study the\n", - "dependence on $\\lambda$.\n", - "\n", - "This exercise is essentially a repeat of the previous two ones, but now\n", - "with Lasso regression. Write either your own code (difficult and optional) or, in this case,\n", - "you can also use the functionalities of **Scikit-Learn** (recommended). \n", - "Give a\n", - "critical discussion of the three methods and a judgement of which\n", - "model fits the data best. Perform here as well an analysis of the bias-variance trade-off using the **bootstrap** resampling technique and an analysis of the mean squared error using cross-validation." + "analyze your results with those obtained in part a) with the ordinary least squares method. Study the\n", + "dependence on $\\lambda$." ] }, { "cell_type": "markdown", - "id": "fbd4c145", + "id": "b121745d", "metadata": { "editable": true }, "source": [ - "### Part a): Paper and pencil part\n", + "### Part c): Adding Lasso for the Franke function\n", + "\n", + "This exercise is essentially a repeat of the previous two ones, but now\n", + "with Lasso regression. Write either your own code (difficult and optional) or, in this case,\n", + "you can also use the functionalities of **Scikit-Learn** (recommended). Keep in mind that the library **Scikit-Learn** excludes the intercept by default. \n", + "Give a\n", + "critical discussion of the three methods and a judgement of which\n", + "model fits the data best.\n", + "\n", + "v" + ] + }, + { + "cell_type": "markdown", + "id": "56d96043", + "metadata": { + "editable": true + }, + "source": [ + "### Part d): Paper and pencil part\n", "\n", "This exercise deals with various mean values and variances in linear regression method (here it may be useful to look up chapter 3, equation (3.8) of [Trevor Hastie, Robert Tibshirani, Jerome H. Friedman, The Elements of Statistical Learning, Springer](https://www.springer.com/gp/book/9780387848570)).\n", "\n", @@ -332,7 +348,7 @@ }, { "cell_type": "markdown", - "id": "ce635f60", + "id": "e64c004b", "metadata": { "editable": true }, @@ -344,7 +360,7 @@ }, { "cell_type": "markdown", - "id": "d55bb605", + "id": "6f17d2da", "metadata": { "editable": true }, @@ -355,7 +371,7 @@ }, { "cell_type": "markdown", - "id": "1a43accc", + "id": "fc4fe2fb", "metadata": { "editable": true }, @@ -367,7 +383,7 @@ }, { "cell_type": "markdown", - "id": "8a708d42", + "id": "93babb22", "metadata": { "editable": true }, @@ -379,7 +395,7 @@ }, { "cell_type": "markdown", - "id": "a5d55b46", + "id": "4b4061ba", "metadata": { "editable": true }, @@ -391,7 +407,7 @@ }, { "cell_type": "markdown", - "id": "19e93313", + "id": "1ca5e57a", "metadata": { "editable": true }, @@ -402,7 +418,7 @@ }, { "cell_type": "markdown", - "id": "bb735793", + "id": "da25c4ba", "metadata": { "editable": true }, @@ -414,7 +430,7 @@ }, { "cell_type": "markdown", - "id": "ee65e390", + "id": "10ce6cfd", "metadata": { "editable": true }, @@ -427,7 +443,7 @@ }, { "cell_type": "markdown", - "id": "b29b4187", + "id": "8d3f716a", "metadata": { "editable": true }, @@ -439,7 +455,7 @@ }, { "cell_type": "markdown", - "id": "f8adffa4", + "id": "e30af070", "metadata": { "editable": true }, @@ -449,7 +465,7 @@ }, { "cell_type": "markdown", - "id": "1f56f45d", + "id": "1bc3edc7", "metadata": { "editable": true }, @@ -461,7 +477,7 @@ }, { "cell_type": "markdown", - "id": "74e687b8", + "id": "050e1f04", "metadata": { "editable": true }, @@ -472,14 +488,15 @@ }, { "cell_type": "markdown", - "id": "b0b7d7bb", + "id": "52486468", "metadata": { "editable": true }, "source": [ - "### Part c): Bias-variance trade-off and resampling techniques\n", + "### Part e): Bias-variance trade-off and resampling techniques\n", "\n", "Our aim here is to study the bias-variance trade-off by implementing the **bootstrap** resampling technique.\n", + "**We will only use the simpler ordinary least squares here**.\n", "\n", "With a code which does OLS and includes resampling techniques, \n", "we will now discuss the bias-variance trade-off in the context of\n", @@ -499,12 +516,12 @@ "dataset $\\mathcal{L}$ consisting of the data\n", "$\\mathbf{X}_\\mathcal{L}=\\{(y_j, \\boldsymbol{x}_j), j=0\\ldots n-1\\}$.\n", "\n", - "As in part a), we assume that the true data is generated from a noisy model" + "As in part d), we assume that the true data is generated from a noisy model" ] }, { "cell_type": "markdown", - "id": "6f7509d8", + "id": "008e92a6", "metadata": { "editable": true }, @@ -516,7 +533,7 @@ }, { "cell_type": "markdown", - "id": "8d06ec98", + "id": "123f65c5", "metadata": { "editable": true }, @@ -535,7 +552,7 @@ }, { "cell_type": "markdown", - "id": "9e493a94", + "id": "a4398be8", "metadata": { "editable": true }, @@ -547,7 +564,7 @@ }, { "cell_type": "markdown", - "id": "b6b7b71c", + "id": "3e5bee01", "metadata": { "editable": true }, @@ -561,7 +578,7 @@ }, { "cell_type": "markdown", - "id": "eadda792", + "id": "e35fdf55", "metadata": { "editable": true }, @@ -573,7 +590,7 @@ }, { "cell_type": "markdown", - "id": "cef4fa19", + "id": "ac0994d8", "metadata": { "editable": true }, @@ -583,7 +600,7 @@ }, { "cell_type": "markdown", - "id": "38cc8dbb", + "id": "65ba61ff", "metadata": { "editable": true }, @@ -595,7 +612,7 @@ }, { "cell_type": "markdown", - "id": "a9dcfd8b", + "id": "dd4e4536", "metadata": { "editable": true }, @@ -605,7 +622,7 @@ }, { "cell_type": "markdown", - "id": "41198b5e", + "id": "7730a37d", "metadata": { "editable": true }, @@ -617,7 +634,7 @@ }, { "cell_type": "markdown", - "id": "a252009f", + "id": "8cefeb53", "metadata": { "editable": true }, @@ -636,17 +653,15 @@ }, { "cell_type": "markdown", - "id": "00854ec4", + "id": "8ec208c4", "metadata": { "editable": true }, "source": [ - "### Part d): Cross-validation as resampling techniques, adding more complexity\n", + "### Part f): Cross-validation as resampling techniques, adding more complexity\n", "\n", "The aim here is to write your own code for another widely popular\n", - "resampling technique, the so-called cross-validation method. Again,\n", - "before you start with cross-validation approach, you should scale your\n", - "data if you think this is needed.\n", + "resampling technique, the so-called cross-validation method. \n", "\n", "Implement the $k$-fold cross-validation algorithm (write your own\n", "code) and evaluate again the MSE function resulting\n", @@ -656,12 +671,14 @@ "Compare the MSE you get from your cross-validation code with the one\n", "you got from your **bootstrap** code. Comment your results. Try $5-10$\n", "folds. You can also compare your own cross-validation code with the\n", - "one provided by **Scikit-Learn**." + "one provided by **Scikit-Learn**.\n", + "\n", + "In addition to using the ordinary least squares method, you should include both Ridge and Lasso regression." ] }, { "cell_type": "markdown", - "id": "0603ed7b", + "id": "b142cd65", "metadata": { "editable": true }, @@ -670,12 +687,12 @@ "\n", "With our codes functioning and having been tested properly on a\n", "simpler function we are now ready to look at real data. We will\n", - "essentially repeat in this exercise what was done in exercises 1-5. However, we\n", + "essentially repeat in this exercise what was done in exercises a-f. However, we\n", "need first to download the data and prepare properly the inputs to our\n", "codes. We are going to download digital terrain data from the website\n", ",\n", "\n", - "Or, if you prefer, we have placed selected datafiles at \n", + "Or, if you prefer, we have placed selected datafiles at \n", "\n", "In order to obtain data for a specific region, you need to register as\n", "a user (free) at this website and then decide upon which area you want\n", @@ -689,7 +706,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "293624f7", + "id": "fe878605", "metadata": { "collapsed": false, "editable": true @@ -701,7 +718,7 @@ }, { "cell_type": "markdown", - "id": "2eba6a2c", + "id": "10b84fbb", "metadata": { "editable": true }, @@ -713,7 +730,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "a7f37cdb", + "id": "e845fd10", "metadata": { "collapsed": false, "editable": true @@ -739,7 +756,7 @@ }, { "cell_type": "markdown", - "id": "74af5abe", + "id": "0745b3d5", "metadata": { "editable": true }, @@ -764,7 +781,7 @@ }, { "cell_type": "markdown", - "id": "5ad507ad", + "id": "2ce7a62f", "metadata": { "editable": true }, @@ -778,7 +795,7 @@ }, { "cell_type": "markdown", - "id": "194f7c51", + "id": "34b72e9a", "metadata": { "editable": true }, @@ -808,7 +825,7 @@ }, { "cell_type": "markdown", - "id": "a1cf04b9", + "id": "d0f3a4fc", "metadata": { "editable": true }, @@ -830,7 +847,7 @@ }, { "cell_type": "markdown", - "id": "421f2a0c", + "id": "436bcd57", "metadata": { "editable": true }, diff --git a/doc/Projects/2023/Project1/ipynb/ipynb-Project1-src.tar.gz b/doc/Projects/2023/Project1/ipynb/ipynb-Project1-src.tar.gz index b06940a4ca2bf30e9e76918d1c847c0b091e9fb3..ca520b06ab53eb3ff89f2f4b68003b8249d86db4 100644 GIT binary patch literal 193 zcmV;y06za8iwFQ@bM<5Z1MSaE3c@fD1>mlGia9|^YTB#?UAPd6c!AWWHq~Zol7hXx z{Q+GmZi)!`HjglmFmu?hH~Vem?k-piAtYrC#^h--C5h+vgi;QaF`mSnCPR_XRl?!` z$Z{*abk+$otkP7q)K=Z<1;4;=!DUSQ2N*K)^pSID=| z52#boMIzYW<2uT=&DbpmLlY~n>qcjD|SQ^uq5f%cWQ5;1c zko8V_>5b)jJf*E0p^Q-P=EkwA`mkqt1)ljQju#ncN)){w`htd diff --git a/doc/Projects/2023/Project1/pdf/Project1.p.tex b/doc/Projects/2023/Project1/pdf/Project1.p.tex index 0f998ea00..da544d658 100644 --- a/doc/Projects/2023/Project1/pdf/Project1.p.tex +++ b/doc/Projects/2023/Project1/pdf/Project1.p.tex @@ -151,13 +151,13 @@ for example we detail how to write a report. Furthermore, at \href{{https://github.com/CompPhysics/MachineLearning/blob/master/doc/Projects/ReportExample/}}{\nolinkurl{https://github.com/CompPhysics/MachineLearning/blob/master/doc/Projects/ReportExample/}} you can find examples of previous reports. How to write reports will -also be discussed during lectures and at the various lab sessions. +also be discussed during the various lab sessions. \textbf{A small recommendation when developing the codes here}. Instead of jumping on to the two-dimensional function described below, we recommend to do the code development and testing with a simpler one-dimensional function, similar to those discussed in the exercises -of week 35. A simple test, as discussed during the lectures the first +of weeks 35 and 36. A simple test, as discussed during the lectures the first two weeks is to set the design matrix equal to the identity matrix. Then your model should give a mean square error which is exactly equal to zero. When you are sure that your codes function well, you can then replace @@ -184,12 +184,16 @@ f(x,y) &= \frac{3}{4}\exp{\left(-\frac{(9x-2)^2}{4} - \frac{(9y-2)^2}{4}\right)} &+\frac{1}{2}\exp{\left(-\frac{(9x-7)^2}{4} - \frac{(9y-3)^2}{4}\right)} -\frac{1}{5}\exp{\left(-(9x-4)^2 - (9y-7)^2\right) }. \end{align*} -The function will be defined for $x,y\in [0,1]$. Our first step will +The function will be defined for $x,y\in [0,1]$. In a sense, our data are thus scaled to a particular domain for the input values. + +Our first step will be to perform an OLS regression analysis of this function, trying out a polynomial fit with an $x$ and $y$ dependence of the form $[x, y, x^2, y^2, xy, \dots]$. We will also include bootstrap first as a resampling technique. After that we will include the cross-validation -technique. As discussed in the lectures for weeks 35 and 36,, we can +technique. + +We can use a uniform distribution to set up the arrays of values for $x$ and $y$, or as in the example below just a set of fixed values for $x$ and $y$ with a given step size. We will fit a function (for example a @@ -341,23 +345,26 @@ approximately $2/3$ to $4/5$ of the data as training data. You can easily reuse the solutions to your exercises from week 35 and week 36. See also the lecture slides from week 35 and week 36. -\paragraph{Part b): Adding Ridge and Lasso Regression on the Franke function.} +\paragraph{Part b): Adding Ridge regression for the Franke function.} Write your own code for the Ridge method, either using matrix inversion or the singular value decomposition as done in the previous -exercise. +exercise. The lecture notes from week 35 and 36 contain more information. Furthermore, the numerical exercise from week 36 is something you can reuse here. Perform the same analysis as you did in the previous exercise but now for different values of $\lambda$. Compare and -analyze your results with those obtained in parts b-d). Study the +analyze your results with those obtained in part a) with the ordinary least squares method. Study the dependence on $\lambda$. +\paragraph{Part c): Adding Lasso for the Franke function.} This exercise is essentially a repeat of the previous two ones, but now with Lasso regression. Write either your own code (difficult and optional) or, in this case, -you can also use the functionalities of \textbf{Scikit-Learn} (recommended). +you can also use the functionalities of \textbf{Scikit-Learn} (recommended). Keep in mind that the library \textbf{Scikit-Learn} excludes the intercept by default. Give a critical discussion of the three methods and a judgement of which -model fits the data best. Perform here as well an analysis of the bias-variance trade-off using the \textbf{bootstrap} resampling technique and an analysis of the mean squared error using cross-validation. +model fits the data best. -\paragraph{Part a): Paper and pencil part.} +v + +\paragraph{Part d): Paper and pencil part.} This exercise deals with various mean values and variances in linear regression method (here it may be useful to look up chapter 3, equation (3.8) of \href{{https://www.springer.com/gp/book/9780387848570}}{Trevor Hastie, Robert Tibshirani, Jerome H. Friedman, The Elements of Statistical Learning, Springer}). The assumption we have made is @@ -398,8 +405,9 @@ Show finally that the variance of $\bm{\beta}$ is We can use the last expression when we define a so-called confidence interval for the parameters $\beta$. . A given parameter $\beta_j$ is given by the diagonal matrix element of the above matrix. -\paragraph{Part c): Bias-variance trade-off and resampling techniques.} +\paragraph{Part e): Bias-variance trade-off and resampling techniques.} Our aim here is to study the bias-variance trade-off by implementing the \textbf{bootstrap} resampling technique. +\textbf{We will only use the simpler ordinary least squares here}. With a code which does OLS and includes resampling techniques, we will now discuss the bias-variance trade-off in the context of @@ -419,7 +427,7 @@ Consider a dataset $\mathcal{L}$ consisting of the data $\mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\}$. -As in part a), we assume that the true data is generated from a noisy model +As in part d), we assume that the true data is generated from a noisy model \[ \bm{y}=f(\boldsymbol{x}) + \bm{\epsilon}. @@ -466,11 +474,9 @@ of your model complexity (the degree of the polynomial) and the number of data points, and possibly also your training and test data using the \textbf{bootstrap} resampling method. You can follow the code example in the jupyter-book at \href{{https://compphysics.github.io/MachineLearning/doc/LectureNotes/_build/html/chapter3.html#the-bias-variance-tradeoff}}{\nolinkurl{https://compphysics.github.io/MachineLearning/doc/LectureNotes/_build/html/chapter3.html\#the-bias-variance-tradeoff}}. -\paragraph{Part d): Cross-validation as resampling techniques, adding more complexity.} +\paragraph{Part f): Cross-validation as resampling techniques, adding more complexity.} The aim here is to write your own code for another widely popular -resampling technique, the so-called cross-validation method. Again, -before you start with cross-validation approach, you should scale your -data if you think this is needed. +resampling technique, the so-called cross-validation method. Implement the $k$-fold cross-validation algorithm (write your own code) and evaluate again the MSE function resulting @@ -482,15 +488,17 @@ you got from your \textbf{bootstrap} code. Comment your results. Try $5-10$ folds. You can also compare your own cross-validation code with the one provided by \textbf{Scikit-Learn}. +In addition to using the ordinary least squares method, you should include both Ridge and Lasso regression. + \paragraph{Part g): Analysis of real data.} With our codes functioning and having been tested properly on a simpler function we are now ready to look at real data. We will -essentially repeat in this exercise what was done in exercises 1-5. However, we +essentially repeat in this exercise what was done in exercises a-f. However, we need first to download the data and prepare properly the inputs to our codes. We are going to download digital terrain data from the website \href{{https://earthexplorer.usgs.gov/}}{\nolinkurl{https://earthexplorer.usgs.gov/}}, -Or, if you prefer, we have placed selected datafiles at \href{{https://github.com/CompPhysics/MachineLearning/tree/master/doc/Projects/2022/Project1/DataFiles}}{\nolinkurl{https://github.com/CompPhysics/MachineLearning/tree/master/doc/Projects/2022/Project1/DataFiles}} +Or, if you prefer, we have placed selected datafiles at \href{{https://github.com/CompPhysics/MachineLearning/tree/master/doc/Projects/2023/Project1/DataFiles}}{\nolinkurl{https://github.com/CompPhysics/MachineLearning/tree/master/doc/Projects/2023/Project1/DataFiles}} In order to obtain data for a specific region, you need to register as a user (free) at this website and then decide upon which area you want diff --git a/doc/Projects/2023/Project1/pdf/Project1.pdf b/doc/Projects/2023/Project1/pdf/Project1.pdf index 71e34f984f7a32800985f3a3ec86dbbee5bd53df..c0705095bb8365d7f3ab761689807660cc6e8782 100644 GIT binary patch delta 99423 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∋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�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 diff --git a/doc/Projects/2023/Project1/pdf/Project1.tex b/doc/Projects/2023/Project1/pdf/Project1.tex index e602f817e..b495b5aeb 100644 --- a/doc/Projects/2023/Project1/pdf/Project1.tex +++ b/doc/Projects/2023/Project1/pdf/Project1.tex @@ -121,13 +121,13 @@ for example we detail how to write a report. Furthermore, at \href{{https://github.com/CompPhysics/MachineLearning/blob/master/doc/Projects/ReportExample/}}{\nolinkurl{https://github.com/CompPhysics/MachineLearning/blob/master/doc/Projects/ReportExample/}} you can find examples of previous reports. How to write reports will -also be discussed during lectures and at the various lab sessions. +also be discussed during the various lab sessions. \textbf{A small recommendation when developing the codes here}. Instead of jumping on to the two-dimensional function described below, we recommend to do the code development and testing with a simpler one-dimensional function, similar to those discussed in the exercises -of week 35. A simple test, as discussed during the lectures the first +of weeks 35 and 36. A simple test, as discussed during the lectures the first two weeks is to set the design matrix equal to the identity matrix. Then your model should give a mean square error which is exactly equal to zero. When you are sure that your codes function well, you can then replace @@ -154,12 +154,16 @@ f(x,y) &= \frac{3}{4}\exp{\left(-\frac{(9x-2)^2}{4} - \frac{(9y-2)^2}{4}\right)} &+\frac{1}{2}\exp{\left(-\frac{(9x-7)^2}{4} - \frac{(9y-3)^2}{4}\right)} -\frac{1}{5}\exp{\left(-(9x-4)^2 - (9y-7)^2\right) }. \end{align*} -The function will be defined for $x,y\in [0,1]$. Our first step will +The function will be defined for $x,y\in [0,1]$. In a sense, our data are thus scaled to a particular domain for the input values. + +Our first step will be to perform an OLS regression analysis of this function, trying out a polynomial fit with an $x$ and $y$ dependence of the form $[x, y, x^2, y^2, xy, \dots]$. We will also include bootstrap first as a resampling technique. After that we will include the cross-validation -technique. As discussed in the lectures for weeks 35 and 36,, we can +technique. + +We can use a uniform distribution to set up the arrays of values for $x$ and $y$, or as in the example below just a set of fixed values for $x$ and $y$ with a given step size. We will fit a function (for example a @@ -311,23 +315,26 @@ approximately $2/3$ to $4/5$ of the data as training data. You can easily reuse the solutions to your exercises from week 35 and week 36. See also the lecture slides from week 35 and week 36. -\paragraph{Part b): Adding Ridge and Lasso Regression on the Franke function.} +\paragraph{Part b): Adding Ridge regression for the Franke function.} Write your own code for the Ridge method, either using matrix inversion or the singular value decomposition as done in the previous -exercise. +exercise. The lecture notes from week 35 and 36 contain more information. Furthermore, the numerical exercise from week 36 is something you can reuse here. Perform the same analysis as you did in the previous exercise but now for different values of $\lambda$. Compare and -analyze your results with those obtained in parts b-d). Study the +analyze your results with those obtained in part a) with the ordinary least squares method. Study the dependence on $\lambda$. +\paragraph{Part c): Adding Lasso for the Franke function.} This exercise is essentially a repeat of the previous two ones, but now with Lasso regression. Write either your own code (difficult and optional) or, in this case, -you can also use the functionalities of \textbf{Scikit-Learn} (recommended). +you can also use the functionalities of \textbf{Scikit-Learn} (recommended). Keep in mind that the library \textbf{Scikit-Learn} excludes the intercept by default. Give a critical discussion of the three methods and a judgement of which -model fits the data best. Perform here as well an analysis of the bias-variance trade-off using the \textbf{bootstrap} resampling technique and an analysis of the mean squared error using cross-validation. +model fits the data best. -\paragraph{Part a): Paper and pencil part.} +v + +\paragraph{Part d): Paper and pencil part.} This exercise deals with various mean values and variances in linear regression method (here it may be useful to look up chapter 3, equation (3.8) of \href{{https://www.springer.com/gp/book/9780387848570}}{Trevor Hastie, Robert Tibshirani, Jerome H. Friedman, The Elements of Statistical Learning, Springer}). The assumption we have made is @@ -368,8 +375,9 @@ Show finally that the variance of $\bm{\beta}$ is We can use the last expression when we define a so-called confidence interval for the parameters $\beta$. . A given parameter $\beta_j$ is given by the diagonal matrix element of the above matrix. -\paragraph{Part c): Bias-variance trade-off and resampling techniques.} +\paragraph{Part e): Bias-variance trade-off and resampling techniques.} Our aim here is to study the bias-variance trade-off by implementing the \textbf{bootstrap} resampling technique. +\textbf{We will only use the simpler ordinary least squares here}. With a code which does OLS and includes resampling techniques, we will now discuss the bias-variance trade-off in the context of @@ -389,7 +397,7 @@ Consider a dataset $\mathcal{L}$ consisting of the data $\mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\}$. -As in part a), we assume that the true data is generated from a noisy model +As in part d), we assume that the true data is generated from a noisy model \[ \bm{y}=f(\boldsymbol{x}) + \bm{\epsilon}. @@ -436,11 +444,9 @@ of your model complexity (the degree of the polynomial) and the number of data points, and possibly also your training and test data using the \textbf{bootstrap} resampling method. You can follow the code example in the jupyter-book at \href{{https://compphysics.github.io/MachineLearning/doc/LectureNotes/_build/html/chapter3.html#the-bias-variance-tradeoff}}{\nolinkurl{https://compphysics.github.io/MachineLearning/doc/LectureNotes/_build/html/chapter3.html\#the-bias-variance-tradeoff}}. -\paragraph{Part d): Cross-validation as resampling techniques, adding more complexity.} +\paragraph{Part f): Cross-validation as resampling techniques, adding more complexity.} The aim here is to write your own code for another widely popular -resampling technique, the so-called cross-validation method. Again, -before you start with cross-validation approach, you should scale your -data if you think this is needed. +resampling technique, the so-called cross-validation method. Implement the $k$-fold cross-validation algorithm (write your own code) and evaluate again the MSE function resulting @@ -452,15 +458,17 @@ you got from your \textbf{bootstrap} code. Comment your results. Try $5-10$ folds. You can also compare your own cross-validation code with the one provided by \textbf{Scikit-Learn}. +In addition to using the ordinary least squares method, you should include both Ridge and Lasso regression. + \paragraph{Part g): Analysis of real data.} With our codes functioning and having been tested properly on a simpler function we are now ready to look at real data. We will -essentially repeat in this exercise what was done in exercises 1-5. However, we +essentially repeat in this exercise what was done in exercises a-f. However, we need first to download the data and prepare properly the inputs to our codes. We are going to download digital terrain data from the website \href{{https://earthexplorer.usgs.gov/}}{\nolinkurl{https://earthexplorer.usgs.gov/}}, -Or, if you prefer, we have placed selected datafiles at \href{{https://github.com/CompPhysics/MachineLearning/tree/master/doc/Projects/2022/Project1/DataFiles}}{\nolinkurl{https://github.com/CompPhysics/MachineLearning/tree/master/doc/Projects/2022/Project1/DataFiles}} +Or, if you prefer, we have placed selected datafiles at \href{{https://github.com/CompPhysics/MachineLearning/tree/master/doc/Projects/2023/Project1/DataFiles}}{\nolinkurl{https://github.com/CompPhysics/MachineLearning/tree/master/doc/Projects/2023/Project1/DataFiles}} In order to obtain data for a specific region, you need to register as a user (free) at this website and then decide upon which area you want diff --git a/doc/src/Projects/2023/Project1/Project1.do.txt b/doc/src/Projects/2023/Project1/Project1.do.txt index ba711ea43..cc9a9b3af 100644 --- a/doc/src/Projects/2023/Project1/Project1.do.txt +++ b/doc/src/Projects/2023/Project1/Project1.do.txt @@ -18,14 +18,14 @@ URL:"https://github.com/CompPhysics/MachineLearning/blob/master/doc/Projects/Eva we detail how to write a report. Furthermore, at URL:"https://github.com/CompPhysics/MachineLearning/blob/master/doc/Projects/ReportExample/" you can find examples of previous reports. How to write reports will -also be discussed during lectures and at the various lab sessions. +also be discussed during the various lab sessions. _A small recommendation when developing the codes here_. Instead of jumping on to the two-dimensional function described below, we recommend to do the code development and testing with a simpler one-dimensional function, similar to those discussed in the exercises -of week 35. A simple test, as discussed during the lectures the first +of weeks 35 and 36. A simple test, as discussed during the lectures the first two weeks is to set the design matrix equal to the identity matrix. Then your model should give a mean square error which is exactly equal to zero. When you are sure that your codes function well, you can then replace @@ -57,12 +57,16 @@ f(x,y) &= \frac{3}{4}\exp{\left(-\frac{(9x-2)^2}{4} - \frac{(9y-2)^2}{4}\right)} \end{align*} !et -The function will be defined for $x,y\in [0,1]$. Our first step will +The function will be defined for $x,y\in [0,1]$. In a sense, our data are thus scaled to a particular domain for the input values. + +Our first step will be to perform an OLS regression analysis of this function, trying out a polynomial fit with an $x$ and $y$ dependence of the form $[x, y, x^2, y^2, xy, \dots]$. We will also include bootstrap first as a resampling technique. After that we will include the cross-validation -technique. As discussed in the lectures for weeks 35 and 36,, we can +technique. + +We can use a uniform distribution to set up the arrays of values for $x$ and $y$, or as in the example below just a set of fixed values for $x$ and $y$ with a given step size. We will fit a function (for example a @@ -184,25 +188,28 @@ You can easily reuse the solutions to your exercises from week 35 and week 36. See also the lecture slides from week 35 and week 36. -=== Part b): Adding Ridge and Lasso Regression on the Franke function === +=== Part b): Adding Ridge regression for the Franke function === Write your own code for the Ridge method, either using matrix inversion or the singular value decomposition as done in the previous -exercise. +exercise. The lecture notes from week 35 and 36 contain more information. Furthermore, the numerical exercise from week 36 is something you can reuse here. Perform the same analysis as you did in the previous exercise but now for different values of $\lambda$. Compare and -analyze your results with those obtained in parts b-d). Study the +analyze your results with those obtained in part a) with the ordinary least squares method. Study the dependence on $\lambda$. +=== Part c): Adding Lasso for the Franke function === + This exercise is essentially a repeat of the previous two ones, but now with Lasso regression. Write either your own code (difficult and optional) or, in this case, -you can also use the functionalities of _Scikit-Learn_ (recommended). +you can also use the functionalities of _Scikit-Learn_ (recommended). Keep in mind that the library _Scikit-Learn_ excludes the intercept by default. Give a critical discussion of the three methods and a judgement of which -model fits the data best. Perform here as well an analysis of the bias-variance trade-off using the _bootstrap_ resampling technique and an analysis of the mean squared error using cross-validation. +model fits the data best. +v -=== Part a): Paper and pencil part === +=== Part d): Paper and pencil part === This exercise deals with various mean values and variances in linear regression method (here it may be useful to look up chapter 3, equation (3.8) of "Trevor Hastie, Robert Tibshirani, Jerome H. Friedman, The Elements of Statistical Learning, Springer":"https://www.springer.com/gp/book/9780387848570"). @@ -262,9 +269,11 @@ A given parameter $\beta_j$ is given by the diagonal matrix element of the above -=== Part c): Bias-variance trade-off and resampling techniques === +=== Part e): Bias-variance trade-off and resampling techniques === Our aim here is to study the bias-variance trade-off by implementing the _bootstrap_ resampling technique. +_We will only use the simpler ordinary least squares here_. + With a code which does OLS and includes resampling techniques, we will now discuss the bias-variance trade-off in the context of @@ -284,7 +293,7 @@ Consider a dataset $\mathcal{L}$ consisting of the data $\mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\}$. -As in part a), we assume that the true data is generated from a noisy model +As in part d), we assume that the true data is generated from a noisy model !bt \[ @@ -342,13 +351,12 @@ of data points, and possibly also your training and test data using the _bootstr You can follow the code example in the jupyter-book at URL:"https://compphysics.github.io/MachineLearning/doc/LectureNotes/_build/html/chapter3.html#the-bias-variance-tradeoff". -=== Part d): Cross-validation as resampling techniques, adding more complexity === + +=== Part f): Cross-validation as resampling techniques, adding more complexity === The aim here is to write your own code for another widely popular -resampling technique, the so-called cross-validation method. Again, -before you start with cross-validation approach, you should scale your -data if you think this is needed. +resampling technique, the so-called cross-validation method. Implement the $k$-fold cross-validation algorithm (write your own code) and evaluate again the MSE function resulting @@ -360,18 +368,19 @@ you got from your _bootstrap_ code. Comment your results. Try $5-10$ folds. You can also compare your own cross-validation code with the one provided by _Scikit-Learn_. +In addition to using the ordinary least squares method, you should include both Ridge and Lasso regression. === Part g): Analysis of real data === With our codes functioning and having been tested properly on a simpler function we are now ready to look at real data. We will -essentially repeat in this exercise what was done in exercises 1-5. However, we +essentially repeat in this exercise what was done in exercises a-f. However, we need first to download the data and prepare properly the inputs to our codes. We are going to download digital terrain data from the website URL:"https://earthexplorer.usgs.gov/", -Or, if you prefer, we have placed selected datafiles at URL:"https://github.com/CompPhysics/MachineLearning/tree/master/doc/Projects/2022/Project1/DataFiles" +Or, if you prefer, we have placed selected datafiles at URL:"https://github.com/CompPhysics/MachineLearning/tree/master/doc/Projects/2023/Project1/DataFiles" In order to obtain data for a specific region, you need to register as a user (free) at this website and then decide upon which area you want