A collection of machine learning models implemented from scratch
Project description
InnoML
Overview
This package is a custom-built implementation of several foundational machine learning algorithms developed entirely from scratch, without reliance on libraries like scikit-learn. It provides an educational and practical resource for understanding and applying machine learning techniques at a granular level.
Implemented Algorithms
- Linear Regression
- Multiple Linear Regression
- Logistic Regression
- K-Nearest Neighbors (KNN)
- Decision Tree
- Random Forest
Features
- Custom Implementation: All algorithms are implemented from first principles, ensuring transparency and understanding of the underlying mechanics.
- Versatile: Supports both regression and classification tasks.
- No External Dependencies: Built without using pre-existing ML libraries, providing full control over model behavior and implementation details.
- Educational Resource: Ideal for those who want to learn the inner workings of machine learning algorithms.
Installation
Clone the repository to your local machine:
git clone https://github.com/SriramR123/InnoML.git
cd InnoML
No additional libraries are required beyond Python's standard libraries.
Usage
Example: Linear Regression
from InnoML.linear_regression import LinearRegression
# Example data
X = [[1], [2], [3], [4], [5]]
y = [2, 4, 6, 8, 10]
# Initialize and fit the model
model = LinearRegression()
model.fit(X, y)
# Make predictions
predictions = model.predict([[6], [7]])
print(predictions) # Output: [12, 14]
Available Modules
Each algorithm is implemented in a separate module for clarity and modularity:
linear_regression.py: Implementation of simple and multiple linear regression.logistic_regression.py: Logistic regression for binary classification.knn.py: K-Nearest Neighbors for classification and regression.decision_tree.py: Decision tree for classification and regression.random_forest.py: Ensemble learning using Random Forest.
Contributing
Contributions are welcome! If you find a bug or have a feature request, feel free to open an issue or submit a pull request.
Steps to Contribute:
- Fork the repository.
- Create a new branch:
git checkout -b feature-name. - Commit your changes:
git commit -m 'Add feature name'. - Push to the branch:
git push origin feature-name. - Open a pull request.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Contact
For questions or feedback, feel free to reach out:
- Email: sriramachandranram@gmail.com
- GitHub: SriramR123
Acknowledgements
This project is inspired by the desire to understand and implement machine learning algorithms at a foundational level. Special thanks to the open-source community for their resources and support.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file InnoML-0.1.0.tar.gz.
File metadata
- Download URL: InnoML-0.1.0.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7761a4fdce5a718088257083002291abc9e578c9f379c26dd2da1fee849129c1
|
|
| MD5 |
236256241e48586e4f44ea8ce951bb2b
|
|
| BLAKE2b-256 |
6e54ca217f66d1b28169d54d096b9c512241eb2c2140a92685589583b6adaa45
|
File details
Details for the file InnoML-0.1.0-py3-none-any.whl.
File metadata
- Download URL: InnoML-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a190236b04cea47d845ef4c380f9632bc5aa8d39ecff5c3163850379dfaad4b3
|
|
| MD5 |
0167e28200977b3c69dfa403194fd82a
|
|
| BLAKE2b-256 |
262cfecba2fb291684cdf0dc8f06890405cdc9a6807fc528aaf3d38a10ef9190
|