- Author: Alexander Hartmaier
- Organization: ICAMS, Ruhr University Bochum, Germany
- Contact: alexander.hartmaier@rub.de
Machine learning methods are trained with different data sets to work either as regression functions or to find the delimiter lines between classes of data points with different characteristics. Furthermore, it is demonstrated how a surrogate model can be built by supervised learning.
Additionally, a full chain of tutorials has been added to demosntrate (i) how the anisotropic elastic properties of composite material can be determined by finite element analysis, (ii) how consistent data sets on the microstructural features (volume fraction and geometrical arrangement of filler phase) and the resulting elastic properties can be generated, and (iii) how different machine learning algorithms can be trained on such data.
The tutorial is conveniently used with Jupyter notebooks that can be directly accessed with Binder:
https://mybinder.org/v2/gh/AHartmaier/ML-Tutorial.git
To use the tutorial on your own hardware, you need an Anaconda or Miniconda installation with a recent Python version. Then follow those steps:
- Download the contents of the GitHub repository, e.g. with
$ git clone https://github.com/AHartmaier/ML-Tutorial.git
or download and unpack the ZIP archive directly from GitHub.
- Change the working directory
$ cd ML-Tutorial
- Create a conda environment
$ conda env create -f environment.yml
- Activate the environment
$ conda activate ml-tutorial
- Start JupyterLab (or juypter notebook)
$ jupyter lab index.ipynb
If you want to remove the tutorial from your hardware, you need to follow those steps:
- Deactivate the conda environment
$ conda deactivate
- Remove the environment
$ conda env remove -n ml-tutorial
- Delete the folder ML-Tutorial
$ cd ..; rm -rf ML-Tutorial
The tutorial uses the following packages, which are automatically installed in the environment when following the instruction above:
- NumPy for array handling and mathematical operations
- scikit-learn for machine learning algorithms
- MatPlotLib for graphical output
- ipympl defining widgets for user interaction
- pylabfea for finite element analysis (FEA)
The software in this tutorial comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under the conditions of the GNU General Public License (GPLv3)
The contents of notebooks and documents are published under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0)