This repository contains implementations of various machine learning algorithms from scratch. Each algorithm is presented in a Jupyter Notebook along with corresponding Python modules.
- Bias-Variance Tradeoff
- Decision Trees (Python Code)
- Gradient Boosting (Python Code)
- K-Means Clustering (Python Code)
- K-Nearest Neighbors (KNN) (Python Code)
- Linear Regression (Python Code)
- Logistic Regression (Python Code)
- Optimizers (Python Code)
- Gaussian Mixture Model (Python Code)
- PCA (Python Code)
- ROC AUC
The mllib
module contains the Python implementations of the algorithms. Here's an overview of the modules:
- adam.py: Implementation of the Adam optimizer.
- base.py: Base classes for machine learning algorithms.
- decision_tree.py: Decision tree algorithm.
- gmm.py: Gaussian Mixture Model implementation.
- gradient_boosting.py: Gradient boosting algorithm.
- kmeans.py: K-Means clustering algorithm.
- knn.py: K-Nearest Neighbors algorithm.
- linear_regression.py: Linear regression algorithm.
- logistic_regression.py: Logistic regression algorithm.
- optimizers.py: Various optimization algorithms.
- random_forest.py: Random Forest algorithm.
- qr.py: QR decomposition algorithm.
- pca.py: PCA algorithm.
- svd.py: SVD algorithm.
- naive_bayes.py: Naive Bayes algorithm.
- utils.py: Utility functions.
Each algorithm is presented in a Jupyter Notebook for easy exploration and understanding. The corresponding Python modules in the mllib
directory provide the implementation details.
This repository is licensed under the MIT License.
For detailed information about each algorithm, refer to the respective Jupyter Notebook and Python modules.
TODO: Algorithms to add.
- Add Kernel SVM (using cvxopt)
- Add Spectral Clustering
TODO: General things.
- Add comments and docstrings
- Refactor as package