From 5644101f096c42dcc93d7557238f4f35c78acaa0 Mon Sep 17 00:00:00 2001 From: mhjensen Date: Tue, 16 Oct 2018 10:51:53 +0200 Subject: [PATCH] Update on project 2, replaced R2 and MSE with accuracy score for log reg --- .../2018/Project2/html/Project2-bs.html | 37 ++++++++++------- doc/Projects/2018/Project2/html/Project2.html | 37 ++++++++++------- .../Project2/ipynb/ipynb-Project2-src.tar.gz | Bin 210 -> 211 bytes doc/Projects/2018/Project2/pdf/Project2.p.tex | 39 ++++++++++++------ doc/Projects/2018/Project2/pdf/Project2.pdf | Bin 270950 -> 272502 bytes doc/Projects/2018/Project2/pdf/Project2.tex | 39 ++++++++++++------ .../Projects/2018/Project2/Project2.do.txt | 39 ++++++++++++------ 7 files changed, 123 insertions(+), 68 deletions(-) diff --git a/doc/Projects/2018/Project2/html/Project2-bs.html b/doc/Projects/2018/Project2/html/Project2-bs.html index 9cfc0b4c4..1d002a4dc 100644 --- a/doc/Projects/2018/Project2/html/Project2-bs.html +++ b/doc/Projects/2018/Project2/html/Project2-bs.html @@ -162,7 +162,7 @@ MathJax.Hub.Config({
Department of Physics, University of Oslo, Norway

-

Oct 12, 2018

+

Oct 16, 2018


@@ -399,7 +399,7 @@ called ordered states (the spins tend to point in one direction, resulting in a net magnetic moment) while those above the critical temperature are called disordered. Since a finite lattice like this does not exhibit a clear sign of a phase transition we will mainly -stay with either orderer or disoredered phases. You could include the +stay with either orderer or disordered phases. You could include the critical phase if you want.

@@ -411,13 +411,24 @@ notes on slides here. + +

+To measure the performance of our network we evaluate how well it does +it data it has never seen before, i.e. the test data. We measure the +performance of the network using the accuracy score. The accuracy +is as you would expect just the number of images correctly labeled +divided by the total number of images. A perfect classifier will have +an accuracy score of \( 1 \). + +$$ +\text{Accuracy} = \frac{\sum_{i=1}^n I(t_i = y_i)}{n} , +$$ + +

+where \( I \) is the indicator function, \( 1 \) if \( t_i = y_i \) and \( 0 \) +otherwise, where \( t_i \) represents the target and \( y_i \) the outputs.

In order to find the optimal parameters of your logistic regressor you should @@ -428,8 +439,8 @@ Since we don't have so many data points, you may just code the standard gradient descent with a given learning rate, or even attempt to use the Newton-Raphson method. Alternatively, it may be useful for the next part on neural networks to implement a stochastic gradient -descent. For all gradient methods, you can use scikit-learn's toolbox for -optimization methods in order to test your own results. +descent with and without mini-batches. Stochastic gradient with mini-batches may give the best results. You could finally compare your code with the output from scikit-learn's toolbox for +optimization methods applied to logistic regression.

The notebook of Mehta et al is highly recommended in order to benchmark your code and results. @@ -449,10 +460,6 @@ to use the codes in the above lecture slides as starting points. Train your network and compare the results with those from your linear regression code. You can test your results against a similar code using _scikit_learn_ (see the examples in the above lecture notes) or tensorflow/keras. -

-You should have the same elements as in the regression examples, including the \( R2 \) score, the MSE, and bootstrap or cross-validation. -You may also need to think of using another activation function than the standard logistic function. -

A useful reference on the back progagation algorithm is Nielsen's book. It is an excellent read. diff --git a/doc/Projects/2018/Project2/html/Project2.html b/doc/Projects/2018/Project2/html/Project2.html index 7e8da5aaa..381cb78a5 100644 --- a/doc/Projects/2018/Project2/html/Project2.html +++ b/doc/Projects/2018/Project2/html/Project2.html @@ -120,7 +120,7 @@ MathJax.Hub.Config({

Department of Physics, University of Oslo, Norway

-

Oct 12, 2018

+

Oct 16, 2018


Classification and Regression, from linear and logistic regression to neural networks

@@ -355,7 +355,7 @@ called ordered states (the spins tend to point in one direction, resulting in a net magnetic moment) while those above the critical temperature are called disordered. Since a finite lattice like this does not exhibit a clear sign of a phase transition we will mainly -stay with either orderer or disoredered phases. You could include the +stay with either orderer or disordered phases. You could include the critical phase if you want.

@@ -367,13 +367,24 @@ notes on slides here. + +

+To measure the performance of our network we evaluate how well it does +it data it has never seen before, i.e. the test data. We measure the +performance of the network using the accuracy score. The accuracy +is as you would expect just the number of images correctly labeled +divided by the total number of images. A perfect classifier will have +an accuracy score of \( 1 \). + +$$ +\text{Accuracy} = \frac{\sum_{i=1}^n I(t_i = y_i)}{n} , +$$ + +

+where \( I \) is the indicator function, \( 1 \) if \( t_i = y_i \) and \( 0 \) +otherwise, where \( t_i \) represents the target and \( y_i \) the outputs.

In order to find the optimal parameters of your logistic regressor you should @@ -384,8 +395,8 @@ Since we don't have so many data points, you may just code the standard gradient descent with a given learning rate, or even attempt to use the Newton-Raphson method. Alternatively, it may be useful for the next part on neural networks to implement a stochastic gradient -descent. For all gradient methods, you can use scikit-learn's toolbox for -optimization methods in order to test your own results. +descent with and without mini-batches. Stochastic gradient with mini-batches may give the best results. You could finally compare your code with the output from scikit-learn's toolbox for +optimization methods applied to logistic regression.

The notebook of Mehta et al is highly recommended in order to benchmark your code and results. @@ -405,10 +416,6 @@ to use the codes in the above lecture slides as starting points. Train your network and compare the results with those from your linear regression code. You can test your results against a similar code using _scikit_learn_ (see the examples in the above lecture notes) or tensorflow/keras. -

-You should have the same elements as in the regression examples, including the \( R2 \) score, the MSE, and bootstrap or cross-validation. -You may also need to think of using another activation function than the standard logistic function. -

A useful reference on the back progagation algorithm is Nielsen's book. It is an excellent read. diff --git a/doc/Projects/2018/Project2/ipynb/ipynb-Project2-src.tar.gz b/doc/Projects/2018/Project2/ipynb/ipynb-Project2-src.tar.gz index 23ce22ad2627f043b37525ac9078701225d2fbd3..70120d6952504f425129777303604c1624549092 100644 GIT binary patch literal 211 zcmb2|=3p>fb~KuS`R)0GSxklk#|qEe9kn?)=}q3_odNuEESmcqN|MdD`Q`{6to^-? z>)VxkOQ!s*pWdI?miVml-;XVG!k>nyl`o!Rl&k%G&dhf2RllO*Gi-(Lnz)&lF76RC z6o%@uw|53iS_xz>^-lhGHPC9wQk5{h= zy0bfXrFOl@Q8Jh?DEBak5mNT+`g^# z;?&KP20!d(_bbUS%rczqW1k*rwe;X=jis+vP4e!0ebF?uaQ6C7H9D1%*J^dcU3FK< zue#`P<#kw<#jz#M`@MFX>Pdaya{ap5?D&5>=PG^wqdskI?{gF1!6oF5gJmd-?Z6#UJYz>`ylP^SYP;89d0H!#Le0 K@jHVC0|Nk9wPmyb diff --git a/doc/Projects/2018/Project2/pdf/Project2.p.tex b/doc/Projects/2018/Project2/pdf/Project2.p.tex index 511dfff7e..2276120eb 100644 --- a/doc/Projects/2018/Project2/pdf/Project2.p.tex +++ b/doc/Projects/2018/Project2/pdf/Project2.p.tex @@ -155,7 +155,7 @@ Project 2 on Machine Learning, deadline November 5 % --- begin date --- \begin{center} -Oct 12, 2018 +Oct 16, 2018 \end{center} % --- end date --- @@ -371,7 +371,7 @@ called ordered states (the spins tend to point in one direction, resulting in a net magnetic moment) while those above the critical temperature are called disordered. Since a finite lattice like this does not exhibit a clear sign of a phase transition we will mainly -stay with either orderer or disoredered phases. You could include the +stay with either orderer or disordered phases. You could include the critical phase if you want. @@ -382,13 +382,23 @@ and write your own code for doing logistic regression, see the lecture notes on \href{{https://compphysics.github.io/MachineLearning/doc/pub/LogReg/html/LogReg-bs.html}}{logistic regression}. -You should include either bootstrap or cross-validation in setting up -your model (as done in project 1) and compute the $R2$ score and the -mean-square error. -We will use both ordered and disordered states to train -the logistic regressor and, once the supervised training procedure is -complete, you should evaluate the performance of your classification model on -unseen ordered, disordered and possibly critical states. + +In this case, to evaluate the model, we will use the so-called accuracy score +instead of the bootstrap or cross-validation as done in the standard linear regression part discussed in b). Examples of how to define the accuracy score can be found under the neural network slides, see for example the \href{{https://compphysics.github.io/MachineLearning/doc/pub/NeuralNet/html/._NeuralNet-bs047.html}}{slides here}. + +To measure the performance of our network we evaluate how well it does +it data it has never seen before, i.e.~the test data. We measure the +performance of the network using the \emph{accuracy} score. The accuracy +is as you would expect just the number of images correctly labeled +divided by the total number of images. A perfect classifier will have +an accuracy score of $1$. + +\[ +\text{Accuracy} = \frac{\sum_{i=1}^n I(t_i = y_i)}{n} , +\] + +where $I$ is the indicator function, $1$ if $t_i = y_i$ and $0$ +otherwise, where $t_i$ represents the target and $y_i$ the outputs. @@ -400,8 +410,8 @@ Since we don't have so many data points, you may just code the standard gradient descent with a given learning rate, or even attempt to use the Newton-Raphson method. Alternatively, it may be useful for the next part on neural networks to implement a stochastic gradient -descent. For all gradient methods, you can use \textbf{scikit-learn}'s toolbox for -optimization methods in order to test your own results. +descent with and without mini-batches. Stochastic gradient with mini-batches may give the best results. You could finally compare your code with the output from \textbf{scikit-learn}'s toolbox for +optimization methods applied to logistic regression. The notebook of \href{{https://physics.bu.edu/~pankajm/ML-Notebooks/HTML/NB_CVII-logreg_ising.html}}{Mehta et al} is highly recommended in order to benchmark your code and results. @@ -418,8 +428,6 @@ to use the codes in the above lecture slides as starting points. Train your network and compare the results with those from your linear regression code. You can test your results against a similar code using _scikit_learn_ (see the examples in the above lecture notes) or \textbf{tensorflow/keras}. -You should have the same elements as in the regression examples, including the $R2$ score, the MSE, and bootstrap or cross-validation. -You may also need to think of using another activation function than the standard logistic function. A useful reference on the back progagation algorithm is \href{{http://neuralnetworksanddeeplearning.com/}}{Nielsen's book}. It is an excellent read. @@ -568,6 +576,11 @@ of code developers and contributors keeps increasing. + + + + + % ------------------- end of main content --------------- % #ifdef PREAMBLE diff --git a/doc/Projects/2018/Project2/pdf/Project2.pdf b/doc/Projects/2018/Project2/pdf/Project2.pdf index 7e7fbf6cb868e148bef807b3cd3044d3be7d7c53..9362b25ec02f7efaeaeb111d4f66bc5496d212b5 100644 GIT binary patch delta 39238 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 delta 37590 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�A42;J6&MpwW=^B*`&Nq;c;|V(ZpcS#+ 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 a=x=NN&eq{4WF>`*OUjV&@Tlpjll%{GINPoO diff --git a/doc/Projects/2018/Project2/pdf/Project2.tex b/doc/Projects/2018/Project2/pdf/Project2.tex index 1cf9e34d3..aeee4b93c 100644 --- a/doc/Projects/2018/Project2/pdf/Project2.tex +++ b/doc/Projects/2018/Project2/pdf/Project2.tex @@ -125,7 +125,7 @@ Project 2 on Machine Learning, deadline November 5 % --- begin date --- \begin{center} -Oct 12, 2018 +Oct 16, 2018 \end{center} % --- end date --- @@ -341,7 +341,7 @@ called ordered states (the spins tend to point in one direction, resulting in a net magnetic moment) while those above the critical temperature are called disordered. Since a finite lattice like this does not exhibit a clear sign of a phase transition we will mainly -stay with either orderer or disoredered phases. You could include the +stay with either orderer or disordered phases. You could include the critical phase if you want. @@ -352,13 +352,23 @@ and write your own code for doing logistic regression, see the lecture notes on \href{{https://compphysics.github.io/MachineLearning/doc/pub/LogReg/html/LogReg-bs.html}}{logistic regression}. -You should include either bootstrap or cross-validation in setting up -your model (as done in project 1) and compute the $R2$ score and the -mean-square error. -We will use both ordered and disordered states to train -the logistic regressor and, once the supervised training procedure is -complete, you should evaluate the performance of your classification model on -unseen ordered, disordered and possibly critical states. + +In this case, to evaluate the model, we will use the so-called accuracy score +instead of the bootstrap or cross-validation as done in the standard linear regression part discussed in b). Examples of how to define the accuracy score can be found under the neural network slides, see for example the \href{{https://compphysics.github.io/MachineLearning/doc/pub/NeuralNet/html/._NeuralNet-bs047.html}}{slides here}. + +To measure the performance of our network we evaluate how well it does +it data it has never seen before, i.e.~the test data. We measure the +performance of the network using the \emph{accuracy} score. The accuracy +is as you would expect just the number of images correctly labeled +divided by the total number of images. A perfect classifier will have +an accuracy score of $1$. + +\[ +\text{Accuracy} = \frac{\sum_{i=1}^n I(t_i = y_i)}{n} , +\] + +where $I$ is the indicator function, $1$ if $t_i = y_i$ and $0$ +otherwise, where $t_i$ represents the target and $y_i$ the outputs. @@ -370,8 +380,8 @@ Since we don't have so many data points, you may just code the standard gradient descent with a given learning rate, or even attempt to use the Newton-Raphson method. Alternatively, it may be useful for the next part on neural networks to implement a stochastic gradient -descent. For all gradient methods, you can use \textbf{scikit-learn}'s toolbox for -optimization methods in order to test your own results. +descent with and without mini-batches. Stochastic gradient with mini-batches may give the best results. You could finally compare your code with the output from \textbf{scikit-learn}'s toolbox for +optimization methods applied to logistic regression. The notebook of \href{{https://physics.bu.edu/~pankajm/ML-Notebooks/HTML/NB_CVII-logreg_ising.html}}{Mehta et al} is highly recommended in order to benchmark your code and results. @@ -388,8 +398,6 @@ to use the codes in the above lecture slides as starting points. Train your network and compare the results with those from your linear regression code. You can test your results against a similar code using _scikit_learn_ (see the examples in the above lecture notes) or \textbf{tensorflow/keras}. -You should have the same elements as in the regression examples, including the $R2$ score, the MSE, and bootstrap or cross-validation. -You may also need to think of using another activation function than the standard logistic function. A useful reference on the back progagation algorithm is \href{{http://neuralnetworksanddeeplearning.com/}}{Nielsen's book}. It is an excellent read. @@ -538,6 +546,11 @@ of code developers and contributors keeps increasing. + + + + + % ------------------- end of main content --------------- \end{document} diff --git a/doc/src/Projects/2018/Project2/Project2.do.txt b/doc/src/Projects/2018/Project2/Project2.do.txt index 621311326..23e6d47d6 100644 --- a/doc/src/Projects/2018/Project2/Project2.do.txt +++ b/doc/src/Projects/2018/Project2/Project2.do.txt @@ -225,7 +225,7 @@ called ordered states (the spins tend to point in one direction, resulting in a net magnetic moment) while those above the critical temperature are called disordered. Since a finite lattice like this does not exhibit a clear sign of a phase transition we will mainly -stay with either orderer or disoredered phases. You could include the +stay with either orderer or disordered phases. You could include the critical phase if you want. @@ -236,13 +236,25 @@ and write your own code for doing logistic regression, see the lecture notes on "logistic regression":"https://compphysics.github.io/MachineLearning/doc/pub/LogReg/html/LogReg-bs.html". -You should include either bootstrap or cross-validation in setting up -your model (as done in project 1) and compute the $R2$ score and the -mean-square error. -We will use both ordered and disordered states to train -the logistic regressor and, once the supervised training procedure is -complete, you should evaluate the performance of your classification model on -unseen ordered, disordered and possibly critical states. + +In this case, to evaluate the model, we will use the so-called accuracy score +instead of the bootstrap or cross-validation as done in the standard linear regression part discussed in b). Examples of how to define the accuracy score can be found under the neural network slides, see for example the "slides here":"https://compphysics.github.io/MachineLearning/doc/pub/NeuralNet/html/._NeuralNet-bs047.html". + +To measure the performance of our network we evaluate how well it does +it data it has never seen before, i.e. the test data. We measure the +performance of the network using the *accuracy* score. The accuracy +is as you would expect just the number of images correctly labeled +divided by the total number of images. A perfect classifier will have +an accuracy score of $1$. + +!bt +\[ +\text{Accuracy} = \frac{\sum_{i=1}^n I(t_i = y_i)}{n} , +\] +!et + +where $I$ is the indicator function, $1$ if $t_i = y_i$ and $0$ +otherwise, where $t_i$ represents the target and $y_i$ the outputs. @@ -254,8 +266,8 @@ Since we don't have so many data points, you may just code the standard gradient descent with a given learning rate, or even attempt to use the Newton-Raphson method. Alternatively, it may be useful for the next part on neural networks to implement a stochastic gradient -descent. For all gradient methods, you can use _scikit-learn_'s toolbox for -optimization methods in order to test your own results. +descent with and without mini-batches. Stochastic gradient with mini-batches may give the best results. You could finally compare your code with the output from _scikit-learn_'s toolbox for +optimization methods applied to logistic regression. The notebook of "Mehta et al":"https://physics.bu.edu/~pankajm/ML-Notebooks/HTML/NB_CVII-logreg_ising.html" is highly recommended in order to benchmark your code and results. @@ -273,8 +285,6 @@ to use the codes in the above lecture slides as starting points. Train your network and compare the results with those from your linear regression code. You can test your results against a similar code using _scikit_learn_ (see the examples in the above lecture notes) or _tensorflow/keras_. -You should have the same elements as in the regression examples, including the $R2$ score, the MSE, and bootstrap or cross-validation. -You may also need to think of using another activation function than the standard logistic function. A useful reference on the back progagation algorithm is "Nielsen's book":"http://neuralnetworksanddeeplearning.com/". It is an excellent read. @@ -400,3 +410,8 @@ of code developers and contributors keeps increasing. + + + + +