This repository contains the code and reports for the course "2DV516 Introduction to Machine Learning". The course consists of 4 assignments, each consisting of several sub-assignments. The assignments covered topics such as k Nearest Neighbors, Linear and Logistic regression, Gradient Descent, Decision trees, Ensemble methods, SVM, Neural Networks, and Unsupervised learning.
-
k Nearest Neighbors
- Implementing k-NN from scratch and using Scikit-learn library.
- Exploring the effect of changing hyperparameters on the performance of the algorithm.
-
Linear and Logistic regression, Gradient Descent
- Implementing linear and logistic regression from scratch and using Scikit-learn library.
- Exploring the effect of regularization on the performance of the models.
- Implementing gradient descent optimization from scratch.
-
Decision trees, Ensemble methods, SVM, and Neural Networks
- Implementing decision trees, Random Forests, and Adaboost from scratch and using Scikit-learn library.
- Implementing SVM using Scikit-learn library.
- Implementing Neural Networks using TensorFlow and Scikit-learn library.
- Exploring the effect of hyperparameters on the performance of the models.
-
Unsupervised learning
- Implementing K-Means clustering and Principal Component Analysis from scratch and using Scikit-learn library.
- Exploring the effect of changing hyperparameters on the performance of the algorithms.