From 6470c2d5f4e85713d530934c9a032e7f16bb5e75 Mon Sep 17 00:00:00 2001 From: mhjensen Date: Mon, 3 Sep 2018 16:35:05 +0200 Subject: [PATCH] fixing typos as usual --- doc/Projects/2018/hw2/html/hw2-bs.html | 9 ++------- doc/Projects/2018/hw2/html/hw2.html | 9 ++------- .../2018/hw2/ipynb/ipynb-hw2-src.tar.gz | Bin 206 -> 207 bytes doc/Projects/2018/hw2/pdf/hw2.p.tex | 9 ++------- doc/Projects/2018/hw2/pdf/hw2.pdf | Bin 198044 -> 198064 bytes doc/Projects/2018/hw2/pdf/hw2.tex | 9 ++------- doc/src/Projects/2018/Exercises/hw2.do.txt | 5 ++--- 7 files changed, 10 insertions(+), 31 deletions(-) diff --git a/doc/Projects/2018/hw2/html/hw2-bs.html b/doc/Projects/2018/hw2/html/hw2-bs.html index f97cff804..367aaa066 100644 --- a/doc/Projects/2018/hw2/html/hw2-bs.html +++ b/doc/Projects/2018/hw2/html/hw2-bs.html @@ -150,12 +150,7 @@ Compare and analyze your results with those from exercise 2. Study the dependenc
  1. 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 \).
  2. -
  3. Our next step is to study the variance of the parameters \( \beta_1 \) and \( \beta_2 \) (assuming that we are parametrizing our function with a second-order polynomial. We will use standard linear regression and the Ridge regression.
  4. -
- -You can now opt for either writing your own function that calculates the variance of these paramaters (recall that this is equal to the diagonal elements of the matrix \( (\hat{X}^T\hat{X})^{-1}+\lambda\hat{I} \)) or use the functionality of scikit-learn and computetheir variances. Discuss the results of these variances as functions of \( \lambda \). In particular, try to link your discussion with the discussion in Hastie et al. and their figure 3.11. - -
    +
  1. Our next step is to study the variance of the parameters \( \beta_1 \) and \( \beta_2 \) (assuming that we are parametrizing our function with a second-order polynomial. We will use standard linear regression and the Ridge regression. You can now opt for either writing your own function that calculates the variance of these paramaters (recall that this is equal to the diagonal elements of the matrix \( (\hat{X}^T\hat{X})^{-1}+\lambda\hat{I} \)) or use the functionality of scikit-learn and computetheir variances. Discuss the results of these variances as functions of \( \lambda \). In particular, try to link your discussion with the discussion in Hastie et al. and their figure 3.11.
  2. Repeat the previous step but add now the Lasso method, see equation (3.53) of Hastie et al.. Discuss your results and compare with standard regression and the Ridge regression results. You can write your own code or use the functionality of scikit-learn.
  3. 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
@@ -186,7 +181,7 @@ $$ \mathrm{Var}(\hat{z}_i)=\frac{d_i^2}{N}, $$ -where \( d_i \) are the singular values of the matrix \( \hat{X} \). Give an interprepation of these results, in particular in connection with the variance of the coefficients you obtained in the previous exercise. +where \( d_i \) are the singular values of the matrix \( \hat{X} \). Give an interpretation of these results, in particular in connection with the variance of the coefficients you obtained in the previous exercise.

diff --git a/doc/Projects/2018/hw2/html/hw2.html b/doc/Projects/2018/hw2/html/hw2.html index 3e2d44270..81b326f5d 100644 --- a/doc/Projects/2018/hw2/html/hw2.html +++ b/doc/Projects/2018/hw2/html/hw2.html @@ -115,12 +115,7 @@ Compare and analyze your results with those from exercise 2. Study the dependenc

  1. 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 \).
  2. -
  3. Our next step is to study the variance of the parameters \( \beta_1 \) and \( \beta_2 \) (assuming that we are parametrizing our function with a second-order polynomial. We will use standard linear regression and the Ridge regression.
  4. -
- -You can now opt for either writing your own function that calculates the variance of these paramaters (recall that this is equal to the diagonal elements of the matrix \( (\hat{X}^T\hat{X})^{-1}+\lambda\hat{I} \)) or use the functionality of scikit-learn and computetheir variances. Discuss the results of these variances as functions of \( \lambda \). In particular, try to link your discussion with the discussion in Hastie et al. and their figure 3.11. - -
    +
  1. Our next step is to study the variance of the parameters \( \beta_1 \) and \( \beta_2 \) (assuming that we are parametrizing our function with a second-order polynomial. We will use standard linear regression and the Ridge regression. You can now opt for either writing your own function that calculates the variance of these paramaters (recall that this is equal to the diagonal elements of the matrix \( (\hat{X}^T\hat{X})^{-1}+\lambda\hat{I} \)) or use the functionality of scikit-learn and computetheir variances. Discuss the results of these variances as functions of \( \lambda \). In particular, try to link your discussion with the discussion in Hastie et al. and their figure 3.11.
  2. Repeat the previous step but add now the Lasso method, see equation (3.53) of Hastie et al.. Discuss your results and compare with standard regression and the Ridge regression results. You can write your own code or use the functionality of scikit-learn.
  3. 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
@@ -151,7 +146,7 @@ $$ \mathrm{Var}(\hat{z}_i)=\frac{d_i^2}{N}, $$ -where \( d_i \) are the singular values of the matrix \( \hat{X} \). Give an interprepation of these results, in particular in connection with the variance of the coefficients you obtained in the previous exercise. +where \( d_i \) are the singular values of the matrix \( \hat{X} \). Give an interpretation of these results, in particular in connection with the variance of the coefficients you obtained in the previous exercise. diff --git a/doc/Projects/2018/hw2/ipynb/ipynb-hw2-src.tar.gz b/doc/Projects/2018/hw2/ipynb/ipynb-hw2-src.tar.gz index 4b1da116e789a1063214110a9cbf73f4e1523659..b45bada7796cbc362a3cd933ea09c659efdf149f 100644 GIT binary patch literal 207 zcmb2|=3r=d>y2h$etX_G>#%`9+ru@rU6zd#>tC(mKB?60q`9}DXKK{Xi9wzVzrM}3 zzOd#}tj5y!%@2~>9M9}oBOmVn+NO5d(YqQ;XYHD%IsNS6Iji55gmw2m*I zwrJU+xQ<=-y~3Z*D3J(%S$@p*ao)M!Q}Bm;NBQJ=f4`|RAcGJ4YZ$p!PG8NS H!N33jOh#n7 literal 206 zcmV;<05Sg`iwFRKM2%Yj1MSbjY63A3#&OR+#XP~1&8B)T=%I&#h%XS?*p01;CK27Y z@2b$A>`hAP|9APAVHjqX^XJ*?yej81dKjhD#2C5cbnaFt*wJu;=!QeB~dp>U@@$MPIrYB*fy@F}_Q8(v{!$ zVJ&TR`O=r<4o9Dy*wBk@TVH$(_G7$H@h#b1uExLp2><{90000000000008_ipKT2s ITmUEl08uJxEdT%j diff --git a/doc/Projects/2018/hw2/pdf/hw2.p.tex b/doc/Projects/2018/hw2/pdf/hw2.p.tex index 7824027f3..dd6529e49 100644 --- a/doc/Projects/2018/hw2/pdf/hw2.p.tex +++ b/doc/Projects/2018/hw2/pdf/hw2.p.tex @@ -191,13 +191,8 @@ Compare and analyze your results with those from exercise 2. Study the dependenc \begin{enumerate} \item Repeat the above but using the functionality of \textbf{scikit-learn}. Compare your code with the results from \textbf{scikit-learn}. Remember to run with the same random numbers for generating $x$ and $y$. -\item Our next step is to study the variance of the parameters $\beta_1$ and $\beta_2$ (assuming that we are parametrizing our function with a second-order polynomial. We will use standard linear regression and the Ridge regression. -\end{enumerate} +\item Our next step is to study the variance of the parameters $\beta_1$ and $\beta_2$ (assuming that we are parametrizing our function with a second-order polynomial. We will use standard linear regression and the Ridge regression. You can now opt for either writing your own function that calculates the variance of these paramaters (recall that this is equal to the diagonal elements of the matrix $(\hat{X}^T\hat{X})^{-1}+\lambda\hat{I}$) or use the functionality of \textbf{scikit-learn} and computetheir variances. Discuss the results of these variances as functions of $\lambda$. In particular, try to link your discussion with the discussion in Hastie \emph{et al.} and their figure 3.11. -\noindent -You can now opt for either writing your own function that calculates the variance of these paramaters (recall that this is equal to the diagonal elements of the matrix $(\hat{X}^T\hat{X})^{-1}+\lambda\hat{I}$) or use the functionality of \textbf{scikit-learn} and computetheir variances. Discuss the results of these variances as functions of $\lambda$. In particular, try to link your discussion with the discussion in Hastie \emph{et al.} and their figure 3.11. - -\begin{enumerate} \item Repeat the previous step but add now the Lasso method, see equation (3.53) of Hastie \emph{et al.}. Discuss your results and compare with standard regression and the Ridge regression results. You can write your own code or use the functionality of \textbf{scikit-learn}. \item Finally, using \textbf{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 @@ -225,7 +220,7 @@ $\hat{z}_i=\hat{X}\hat{v}_i$ is equal to (equation (3.49) of Hastie \emph{et a \[ \mathrm{Var}(\hat{z}_i)=\frac{d_i^2}{N}, \] -where $d_i$ are the singular values of the matrix $\hat{X}$. Give an interprepation of these results, in particular in connection with the variance of the coefficients you obtained in the previous exercise. +where $d_i$ are the singular values of the matrix $\hat{X}$. Give an interpretation of these results, in particular in connection with the variance of the coefficients you obtained in the previous exercise. % ------------------- end of main content --------------- diff --git a/doc/Projects/2018/hw2/pdf/hw2.pdf b/doc/Projects/2018/hw2/pdf/hw2.pdf index d5d7c1f38df71f3ee7d4e5342a627c79b3246525..1fbd9008a8809cc4a45df345fdfaacc176a0408a 100644 GIT binary patch delta 9954 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 delta 9907 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 lID>PzfJ;c_zqh6&d9i;W^&f