Skip to content

Machine Learning course projects (CS3735, Winter 2024, UNB) - Implementations of ML algorithms using Python, scikit-learn, Tensorflow and from scratch

Notifications You must be signed in to change notification settings

Daniel-Tietie/CS3735-Machine-Learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

CS3735: Introduction to Machine Learning

Winter 2024 | University of New Brunswick

About This Repository

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.

Course Overview

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.

Topics Covered

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

Assignments

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


Assignment 2: Decision Trees (Coming Soon)

Assignment 3: Random Forests (Coming Soon)

Assignment 4: Neural Networks (Coming Soon)

Assignment 5: CNNs (Coming Soon)

Assignment 6: Advanced Topics (Coming Soon)

Repository Structure

CS3735-Intro-Machine-Learning/
├── README.md                    (this file)
├── assignment-1/
│   ├── README.md
│   ├── notebooks/
│   ├── visualizations/
│   └── data/
├── assignment-2/
│   └── ...
└── ...

Technologies Used

  • 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

Key Learnings

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

How to Use This Repository

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:

  1. Navigate to the assignment folder
  2. Follow the instructions in that assignment's README
  3. Notebooks can be run in Google Colab or locally with Jupyter

Academic Integrity

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.

Contact

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.

About

Machine Learning course projects (CS3735, Winter 2024, UNB) - Implementations of ML algorithms using Python, scikit-learn, Tensorflow and from scratch

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published