Skip to content

Post-Grad Learning Continues: Repo focused on connecting the math to implementation (matrix notation, likelihoods, gradients) without relying on high-level libraries.

Notifications You must be signed in to change notification settings

zeper-eng/Learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

108 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Learning (Hand-rolled Machine Learning and Statistical Analyses)

Initially begun as a small project to learn some typescript and work out implementing a few statistical analyses, it actually also functions as a nice log of the various derivations and theorems I have been reading and doing in a notebook.

Thus, I have decided to document this a little more thoroughly and use it as proof of concept for my excursions into numerical computing. While thin at the moment (and not the most robust in approaches) the idea is that this repository would continue to grow as I hand-implement more algorithms and also make existing ones more robust (for example other optimization approaches, non-closed-form LR, etc).

The original typescript univariate implementation still exists inside of the original src directory but, they have been sidelined in favor of a Python backend and java/typescript front end for visualization and data loading. 

Implementations so far and where the code lives

Outlined below are the different algorithms I have implemented so far.

Implementations

Meta Regression

Logistic Regression

Multiple Regression

Poisson Regression

Code

Core Algorithms

Legacy + Frontend

There are examples at the bottom of each python module inside of the "main" block that can be run to test out each implementation if anyone perusing is curious to see. There are, of-course unlisted dependencies (i.e. numpy/scipy/scikit-learn) but this is not really meant to be an entirely public use at the moment so for now I leave it up to the user to pip/conda install their way to success.

Future directions

Front end

I plan on also adding in some kind of typescript front end GUI/chart displayer mostly to try to get some practice using javascript/typescript.

There is actually already a univariate regression implemented in typescript before I realized that there weren’t many good vectorized math packages (aside from like tensorflow but this came with its own suite of problems) in the nodejs version of typescript and it's really not meant for that anyways but, it gave me a solid foundation thus far.

Perhaps I will also add in some SQLite for databse operations. Although, we would be just moving CSV's around inside folders it would be proof of concept.

Algorithms

At the moment plan on continuing implementing mostly GLMs for the purpose of growing my clinical research relevant skillset but, will also try out things like K-means and SVD-PCA as well as other generalizations.

In the near future:

  • k-means
  • PCA
  • negative bionomial regression

About

Post-Grad Learning Continues: Repo focused on connecting the math to implementation (matrix notation, likelihoods, gradients) without relying on high-level libraries.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published