From 00def199d3d3ec1926d1c297fffc2e1bf964f638 Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Sun, 14 Nov 2021 16:25:43 +0100 Subject: [PATCH] updating p3 --- .../2021/Project3/html/._Project3-bs000.html | 44 ++++++- .../2021/Project3/html/Project3-bs.html | 44 ++++++- doc/Projects/2021/Project3/html/Project3.html | 43 ++++++- .../2021/Project3/ipynb/Project3.ipynb | 117 ++++++++++++------ .../Project3/ipynb/ipynb-Project3-src.tar.gz | Bin 192 -> 194 bytes doc/Projects/2021/Project3/pdf/Project3.p.tex | 37 +++++- doc/Projects/2021/Project3/pdf/Project3.pdf | Bin 233056 -> 236062 bytes doc/Projects/2021/Project3/pdf/Project3.tex | 37 +++++- .../Projects/2021/Project3/Project3.do.txt | 39 +++++- 9 files changed, 290 insertions(+), 71 deletions(-) diff --git a/doc/Projects/2021/Project3/html/._Project3-bs000.html b/doc/Projects/2021/Project3/html/._Project3-bs000.html index 47e28dced..c79df5535 100644 --- a/doc/Projects/2021/Project3/html/._Project3-bs000.html +++ b/doc/Projects/2021/Project3/html/._Project3-bs000.html @@ -65,6 +65,11 @@ doconce format html Project3.do.txt --html_style=bootstrap --pygments_html_style None, 'part-d-solving-eigenvalue-problems'), ('Part e)', 3, None, 'part-e'), + ('Additonal (optional) exercise, adding 30 more points to final ' + 'score', + 2, + None, + 'additonal-optional-exercise-adding-30-more-points-to-final-score'), ('Introduction to numerical projects', 2, None, @@ -129,6 +134,7 @@ MathJax.Hub.Config({
  •       Part c) Neural networks
  •       Part d) Solving eigenvalue problems
  •       Part e)
  • +
  •    Additonal (optional) exercise, adding 30 more points to final score
  •    Introduction to numerical projects
  •    Introduction to numerical projects
  •    Format for electronic delivery of report and programs
  • @@ -159,7 +165,7 @@ MathJax.Hub.Config({
    -

    Nov 13, 2021

    +

    Nov 14, 2021


    @@ -172,10 +178,11 @@ MathJax.Hub.Config({
    1. Kaggle
    2. The University of California at Irvine (UCI) with its machine learning repository.
    3. +
    4. Or other sources.

    The approach to the analysis of these new data sets should follow to a large extent what you did in projects 1 and 2. That is:

      -
    1. Whether you end up with a regression or a classification problem, you should employ at least two of the methods we have discussed among linear regression (including Ridge and Lasso), Logistic Regression, Neural Networks, Convolution Neural Networks, Recurrent Neural Networks, Support Vector Machines and Decision Trees, Random Forests, Bagging and Boosting. You could for example explore all of the approaches from decision trees, via bagging and voting classifiers, to random forests, boosting and finally XGboost. If you wish to venture into convolutional neural networks or recurrent neural networks, or extensions of neural networkds, feel free to do so.
    2. +
    3. Whether you end up with a regression or a classification problem, you should employ at least two of the methods we have discussed among linear regression (including Ridge and Lasso), Logistic Regression, Neural Networks, Convolution Neural Networks, Recurrent Neural Networks, Adversarial Neural Networks, Support Vector Machines and Decision Trees, Random Forests, Bagging and Boosting. You could for example explore all of the approaches from decision trees, via bagging and voting classifiers, to random forests, boosting and finally XGboost. If you wish to venture into convolutional neural networks or recurrent neural networks, or extensions of neural networkds, feel free to do so. You can also study unsupervised methods, although we in this course have mainly paid attendtion to supervised learning. The methods we have explored as Principal Component Analysis and k-means Clustering.

    For Boosting, feel also free to write your own codes.

    @@ -186,11 +193,13 @@ MathJax.Hub.Config({
  • If possible, you should link the data sets with exisiting research and analyses thereof. Scientific articles which have used Machine Learning algorithms to analyze the data are highly welcome. Perhaps you can improve previous analyses and even publish a new article?
  • A critical assessment of the methods with ditto perspectives and recommendations is also something you need to include.
  • -

    All in all, the report should follow the same pattern as the two previous ones, with abstract, introduction, methods, code, results, conclusions etc..

    +

    All in all, the report should follow the same pattern as the two previous ones, with abstract, introduction, methods, code, results, conclusions etc..

    -

    We propose also an alternative to the above. This is a project on using machine learning methods (neural networks mainly) to the solution of ordinary differential equations and partial differential equations, with a final twist on how to diagonalize a symmetric matrix with neural networks..

    +

    We propose also an alternative to the above. This is a project on using machine learning methods (neural networks mainly) to the solution of ordinary differential equations and partial differential equations, with a final twist on how to diagonalize a symmetric matrix with neural networks.

    -

    This is a field with a large interest recently, spanning from studies of turbulence in fluid mechanics and meteorology to the solution of quantum mechanical systems. As reading background you can use the slides from week 43 and/or the textbook by Yadav et al.

    +

    This is a field with a large interest recently, spanning from studies of turbulence in fluid mechanics and meteorology to the solution of quantum mechanical systems. As reading background you can use the slides from week 43 and/or the textbook by Yadav et al.

    + +

    Note: Project 3 has an additional exercise which can give you an additional score of 30 (thirty) points. These are added to the total score from all projects. See below for the additional exercise.

    The basic structure of your project

    Here follows a set up on how to structure your report and analyze the data you have opted for.

    @@ -326,6 +335,31 @@ eigenvalues. Compare with the solution from numerical diagonalization with stand

    Part e)

    Finally, present a critical assessment of the methods you have studied and discuss the potential for the solving differential equations and eigenvalue problems with machine learning methods.

    +

    Additonal (optional) exercise, adding 30 more points to final score

    + +

    This exercise can be done independently of the other tasks. Here you +can also choose the data set you want to use. Furthermore, you can use +your codes from projects 1 and 2 as well as the codes here or simply use +libraries like Scikit-Learn, Tensorflow or similar. +

    + +

    Your task is to perform an analysis of the bias-variance tradeoff +using at least three of the main sets algorithms we have discussed in this +course. We will limit ourselves to a regression problem (fitting). You +are free to choose between bootstrap for resampling (recommended) or +cross-validation in order to get the best possible estimates. The +methods you could study are Linear Regression (OLS, Ridge and Lasso), +deep learning (feed forward neural networks and/or recurrent neural +networks), Ensemble methods (decision trees, bagging, random forests +and boosting) and support vector machines. +

    + +

    Study the bias-variance tradeoff for at least three of these sets of +algorithms for a data set of your choice as function of the complexity +of your model. Comment and discuss the results. Discuss the pros and +cons of the various methods. Are there some methods which provide both +low variance and low bias? +

    Introduction to numerical projects

    Here follows a brief recipe and recommendation on how to write a report for each diff --git a/doc/Projects/2021/Project3/html/Project3-bs.html b/doc/Projects/2021/Project3/html/Project3-bs.html index 47e28dced..c79df5535 100644 --- a/doc/Projects/2021/Project3/html/Project3-bs.html +++ b/doc/Projects/2021/Project3/html/Project3-bs.html @@ -65,6 +65,11 @@ doconce format html Project3.do.txt --html_style=bootstrap --pygments_html_style None, 'part-d-solving-eigenvalue-problems'), ('Part e)', 3, None, 'part-e'), + ('Additonal (optional) exercise, adding 30 more points to final ' + 'score', + 2, + None, + 'additonal-optional-exercise-adding-30-more-points-to-final-score'), ('Introduction to numerical projects', 2, None, @@ -129,6 +134,7 @@ MathJax.Hub.Config({

  •       Part c) Neural networks
  •       Part d) Solving eigenvalue problems
  •       Part e)
  • +
  •    Additonal (optional) exercise, adding 30 more points to final score
  •    Introduction to numerical projects
  •    Introduction to numerical projects
  •    Format for electronic delivery of report and programs
  • @@ -159,7 +165,7 @@ MathJax.Hub.Config({
    -

    Nov 13, 2021

    +

    Nov 14, 2021


    @@ -172,10 +178,11 @@ MathJax.Hub.Config({
    1. Kaggle
    2. The University of California at Irvine (UCI) with its machine learning repository.
    3. +
    4. Or other sources.

    The approach to the analysis of these new data sets should follow to a large extent what you did in projects 1 and 2. That is:

      -
    1. Whether you end up with a regression or a classification problem, you should employ at least two of the methods we have discussed among linear regression (including Ridge and Lasso), Logistic Regression, Neural Networks, Convolution Neural Networks, Recurrent Neural Networks, Support Vector Machines and Decision Trees, Random Forests, Bagging and Boosting. You could for example explore all of the approaches from decision trees, via bagging and voting classifiers, to random forests, boosting and finally XGboost. If you wish to venture into convolutional neural networks or recurrent neural networks, or extensions of neural networkds, feel free to do so.
    2. +
    3. Whether you end up with a regression or a classification problem, you should employ at least two of the methods we have discussed among linear regression (including Ridge and Lasso), Logistic Regression, Neural Networks, Convolution Neural Networks, Recurrent Neural Networks, Adversarial Neural Networks, Support Vector Machines and Decision Trees, Random Forests, Bagging and Boosting. You could for example explore all of the approaches from decision trees, via bagging and voting classifiers, to random forests, boosting and finally XGboost. If you wish to venture into convolutional neural networks or recurrent neural networks, or extensions of neural networkds, feel free to do so. You can also study unsupervised methods, although we in this course have mainly paid attendtion to supervised learning. The methods we have explored as Principal Component Analysis and k-means Clustering.

    For Boosting, feel also free to write your own codes.

    @@ -186,11 +193,13 @@ MathJax.Hub.Config({
  • If possible, you should link the data sets with exisiting research and analyses thereof. Scientific articles which have used Machine Learning algorithms to analyze the data are highly welcome. Perhaps you can improve previous analyses and even publish a new article?
  • A critical assessment of the methods with ditto perspectives and recommendations is also something you need to include.
  • -

    All in all, the report should follow the same pattern as the two previous ones, with abstract, introduction, methods, code, results, conclusions etc..

    +

    All in all, the report should follow the same pattern as the two previous ones, with abstract, introduction, methods, code, results, conclusions etc..

    -

    We propose also an alternative to the above. This is a project on using machine learning methods (neural networks mainly) to the solution of ordinary differential equations and partial differential equations, with a final twist on how to diagonalize a symmetric matrix with neural networks..

    +

    We propose also an alternative to the above. This is a project on using machine learning methods (neural networks mainly) to the solution of ordinary differential equations and partial differential equations, with a final twist on how to diagonalize a symmetric matrix with neural networks.

    -

    This is a field with a large interest recently, spanning from studies of turbulence in fluid mechanics and meteorology to the solution of quantum mechanical systems. As reading background you can use the slides from week 43 and/or the textbook by Yadav et al.

    +

    This is a field with a large interest recently, spanning from studies of turbulence in fluid mechanics and meteorology to the solution of quantum mechanical systems. As reading background you can use the slides from week 43 and/or the textbook by Yadav et al.

    + +

    Note: Project 3 has an additional exercise which can give you an additional score of 30 (thirty) points. These are added to the total score from all projects. See below for the additional exercise.

    The basic structure of your project

    Here follows a set up on how to structure your report and analyze the data you have opted for.

    @@ -326,6 +335,31 @@ eigenvalues. Compare with the solution from numerical diagonalization with stand

    Part e)

    Finally, present a critical assessment of the methods you have studied and discuss the potential for the solving differential equations and eigenvalue problems with machine learning methods.

    +

    Additonal (optional) exercise, adding 30 more points to final score

    + +

    This exercise can be done independently of the other tasks. Here you +can also choose the data set you want to use. Furthermore, you can use +your codes from projects 1 and 2 as well as the codes here or simply use +libraries like Scikit-Learn, Tensorflow or similar. +

    + +

    Your task is to perform an analysis of the bias-variance tradeoff +using at least three of the main sets algorithms we have discussed in this +course. We will limit ourselves to a regression problem (fitting). You +are free to choose between bootstrap for resampling (recommended) or +cross-validation in order to get the best possible estimates. The +methods you could study are Linear Regression (OLS, Ridge and Lasso), +deep learning (feed forward neural networks and/or recurrent neural +networks), Ensemble methods (decision trees, bagging, random forests +and boosting) and support vector machines. +

    + +

    Study the bias-variance tradeoff for at least three of these sets of +algorithms for a data set of your choice as function of the complexity +of your model. Comment and discuss the results. Discuss the pros and +cons of the various methods. Are there some methods which provide both +low variance and low bias? +

    Introduction to numerical projects

    Here follows a brief recipe and recommendation on how to write a report for each diff --git a/doc/Projects/2021/Project3/html/Project3.html b/doc/Projects/2021/Project3/html/Project3.html index de797d882..6e029085f 100644 --- a/doc/Projects/2021/Project3/html/Project3.html +++ b/doc/Projects/2021/Project3/html/Project3.html @@ -143,6 +143,11 @@ div.toc p,a { None, 'part-d-solving-eigenvalue-problems'), ('Part e)', 3, None, 'part-e'), + ('Additonal (optional) exercise, adding 30 more points to final ' + 'score', + 2, + None, + 'additonal-optional-exercise-adding-30-more-points-to-final-score'), ('Introduction to numerical projects', 2, None, @@ -193,7 +198,7 @@ MathJax.Hub.Config({

    -

    Nov 13, 2021

    +

    Nov 14, 2021


    Paths for project 3

    @@ -203,10 +208,11 @@ MathJax.Hub.Config({
    1. Kaggle
    2. The University of California at Irvine (UCI) with its machine learning repository.
    3. +
    4. Or other sources.

    The approach to the analysis of these new data sets should follow to a large extent what you did in projects 1 and 2. That is:

      -
    1. Whether you end up with a regression or a classification problem, you should employ at least two of the methods we have discussed among linear regression (including Ridge and Lasso), Logistic Regression, Neural Networks, Convolution Neural Networks, Recurrent Neural Networks, Support Vector Machines and Decision Trees, Random Forests, Bagging and Boosting. You could for example explore all of the approaches from decision trees, via bagging and voting classifiers, to random forests, boosting and finally XGboost. If you wish to venture into convolutional neural networks or recurrent neural networks, or extensions of neural networkds, feel free to do so.
    2. +
    3. Whether you end up with a regression or a classification problem, you should employ at least two of the methods we have discussed among linear regression (including Ridge and Lasso), Logistic Regression, Neural Networks, Convolution Neural Networks, Recurrent Neural Networks, Adversarial Neural Networks, Support Vector Machines and Decision Trees, Random Forests, Bagging and Boosting. You could for example explore all of the approaches from decision trees, via bagging and voting classifiers, to random forests, boosting and finally XGboost. If you wish to venture into convolutional neural networks or recurrent neural networks, or extensions of neural networkds, feel free to do so. You can also study unsupervised methods, although we in this course have mainly paid attendtion to supervised learning. The methods we have explored as Principal Component Analysis and k-means Clustering.

    For Boosting, feel also free to write your own codes.

    @@ -217,11 +223,13 @@ MathJax.Hub.Config({
  • If possible, you should link the data sets with exisiting research and analyses thereof. Scientific articles which have used Machine Learning algorithms to analyze the data are highly welcome. Perhaps you can improve previous analyses and even publish a new article?
  • A critical assessment of the methods with ditto perspectives and recommendations is also something you need to include.
  • -

    All in all, the report should follow the same pattern as the two previous ones, with abstract, introduction, methods, code, results, conclusions etc..

    +

    All in all, the report should follow the same pattern as the two previous ones, with abstract, introduction, methods, code, results, conclusions etc..

    -

    We propose also an alternative to the above. This is a project on using machine learning methods (neural networks mainly) to the solution of ordinary differential equations and partial differential equations, with a final twist on how to diagonalize a symmetric matrix with neural networks..

    +

    We propose also an alternative to the above. This is a project on using machine learning methods (neural networks mainly) to the solution of ordinary differential equations and partial differential equations, with a final twist on how to diagonalize a symmetric matrix with neural networks.

    -

    This is a field with a large interest recently, spanning from studies of turbulence in fluid mechanics and meteorology to the solution of quantum mechanical systems. As reading background you can use the slides from week 43 and/or the textbook by Yadav et al.

    +

    This is a field with a large interest recently, spanning from studies of turbulence in fluid mechanics and meteorology to the solution of quantum mechanical systems. As reading background you can use the slides from week 43 and/or the textbook by Yadav et al.

    + +

    Note: Project 3 has an additional exercise which can give you an additional score of 30 (thirty) points. These are added to the total score from all projects. See below for the additional exercise.

    The basic structure of your project

    Here follows a set up on how to structure your report and analyze the data you have opted for.

    @@ -357,6 +365,31 @@ eigenvalues. Compare with the solution from numerical diagonalization with stand

    Part e)

    Finally, present a critical assessment of the methods you have studied and discuss the potential for the solving differential equations and eigenvalue problems with machine learning methods.

    +

    Additonal (optional) exercise, adding 30 more points to final score

    + +

    This exercise can be done independently of the other tasks. Here you +can also choose the data set you want to use. Furthermore, you can use +your codes from projects 1 and 2 as well as the codes here or simply use +libraries like Scikit-Learn, Tensorflow or similar. +

    + +

    Your task is to perform an analysis of the bias-variance tradeoff +using at least three of the main sets algorithms we have discussed in this +course. We will limit ourselves to a regression problem (fitting). You +are free to choose between bootstrap for resampling (recommended) or +cross-validation in order to get the best possible estimates. The +methods you could study are Linear Regression (OLS, Ridge and Lasso), +deep learning (feed forward neural networks and/or recurrent neural +networks), Ensemble methods (decision trees, bagging, random forests +and boosting) and support vector machines. +

    + +

    Study the bias-variance tradeoff for at least three of these sets of +algorithms for a data set of your choice as function of the complexity +of your model. Comment and discuss the results. Discuss the pros and +cons of the various methods. Are there some methods which provide both +low variance and low bias? +

    Introduction to numerical projects

    Here follows a brief recipe and recommendation on how to write a report for each diff --git a/doc/Projects/2021/Project3/ipynb/Project3.ipynb b/doc/Projects/2021/Project3/ipynb/Project3.ipynb index 6d4f81e43..6be6167c4 100644 --- a/doc/Projects/2021/Project3/ipynb/Project3.ipynb +++ b/doc/Projects/2021/Project3/ipynb/Project3.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "cf42a5c7", + "id": "92499fce", "metadata": { "editable": true }, @@ -14,7 +14,7 @@ }, { "cell_type": "markdown", - "id": "dfe8ff79", + "id": "56cf5579", "metadata": { "editable": true }, @@ -22,14 +22,14 @@ "# Project 3 on Machine Learning, deadline December 17, 2021\n", "**[Data Analysis and Machine Learning FYS-STK3155/FYS4155](http://www.uio.no/studier/emner/matnat/fys/FYS3155/index-eng.html)**, Department of Physics, University of Oslo, Norway\n", "\n", - "Date: **Nov 13, 2021**\n", + "Date: **Nov 14, 2021**\n", "\n", "Copyright 1999-2021, [Data Analysis and Machine Learning FYS-STK3155/FYS4155](http://www.uio.no/studier/emner/matnat/fys/FYS3155/index-eng.html). Released under CC Attribution-NonCommercial 4.0 license" ] }, { "cell_type": "markdown", - "id": "a5296ee5", + "id": "b787f690", "metadata": { "editable": true }, @@ -39,7 +39,7 @@ }, { "cell_type": "markdown", - "id": "764e1db6", + "id": "7a40125d", "metadata": { "editable": true }, @@ -51,8 +51,10 @@ "\n", "2. The [University of California at Irvine (UCI) with its machine learning repository](https://archive.ics.uci.edu/ml/index.php).\n", "\n", + "3. Or other sources.\n", + "\n", "The approach to the analysis of these new data sets should follow to a large extent what you did in projects 1 and 2. That is:\n", - "1. Whether you end up with a regression or a classification problem, you should employ at least two of the methods we have discussed among **linear regression (including Ridge and Lasso)**, **Logistic Regression**, **Neural Networks**, **Convolution Neural Networks**, **Recurrent Neural Networks**, **Support Vector Machines** and **Decision Trees, Random Forests**, **Bagging and Boosting**. You could for example explore all of the approaches from decision trees, via bagging and voting classifiers, to random forests, boosting and finally XGboost. If you wish to venture into **convolutional neural networks** or **recurrent neural networks**, or extensions of neural networkds, feel free to do so. \n", + "1. Whether you end up with a regression or a classification problem, you should employ at least two of the methods we have discussed among **linear regression (including Ridge and Lasso)**, **Logistic Regression**, **Neural Networks**, **Convolution Neural Networks**, **Recurrent Neural Networks**, **Adversarial Neural Networks**, **Support Vector Machines** and **Decision Trees, Random Forests, Bagging and Boosting**. You could for example explore all of the approaches from decision trees, via bagging and voting classifiers, to random forests, boosting and finally XGboost. If you wish to venture into **convolutional neural networks** or **recurrent neural networks**, or extensions of neural networkds, feel free to do so. You can also study unsupervised methods, although we in this course have mainly paid attendtion to supervised learning. The methods we have explored as **Principal Component Analysis** and **k-means Clustering**.\n", "\n", "For Boosting, feel also free to write your own codes.\n", "\n", @@ -66,16 +68,18 @@ "\n", "5. A critical assessment of the methods with ditto perspectives and recommendations is also something you need to include.\n", "\n", - "All in all, the report should follow the same pattern as the two previous ones, with abstract, introduction, methods, code, results, conclusions etc.. \n", + "All in all, the report should follow the same pattern as the two previous ones, with abstract, introduction, methods, code, results, conclusions etc..\n", "\n", - "We propose also an alternative to the above. This is a project on using machine learning methods (neural networks mainly) to the solution of ordinary differential equations and partial differential equations, with a final twist on how to diagonalize a symmetric matrix with neural networks.. \n", + "We propose also an alternative to the above. This is a project on using machine learning methods (neural networks mainly) to the solution of ordinary differential equations and partial differential equations, with a final twist on how to diagonalize a symmetric matrix with neural networks.\n", "\n", - "This is a field with a large interest recently, spanning from studies of turbulence in fluid mechanics and meteorology to the solution of quantum mechanical systems. As reading background you can use the slides [from week 43](https://compphysics.github.io/MachineLearning/doc/pub/week43/html/week43.html) and/or the textbook by [Yadav et al](https://www.springer.com/gp/book/9789401798150)." + "This is a field with a large interest recently, spanning from studies of turbulence in fluid mechanics and meteorology to the solution of quantum mechanical systems. As reading background you can use the slides [from week 43](https://compphysics.github.io/MachineLearning/doc/pub/week42/html/week42.html) and/or the textbook by [Yadav et al](https://www.springer.com/gp/book/9789401798150).\n", + "\n", + "**Note**: Project 3 has an additional exercise which can give you an additional score of 30 (thirty) points. These are added to the total score from all projects. See below for the additional exercise." ] }, { "cell_type": "markdown", - "id": "6e4780c7", + "id": "8c7b1223", "metadata": { "editable": true }, @@ -87,7 +91,7 @@ }, { "cell_type": "markdown", - "id": "32262397", + "id": "f5f567df", "metadata": { "editable": true }, @@ -99,7 +103,7 @@ }, { "cell_type": "markdown", - "id": "e9b71dac", + "id": "daee2ad3", "metadata": { "editable": true }, @@ -111,7 +115,7 @@ }, { "cell_type": "markdown", - "id": "fbbbee47", + "id": "07b5058f", "metadata": { "editable": true }, @@ -123,7 +127,7 @@ }, { "cell_type": "markdown", - "id": "69a7f204", + "id": "7dc2abb4", "metadata": { "editable": true }, @@ -135,7 +139,7 @@ }, { "cell_type": "markdown", - "id": "887f0521", + "id": "af965f2e", "metadata": { "editable": true }, @@ -147,7 +151,7 @@ }, { "cell_type": "markdown", - "id": "f33bb254", + "id": "adf60f4b", "metadata": { "editable": true }, @@ -167,7 +171,7 @@ }, { "cell_type": "markdown", - "id": "d25629a1", + "id": "4b7d456d", "metadata": { "editable": true }, @@ -181,7 +185,7 @@ }, { "cell_type": "markdown", - "id": "4ce8d9b6", + "id": "c8eabc08", "metadata": { "editable": true }, @@ -193,7 +197,7 @@ }, { "cell_type": "markdown", - "id": "a6e88e9e", + "id": "1c3ff570", "metadata": { "editable": true }, @@ -203,7 +207,7 @@ }, { "cell_type": "markdown", - "id": "81e3dedd", + "id": "c98d31df", "metadata": { "editable": true }, @@ -215,7 +219,7 @@ }, { "cell_type": "markdown", - "id": "feb89d8f", + "id": "1c27b732", "metadata": { "editable": true }, @@ -225,7 +229,7 @@ }, { "cell_type": "markdown", - "id": "0bca56c5", + "id": "4f88e787", "metadata": { "editable": true }, @@ -237,7 +241,7 @@ }, { "cell_type": "markdown", - "id": "ab7915c8", + "id": "b4fa9a6c", "metadata": { "editable": true }, @@ -248,7 +252,7 @@ }, { "cell_type": "markdown", - "id": "c0d1ba71", + "id": "0787e8d0", "metadata": { "editable": true }, @@ -260,7 +264,7 @@ }, { "cell_type": "markdown", - "id": "d2aabdac", + "id": "f1389cd4", "metadata": { "editable": true }, @@ -270,7 +274,7 @@ }, { "cell_type": "markdown", - "id": "790e9a57", + "id": "08aa1c31", "metadata": { "editable": true }, @@ -282,7 +286,7 @@ }, { "cell_type": "markdown", - "id": "b452336c", + "id": "7b04313a", "metadata": { "editable": true }, @@ -295,7 +299,7 @@ }, { "cell_type": "markdown", - "id": "3679ddef", + "id": "aebe353a", "metadata": { "editable": true }, @@ -307,7 +311,7 @@ }, { "cell_type": "markdown", - "id": "3ed1a00e", + "id": "cd4094b4", "metadata": { "editable": true }, @@ -317,7 +321,7 @@ }, { "cell_type": "markdown", - "id": "bd6f8da3", + "id": "8f948136", "metadata": { "editable": true }, @@ -329,7 +333,7 @@ }, { "cell_type": "markdown", - "id": "dbd173d2", + "id": "57d23faf", "metadata": { "editable": true }, @@ -339,7 +343,7 @@ }, { "cell_type": "markdown", - "id": "a03aedf7", + "id": "a62549c5", "metadata": { "editable": true }, @@ -351,7 +355,7 @@ }, { "cell_type": "markdown", - "id": "ef63b2da", + "id": "0ee71a0b", "metadata": { "editable": true }, @@ -362,7 +366,7 @@ }, { "cell_type": "markdown", - "id": "744b0c7f", + "id": "1d1bf187", "metadata": { "editable": true }, @@ -378,7 +382,7 @@ }, { "cell_type": "markdown", - "id": "00a3534d", + "id": "c18bb4b3", "metadata": { "editable": true }, @@ -395,7 +399,7 @@ }, { "cell_type": "markdown", - "id": "836da33c", + "id": "1855e33d", "metadata": { "editable": true }, @@ -411,7 +415,7 @@ }, { "cell_type": "markdown", - "id": "ff03dd04", + "id": "98d1de62", "metadata": { "editable": true }, @@ -423,7 +427,38 @@ }, { "cell_type": "markdown", - "id": "24c8d749", + "id": "78f42475", + "metadata": { + "editable": true + }, + "source": [ + "## Additonal (optional) exercise, adding 30 more points to final score\n", + "\n", + "This exercise can be done independently of the other tasks. Here you\n", + "can also choose the data set you want to use. Furthermore, you can use\n", + "your codes from projects 1 and 2 as well as the codes here or simply use\n", + "libraries like **Scikit-Learn**, **Tensorflow** or similar.\n", + "\n", + "Your task is to perform an analysis of the bias-variance tradeoff\n", + "using at least three of the main sets algorithms we have discussed in this\n", + "course. We will limit ourselves to a regression problem (fitting). You\n", + "are free to choose between bootstrap for resampling (recommended) or\n", + "cross-validation in order to get the best possible estimates. The\n", + "methods you could study are Linear Regression (OLS, Ridge and Lasso),\n", + "deep learning (feed forward neural networks and/or recurrent neural\n", + "networks), Ensemble methods (decision trees, bagging, random forests\n", + "and boosting) and support vector machines.\n", + "\n", + "Study the bias-variance tradeoff for at least three of these sets of\n", + "algorithms for a data set of your choice as function of the complexity\n", + "of your model. Comment and discuss the results. Discuss the pros and\n", + "cons of the various methods. Are there some methods which provide both\n", + "low variance and low bias?" + ] + }, + { + "cell_type": "markdown", + "id": "29edad50", "metadata": { "editable": true }, @@ -454,7 +489,7 @@ }, { "cell_type": "markdown", - "id": "af15f3f3", + "id": "27d5016f", "metadata": { "editable": true }, @@ -485,7 +520,7 @@ }, { "cell_type": "markdown", - "id": "e7455835", + "id": "441c4d7b", "metadata": { "editable": true }, @@ -507,7 +542,7 @@ }, { "cell_type": "markdown", - "id": "fa5082d0", + "id": "b3744fce", "metadata": { "editable": true }, diff --git a/doc/Projects/2021/Project3/ipynb/ipynb-Project3-src.tar.gz b/doc/Projects/2021/Project3/ipynb/ipynb-Project3-src.tar.gz index 4853468b6a882e73526d8aca1a441cd0ffab1335..45f4f92c4b427cb4448f0988ca32d36e85c05428 100644 GIT binary patch literal 194 zcmV;z06qU7iwFR0Dv@CT1MSaC3c@fD2H>uHia9|^(xhDrcHu%O;ssKh+Ekm=Bn5kW z`v6@jZi)!`Hb27*!^|PuZ1-8@?k-pjLMWjWrc4tyCn8Hd!#D*@F{Oks%qSonGm-{? z);sB?w~m|fl(ue!vO>L^8^@~Z!=B|8c;=rt*3!Z*A6%^!DD6a{^#yXH8*y@RB)dTs wP-*cp8`ytPsI>vufQ^Sm!T0EJm4asUVb0GEwbA^-pY literal 192 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 delta 50292 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�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 diff --git a/doc/Projects/2021/Project3/pdf/Project3.tex b/doc/Projects/2021/Project3/pdf/Project3.tex index 599d6f39f..76f4a7b73 100644 --- a/doc/Projects/2021/Project3/pdf/Project3.tex +++ b/doc/Projects/2021/Project3/pdf/Project3.tex @@ -123,7 +123,7 @@ Project 3 on Machine Learning, deadline December 17, 2021 % --- begin date --- \begin{center} -Nov 13, 2021 +Nov 14, 2021 \end{center} % --- end date --- @@ -139,12 +139,14 @@ For project 3, you can propose own data sets that relate to your research intere \item \href{{https://www.kaggle.com/datasets}}{Kaggle} \item The \href{{https://archive.ics.uci.edu/ml/index.php}}{University of California at Irvine (UCI) with its machine learning repository}. + +\item Or other sources. \end{enumerate} \noindent The approach to the analysis of these new data sets should follow to a large extent what you did in projects 1 and 2. That is: \begin{enumerate} -\item Whether you end up with a regression or a classification problem, you should employ at least two of the methods we have discussed among \textbf{linear regression (including Ridge and Lasso)}, \textbf{Logistic Regression}, \textbf{Neural Networks}, \textbf{Convolution Neural Networks}, \textbf{Recurrent Neural Networks}, \textbf{Support Vector Machines} and \textbf{Decision Trees, Random Forests}, \textbf{Bagging and Boosting}. You could for example explore all of the approaches from decision trees, via bagging and voting classifiers, to random forests, boosting and finally XGboost. If you wish to venture into \textbf{convolutional neural networks} or \textbf{recurrent neural networks}, or extensions of neural networkds, feel free to do so. +\item Whether you end up with a regression or a classification problem, you should employ at least two of the methods we have discussed among \textbf{linear regression (including Ridge and Lasso)}, \textbf{Logistic Regression}, \textbf{Neural Networks}, \textbf{Convolution Neural Networks}, \textbf{Recurrent Neural Networks}, \textbf{Adversarial Neural Networks}, \textbf{Support Vector Machines} and \textbf{Decision Trees, Random Forests, Bagging and Boosting}. You could for example explore all of the approaches from decision trees, via bagging and voting classifiers, to random forests, boosting and finally XGboost. If you wish to venture into \textbf{convolutional neural networks} or \textbf{recurrent neural networks}, or extensions of neural networkds, feel free to do so. You can also study unsupervised methods, although we in this course have mainly paid attendtion to supervised learning. The methods we have explored as \textbf{Principal Component Analysis} and \textbf{k-means Clustering}. \end{enumerate} \noindent @@ -163,11 +165,13 @@ For Boosting, feel also free to write your own codes. \end{enumerate} \noindent -All in all, the report should follow the same pattern as the two previous ones, with abstract, introduction, methods, code, results, conclusions etc.. +All in all, the report should follow the same pattern as the two previous ones, with abstract, introduction, methods, code, results, conclusions etc.. -We propose also an alternative to the above. This is a project on using machine learning methods (neural networks mainly) to the solution of ordinary differential equations and partial differential equations, with a final twist on how to diagonalize a symmetric matrix with neural networks.. +We propose also an alternative to the above. This is a project on using machine learning methods (neural networks mainly) to the solution of ordinary differential equations and partial differential equations, with a final twist on how to diagonalize a symmetric matrix with neural networks. -This is a field with a large interest recently, spanning from studies of turbulence in fluid mechanics and meteorology to the solution of quantum mechanical systems. As reading background you can use the slides \href{{https://compphysics.github.io/MachineLearning/doc/pub/week43/html/week43.html}}{from week 43} and/or the textbook by \href{{https://www.springer.com/gp/book/9789401798150}}{Yadav et al}. +This is a field with a large interest recently, spanning from studies of turbulence in fluid mechanics and meteorology to the solution of quantum mechanical systems. As reading background you can use the slides \href{{https://compphysics.github.io/MachineLearning/doc/pub/week42/html/week42.html}}{from week 43} and/or the textbook by \href{{https://www.springer.com/gp/book/9789401798150}}{Yadav et al}. + +\textbf{Note}: Project 3 has an additional exercise which can give you an additional score of 30 (thirty) points. These are added to the total score from all projects. See below for the additional exercise. \subsection*{The basic structure of your project} @@ -274,6 +278,29 @@ eigenvalues. Compare with the solution from numerical diagonalization with stand \paragraph{Part e).} Finally, present a critical assessment of the methods you have studied and discuss the potential for the solving differential equations and eigenvalue problems with machine learning methods. +\subsection*{Additonal (optional) exercise, adding 30 more points to final score} + +This exercise can be done independently of the other tasks. Here you +can also choose the data set you want to use. Furthermore, you can use +your codes from projects 1 and 2 as well as the codes here or simply use +libraries like \textbf{Scikit-Learn}, \textbf{Tensorflow} or similar. + +Your task is to perform an analysis of the bias-variance tradeoff +using at least three of the main sets algorithms we have discussed in this +course. We will limit ourselves to a regression problem (fitting). You +are free to choose between bootstrap for resampling (recommended) or +cross-validation in order to get the best possible estimates. The +methods you could study are Linear Regression (OLS, Ridge and Lasso), +deep learning (feed forward neural networks and/or recurrent neural +networks), Ensemble methods (decision trees, bagging, random forests +and boosting) and support vector machines. + +Study the bias-variance tradeoff for at least three of these sets of +algorithms for a data set of your choice as function of the complexity +of your model. Comment and discuss the results. Discuss the pros and +cons of the various methods. Are there some methods which provide both +low variance and low bias? + \subsection*{Introduction to numerical projects} Here follows a brief recipe and recommendation on how to write a report for each diff --git a/doc/src/Projects/2021/Project3/Project3.do.txt b/doc/src/Projects/2021/Project3/Project3.do.txt index f49e264d4..c3c1b8811 100644 --- a/doc/src/Projects/2021/Project3/Project3.do.txt +++ b/doc/src/Projects/2021/Project3/Project3.do.txt @@ -10,10 +10,10 @@ DATE: today For project 3, you can propose own data sets that relate to your research interests or just use existing data sets from say o "Kaggle":"https://www.kaggle.com/datasets" o The "University of California at Irvine (UCI) with its machine learning repository":"https://archive.ics.uci.edu/ml/index.php". - +o Or other sources. The approach to the analysis of these new data sets should follow to a large extent what you did in projects 1 and 2. That is: -o Whether you end up with a regression or a classification problem, you should employ at least two of the methods we have discussed among _linear regression (including Ridge and Lasso)_, _Logistic Regression_, _Neural Networks_, _Convolution Neural Networks_, _Recurrent Neural Networks_, _Support Vector Machines_ and _Decision Trees, Random Forests_, _Bagging and Boosting_. You could for example explore all of the approaches from decision trees, via bagging and voting classifiers, to random forests, boosting and finally XGboost. If you wish to venture into _convolutional neural networks_ or _recurrent neural networks_, or extensions of neural networkds, feel free to do so. +o Whether you end up with a regression or a classification problem, you should employ at least two of the methods we have discussed among _linear regression (including Ridge and Lasso)_, _Logistic Regression_, _Neural Networks_, _Convolution Neural Networks_, _Recurrent Neural Networks_, _Adversarial Neural Networks_, _Support Vector Machines_ and _Decision Trees, Random Forests, Bagging and Boosting_. You could for example explore all of the approaches from decision trees, via bagging and voting classifiers, to random forests, boosting and finally XGboost. If you wish to venture into _convolutional neural networks_ or _recurrent neural networks_, or extensions of neural networkds, feel free to do so. You can also study unsupervised methods, although we in this course have mainly paid attendtion to supervised learning. The methods we have explored as _Principal Component Analysis_ and _k-means Clustering_. For Boosting, feel also free to write your own codes. @@ -27,11 +27,14 @@ o If possible, you should link the data sets with exisiting research and analyse o A critical assessment of the methods with ditto perspectives and recommendations is also something you need to include. -All in all, the report should follow the same pattern as the two previous ones, with abstract, introduction, methods, code, results, conclusions etc.. +All in all, the report should follow the same pattern as the two previous ones, with abstract, introduction, methods, code, results, conclusions etc.. -We propose also an alternative to the above. This is a project on using machine learning methods (neural networks mainly) to the solution of ordinary differential equations and partial differential equations, with a final twist on how to diagonalize a symmetric matrix with neural networks.. +We propose also an alternative to the above. This is a project on using machine learning methods (neural networks mainly) to the solution of ordinary differential equations and partial differential equations, with a final twist on how to diagonalize a symmetric matrix with neural networks. -This is a field with a large interest recently, spanning from studies of turbulence in fluid mechanics and meteorology to the solution of quantum mechanical systems. As reading background you can use the slides "from week 43":"https://compphysics.github.io/MachineLearning/doc/pub/week43/html/week43.html" and/or the textbook by "Yadav et al":"https://www.springer.com/gp/book/9789401798150". +This is a field with a large interest recently, spanning from studies of turbulence in fluid mechanics and meteorology to the solution of quantum mechanical systems. As reading background you can use the slides "from week 43":"https://compphysics.github.io/MachineLearning/doc/pub/week42/html/week42.html" and/or the textbook by "Yadav et al":"https://www.springer.com/gp/book/9789401798150". + + +_Note_: Project 3 has an additional exercise which can give you an additional score of 30 (thirty) points. These are added to the total score from all projects. See below for the additional exercise. ===== The basic structure of your project ===== @@ -168,6 +171,32 @@ eigenvalues. Compare with the solution from numerical diagonalization with stand Finally, present a critical assessment of the methods you have studied and discuss the potential for the solving differential equations and eigenvalue problems with machine learning methods. +===== Additonal (optional) exercise, adding 30 more points to final score ===== + +This exercise can be done independently of the other tasks. Here you +can also choose the data set you want to use. Furthermore, you can use +your codes from projects 1 and 2 as well as the codes here or simply use +libraries like _Scikit-Learn_, _Tensorflow_ or similar. + +Your task is to perform an analysis of the bias-variance tradeoff +using at least three of the main sets algorithms we have discussed in this +course. We will limit ourselves to a regression problem (fitting). You +are free to choose between bootstrap for resampling (recommended) or +cross-validation in order to get the best possible estimates. The +methods you could study are Linear Regression (OLS, Ridge and Lasso), +deep learning (feed forward neural networks and/or recurrent neural +networks), Ensemble methods (decision trees, bagging, random forests +and boosting) and support vector machines. + +Study the bias-variance tradeoff for at least three of these sets of +algorithms for a data set of your choice as function of the complexity +of your model. Comment and discuss the results. Discuss the pros and +cons of the various methods. Are there some methods which provide both +low variance and low bias? + + + + ===== Introduction to numerical projects ===== Here follows a brief recipe and recommendation on how to write a report for each