A Python package of Machine Learning Algorithms implemented from scratch.
The aim of this package is to present the working behind fundamental Machine Learning algorithms in a transparent and modular way.
NOTE: The implementations of these algorithms are not thoroughly optimized for high computational efficiency.
$ pip install showml
$ git clone https://github.com/hasnainroopawalla/ShowML.git
$ cd ShowML
$ pip install -r requirements.txt
Remember to add ShowML/ to the PYTHONPATH environment variable before using locally:-
- For Windows:
$ set PYTHONPATH=%PYTHONPATH%;<path-to-directory>\ShowML - For MacOS:
$ export PYTHONPATH=/<path-to-directory>/ShowML:$PYTHONPATH - For Linux:
$ export PYTHONPATH="${PYTHONPATH}:/<path-to-directory>/ShowML"
Check out: showml/examples/
ShowML currently includes the following content, however, this repository will continue to expand in order to include implementations of many more Machine Learning Algorithms.
-
Linear
- Linear Regression (
showml.linear_model.regression.LinearRegression) - Logistic Regression (
showml.linear_model.regression.LogisticRegression)
- Linear Regression (
-
Non-Linear
- Sequential (
showml.deep_learning.model.Sequential)
- Sequential (
-
Layers
- Dense (
showml.deep_learning.layers.Dense)
- Dense (
-
Activations
- Sigmoid (
showml.deep_learning.activations.Sigmoid) - ReLu (
showml.deep_learning.activations.Relu) - Softmax (
showml.deep_learning.activations.Softmax)
- Sigmoid (
- Stochastic/Batch/Mini-Batch Gradient Descent (
showml.optimizers.SGD) - Adaptive Gradient (
showml.optimizers.AdaGrad) - Root Mean Squared Propagation (
showml.optimizers.RMSProp)
- Mean Squared Error (
showml.losses.MeanSquaredError) - Binary Cross Entropy (
showml.losses.BinaryCrossEntropy) - Categorical Cross Entropy (
showml.losses.CrossEntropy)
- Fork the repository.
- Commit and push your changes to your own branch.
- Install and run the necessary housekeeping dependencies (pre-commit, mypy and pytest):
$ pip install pre-commit mypy pytest - Run these housekeeping checks locally and make sure all of them succeed (required for the CI to pass):-
$ pre-commit run -a $ mypy . $ pytest - Open a Pull Request and I'll review it.
This project is licensed under the MIT License - see the LICENSE file for details.
