Skip to content

tonyjward/machine-learning-oop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Machine Learning Object Oriented Programming

There are two goals of this project

  1. To practice object oriented programming in Python
  2. To improve Machine Learning skills by implementing algorithms from scratch

We start with the simplest of the machine learning algorithms - Linear Regression. Three optimisers have been coded up

  1. Ordinary Least Squares
  2. Gradient Descent
  3. Particle Swarm

Particle Swarm Optimisation (PSO) allows us to optimise custom loss functions. The nice thing here is unlike gradient descent type algorithms, the loss function does not have to be differntiable. In this notebook I demonstrate how we can take advantage of this by optimising a range of custom loss functions. I also test whether the resulting models are significantly different from each other, using the boston housing dataset.

-- Project Status: Under Development

Methods Used

  • Object Orientated Programming
  • Optimisation (OLS, Gradient Descent, Particle Swarm)

Technologies

  • Python

Tests

Tests can be run from the main directory using

python -m unittest discover

Contact

About

Building our own ML estimators from scratch

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published