|
| 1 | +<a id="readme-top"></a> |
| 2 | + |
| 3 | +[![Stargazers][stars-shield]][stars-url] |
| 4 | +[![Issues][issues-shield]][issues-url] |
| 5 | +[![BSD-3-Clause License][license-shield]][license-url] |
| 6 | + |
| 7 | + |
| 8 | +<br /> |
| 9 | +<div align="center"> |
| 10 | + <a href="https://github.com/yetalit/mojmelo"> |
| 11 | + <img src="./image.jpeg" alt="Logo" width="256" height="256"> |
| 12 | + </a> |
| 13 | + <h3 align="center">Mojmelo</h3> |
| 14 | + <p align="center"> |
| 15 | + <a href="https://github.com/yetalit/mojmelo/issues/new?labels=bug&template=bug-report---.md">Report Bug</a> |
| 16 | + · |
| 17 | + <a href="https://github.com/yetalit/mojmelo/issues/new?labels=enhancement&template=feature-request---.md">Request Feature</a> |
| 18 | + </p> |
| 19 | +</div> |
| 20 | + |
| 21 | +## About The Project |
| 22 | + |
| 23 | +The name `Mojmelo` is derived from the "Mojo Machine Learning" expression. It includes the implementation of Machine Learning algorithms from scratch in pure Mojo. |
| 24 | +Here is the list of the algorithms: |
| 25 | +* Linear Regression |
| 26 | +* Polynomial Regression |
| 27 | +* Logistic Regression |
| 28 | +* KNN |
| 29 | +* KMeans |
| 30 | +* DBSCAN |
| 31 | +* SVM |
| 32 | + 1. Primal |
| 33 | + 2. Dual |
| 34 | +* Perceptron (single layer: Binary Classification) |
| 35 | +* Naive Bayes |
| 36 | + 1. GaussianNB |
| 37 | + 2. MultinomialNB |
| 38 | +* Decision Tree (both Regression/Classification) |
| 39 | +* Random Forest (both Regression/Classification) |
| 40 | +* GBDT (both Regression/Classification) |
| 41 | +* PCA |
| 42 | +* LDA |
| 43 | +* Adaboost |
| 44 | + |
| 45 | +Preprocessing: |
| 46 | +* normalize |
| 47 | +* MinMaxScaler |
| 48 | +* StandardScaler |
| 49 | +* KFold |
| 50 | +* GridSearchCV |
| 51 | + |
| 52 | +**Mojmelo will not only be limited to above algorithms.** |
| 53 | + |
| 54 | +## Getting Started |
| 55 | + |
| 56 | +The following steps let you know how to get started with Mojmelo. |
| 57 | + |
| 58 | +### Prerequisites |
| 59 | + |
| 60 | +* Mojo compiler |
| 61 | + |
| 62 | +Additionally, you may want to install bellow Python packages for a better usability and to run tests: |
| 63 | +1. Numpy |
| 64 | +2. Pandas |
| 65 | +3. Scikit-learn |
| 66 | +4. Matplotlib |
| 67 | + |
| 68 | +## Usage |
| 69 | + |
| 70 | +Just import any model you want this way: |
| 71 | +```python |
| 72 | +from mojmelo.LinearRegression import LinearRegression |
| 73 | +``` |
| 74 | +You may also want to use the utility codes I've written for this project: |
| 75 | +```python |
| 76 | +from mojmelo.utils.Matrix import Matrix |
| 77 | +from mojmelo.utils.utils import * |
| 78 | +``` |
| 79 | + |
| 80 | +## Contributing |
| 81 | + |
| 82 | +Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**. |
| 83 | + |
| 84 | +You can contribute to the project in 3 ways: |
| 85 | +1. Apply improvements to the code and Open a Pull Request |
| 86 | +2. Report a bug |
| 87 | +3. Suggest new features |
| 88 | + |
| 89 | +<!-- ACKNOWLEDGMENTS --> |
| 90 | +## Acknowledgments |
| 91 | + |
| 92 | +Took inspiration from Patrick Loeber's <a href='https://github.com/patrickloeber/MLfromscratch/'>MLfromscratch</a> and Erik Linder-Norén's <a href='https://github.com/eriklindernoren/ML-From-Scratch/'>ML-From-Scratch</a> |
| 93 | + |
| 94 | +Mojo usage and distribution is licensed under the [MAX & Mojo Community License](https://www.modular.com/legal/max-mojo-license). |
| 95 | + |
| 96 | + |
| 97 | +[stars-shield]: https://img.shields.io/github/stars/yetalit/mojmelo?style=social |
| 98 | +[stars-url]: https://github.com/yetalit/mojmelo/stargazers |
| 99 | +[issues-shield]: https://img.shields.io/github/issues/yetalit/mojmelo |
| 100 | +[issues-url]: https://github.com/yetalit/mojmelo/issues |
| 101 | +[license-shield]: https://img.shields.io/badge/license-BSD%203--Clause-blue |
| 102 | +[license-url]: https://github.com/yetalit/Mojmelo/blob/main/LICENSE |
0 commit comments