This repository archives my coursework for the practical lab "Algorithms in Machine Learning and Their Application" (SS25). [cite_start]The course, instructed by Prof. Dr. Jochen Garcke and Dr. Bastian Bohn, focuses on equipping students with the skills to develop numerical software for machine learning and apply these techniques to complex data analysis tasks.
This repository contains my implementations of various foundational and advanced machine learning algorithms.
Each assignment builds upon core concepts in data analysis and machine learning. My solutions, implemented in Python within Jupyter Notebooks, can be found in the Assignments directory.
| Assignment | Key Topics | Status |
|---|---|---|
| Sheet 1 | Linear Least Squares, k-Nearest Neighbors (k-NN), Data Normalization | Complete |
| Sheet 2 | Support Vector Machines (SVMs), Kernel Trick, Sequential Minimal Optimization (SMO) | Complete |
| Sheet 3 | Principal Component Analysis (PCA), Dimensionality Reduction, HOG Features | Complete |
| Sheet 4 | Deep Neural Networks (DNNs), Backpropagation, CNNs, Keras/TensorFlow | Complete |
| Sheet 5 | Reinforcement Learning, Markov Decision Processes, Q-Learning, Sarsa | Pending |
| Final Project | Analysis of a real-world dataset | Pending |
The solutions are implemented in Python 3. Key libraries used throughout the course include:
- NumPy: For fundamental numerical and array operations.
- Matplotlib: For data visualization.
- Pandas: For data manipulation and analysis, particularly with the Iris dataset.
- Scikit-learn: For implementations of SVMs, PCA, and other standard ML models.
- TensorFlow & Keras: For building and training deep neural networks.
I would like to acknowledge the excellent instruction and comprehensive course materials provided by Prof. Dr. Jochen Garcke, Dr. Bastian Bohn, and Arno Feiden from the University of Bonn.