Machine learning for the working mathematician
A comprehensive, mathematically detailed revision
In this repository, I will upload some projects I have been working on. These include the building algorithms from scratch, as well as some applications of these. These notebooks follow the perspective of a theoretical mathematician, so they provide details of the algorithms which are normally skipped. The suggested order of the notebooks is
- Linear regression
- Multiple and polynomial regression
- Logistic regression
- Neural networks
- A note on gradient descent and convergence
- Stochastic gradient descent
- K-nearest neighbor
- K-means
- Evaluation
- Linear discriminant analysis
- Quadratic discriminant analysis
- Naive Bayes
- Support vector machines, part 1
- Support vector machines, part 2
- Support vector machines, part 3
Most of the examples are done using basic datasets in order to illustrate each concept.
Sources: my sources are mainly my notes from Andrew Ng's course and The Elements of Statistical learning by Hastie et al.
Disclaimer: I am not a programmer, so my code is not the most elegant possible. In contrast, as a mathematician, my notebooks will tend to be full of math and equations, so beware.