This implementations are done for ENGR421 Fall'20. Engr421 is an introductory course to machine learning.
For using ML algorithms & models, we need only few lines of code. For example, naive bayes can be used as in the following:
from sklearn.naive_bayes import GaussianNB
>>> gnb = GaussianNB()
>>> y_pred = gnb.fit(X_train, y_train).predict(X_test)
However, this does not help to understand concepts and logic behind the models.
Therefore, this repository contains implementations from scratch only using basic numpy functions. The implementations are not meant to be faster or more efficent than builtin methods from scikitlearn, sklearn etc.
Topics covered are regression, classification, clustering, and dimensionality reduction methods; supervised and unsupervised models; linear and nonlinear models; parametric and nonparametric models; combinations of multiple models; comparisons of multiple models and model selection.
Course focuses on both mathematical background and real life applications of the algorithms.
This repository has solutions to biweekly assignments which are implemented from scratch.