Winter 2024 | University of New Brunswick
This repository contains coursework and projects from CS3735 - Introduction to Machine Learning. Each assignment demonstrates implementation and application of core machine learning algorithms, combining both library-based approaches and from-scratch implementations to deepen understanding of the underlying mathematics and techniques.
CS3735 provides a comprehensive introduction to machine learning, covering both traditional ML methods and modern deep learning techniques. The course emphasizes hands-on implementation and practical application of algorithms to real-world datasets.
Traditional Machine Learning:
- Linear and Logistic Regression
- Decision Trees and Random Forests
- Support Vector Machines (SVMs)
- Naive Bayes Classifiers
- K-Nearest Neighbors (KNN)
- Ensemble Learning Methods
Deep Learning:
- Deep Neural Networks
- Convolutional Neural Networks (CNNs)
- Recurrent Neural Networks (RNNs)
- Transformers
- Generative Models
Core Concepts:
- Supervised and Unsupervised Learning
- Feature Engineering and Selection
- Model Evaluation and Validation
- Hyperparameter Tuning
- Gradient Descent Optimization
- Regularization Techniques
Implementation of linear and logistic regression using both scikit-learn and custom gradient descent algorithms.
Key Concepts: Gradient descent, feature normalization, one-vs-rest classification, hyperparameter tuning
Results: Custom implementations achieved comparable performance to scikit-learn (RMSE: 0.20 vs 0.19, Accuracy: 100%)
Tech Stack: Python, NumPy, Pandas, Scikit-learn, Matplotlib, Seaborn
CS3735-Intro-Machine-Learning/
├── README.md (this file)
├── assignment-1/
│ ├── README.md
│ ├── notebooks/
│ ├── visualizations/
│ └── data/
├── assignment-2/
│ └── ...
└── ...
- Python 3.x - Primary programming language
- NumPy - Numerical computing and linear algebra
- Pandas - Data manipulation and analysis
- Scikit-learn - Machine learning algorithms and tools
- TensorFlow/PyTorch - Deep learning frameworks
- Matplotlib & Seaborn - Data visualization
- Google Colab - Development environment
Throughout this course, I've gained hands-on experience with:
- Implementing ML algorithms from scratch to understand their inner workings
- Comparing custom implementations with industry-standard libraries
- Applying appropriate preprocessing techniques for different data types
- Visualizing model performance and interpreting results
- Debugging numerical issues in gradient-based optimization
- Selecting appropriate models and hyperparameters for different tasks
Each assignment folder contains:
- README.md - Detailed documentation of the assignment
- Notebooks - Jupyter notebooks with code and analysis
- Visualizations - Result plots and figures
- Data - Datasets used (where applicable)
To run any assignment:
- Navigate to the assignment folder
- Follow the instructions in that assignment's README
- Notebooks can be run in Google Colab or locally with Jupyter
All assignments were completed individually in accordance with UNB's academic integrity policies. This repository is published after course completion for portfolio and educational purposes.
Course: CS3735 - Introduction to Machine Learning
Semester: Winter 2024
Institution: University of New Brunswick
This repository demonstrates practical machine learning skills including algorithm implementation, model evaluation, and result interpretation. All work represents individual effort and understanding of course material.