This repository contains assignments from the course CS573 - Optimization Methods, offered by the Department of Computer Science at the University of Crete during the Fall Semester 2023-2024.
This repository contains assignments and related materials for the CS573 - Optimization Methods course. The course covers various optimization techniques and algorithms used in computer science and engineering.
Description:
Assignment 1 focuses on applying Singular Value Decomposition (SVD) and Principal Component Analysis (PCA) to analyze datasets. The assignment includes:
- Loading and preprocessing datasets.
- Implementing SVD to decompose matrices.
- Utilizing PCA for dimensionality reduction.
- Analyzing principal components and their significance.
- Conducting nearest neighbor analysis in low-dimensional space.
- Visualizing data distributions and patterns.
For more details, refer to the Assignment 1 PDF.
Description:
Assignment 2 provides a comprehensive study of regression analysis, starting with Least Squares Regression and extending to Lasso Regression with a focus on feature selection and regularization. It further explores the concept of matrix completion as a method to handle missing data in datasets.
The assignment includes:
- Implementing Least Squares Regression from scratch to understand the fundamentals of linear modeling.
- Developing a Lasso Regression model to incorporate L1 regularization for feature selection and model simplicity.
- Investigating the impact of missing data on model performance and exploring matrix completion as a solution.
- Re-evaluating the regression models after applying matrix completion to see the improvements in prediction accuracy.
For more details, refer to the Assignment 2 PDF.
Report:
Each assignment in this repository includes a detailed report. The reports provide insights, analyses, and discussions on the implemented methods, results, and the practical implications of optimization techniques in solving real-world problems.
Assignment1/
: Contains the code and materials for Assignment 1.Assignment2/
: Contains the code and materials for Assignment 2.
- Python: Main programming language used for model development and data analysis.
- Jupyter Notebooks: For interactive code execution and visualization.
- NumPy & Pandas: Libraries used for numerical computations and data manipulation.
- Matplotlib & Seaborn: For data visualization.
To view the assignments, download the respective PDF files and open them with any standard PDF viewer.
The code for the assignments can be found in Jupyter Notebooks. To run the notebooks:
- Ensure you have Jupyter installed. If not, install it using
pip install jupyter
. - Navigate to the directory containing the
.ipynb
files. - Run
jupyter notebook
to launch the Jupyter Notebook App or your preffered editor/IDE.
This project is licensed under the MIT License - see the LICENSE file for details.
- University of Crete, Department of Computer Science
- Course Instructor: [Tsagkatakis Grigorios](Instructor's Profile Linkhttps://users.ics.forth.gr/~greg/)