No project description provided
Project description
Here's the English translation of your machine learning lab README:
Machine Learning Labs
This repository contains machine learning models implemented from scratch using numpy, pandas, and matplotlib, aimed at helping learners understand the internal workings of various machine learning algorithms. If you encounter any issues while using this repository, feel free to open an Issue or improve the project by submitting a Pull Request.
Features
- Implement machine learning algorithms manually and package them in Python for testing.
- Provide comprehensive basic tests.
- Easily create and run custom tests.
Install Dependencies
Use the requirements.txt file to configure the environment dependencies. It’s recommended to use pload as a lightweight virtual environment management tool focused on managing Python environments. To set it up, follow these steps:
pload new -m 'MLLabs' -v 3.8.20 -f requirements.txt # v3.8.20 recommended; other versions not tested.
Usage
The following sections outline how to run benchmark tests, custom models, and create and execute tests.
1. Run Benchmark Tests
First, create a dedicated virtual environment for the project and activate it. To learn more about using pload to create virtual environments, refer to: Creating Virtual Environments with pload.
-
Clone the Repository:
git clone --branch main --single-branch https://github.com/HugoPhi/MachineLearningLabs.git
-
Install Local Library:
Enter the project directory:
cd MachineLearningLabs/
Compile and install the library:
pip install .
You can verify successful installation by running
pip listand checking if thehymlibrary is included. -
Run Tests:
For example, to run the
test/DecisionTree/watermelon2.0experiment, execute the following in the project directory:python ./test/DecisionTree/watermelon2.0/main.pyThis will generate the experiment results.
2. Custom Models
You can modify or create your own machine learning models. The project structure is divided into two main parts: src and test. The src directory stores the source code for machine learning algorithms, while the test directory stores basic and custom tests for each algorithm. Understanding the project structure will help you modify it more efficiently.
2.1 src Directory
The src directory stores the source code and is organized as follows:
src/
├── hym/
│ ├── __init__.py
│ ├── DecisionTree/
│ │ ├── __init__.py
│ │ ├── DecisionTree.py
│ │ └── ...
│ ├── LinearRegression/
│ └── ...
-
hym/: Top-level module containing the implementations of various machine learning algorithms. -
To add a new algorithm category, such as Support Vector Machine, create a
SupportVectorMachine/directory underhym/, and add it tohym/__init__.pyas follows:from . import DecisionTree from . import LinearRegression from . import SupportVectorMachine # New algorithm module __all__ = [ 'DecisionTree', 'LinearRegression', 'SupportVectorMachine' # Add new module ]
-
File Naming Conventions:
- Algorithm Class Files: Use CamelCase, e.g.,
BasicDecisionTree.py,Variants.py, for implementing algorithm classes. - Helper Class Files: Use snake_case, e.g.,
node.py, for implementing helper classes. - Helper Function Files:
utils.pycontains utility functions, e.g., data loading, preprocessing, and math functions. - Package Initialization File:
__init__.py, which marks the package and submodules, with exported contents listed in__all__.
- Algorithm Class Files: Use CamelCase, e.g.,
2.2 test Directory
The test directory stores test code and is structured similarly to src:
test/
├── DecisionTree/
│ ├── iris/
│ │ ├── iris.xlsx
│ │ └── main.py
│ ├── watermelon2.0/
│ │ ├── watermelon2.0.xlsx
│ │ └── main.py
│ └── ...
├── LinearRegression/
└── ...
- Create directories under
test/by algorithm category, matching the structure insrc/. - Inside each algorithm directory, add test cases. Some tests for basic datasets are already provided, but you can also add your own experiments.
2.3 Other Important Files
-
setup.py
Contains package build information such as version, dependencies, and author information. The version format follows
v[x].[y].[z], where:x: Major updates, breaking API changes.y: Significant new features, such as implementing a new algorithm category.z: Minor updates, including bug fixes or small adjustments.
-
README.md
Documents usage and updates. It’s recommended to check periodically for the latest information.
Progress
Algorithm Library
- Supervised Learning
- Linear Regression
- Logistic Regression
- Decision Tree
- ID3
- C4.5
- CART
- Support Vector Machine
- Neural Networks
- Unsupervised Learning
- K-means Clustering
- Principal Component Analysis
Testing
- Supervised Learning
- Linear Regression
- Logistic Regression
- iris
- Decision Tree
- watermelon2.0
- iris
- ice-cream
- wine quality
- house price
- Support Vector Machine
- Neural Networks
- Unsupervised Learning
- K-means Clustering
- Principal Component Analysis
References
Add your references here.
License
This project is licensed under the MIT License. Please refer to the LICENSE file for details.
If you find this project helpful, please consider ⭐️ starring us!
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 hym20220592-0.1.5.tar.gz.
File metadata
- Download URL: hym20220592-0.1.5.tar.gz
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7931f99e0e04b02d5530ece415800b077e60006d7112456b19a7c4edb69e394b
|
|
| MD5 |
1d0a139a9a156501fdd79e6416405605
|
|
| BLAKE2b-256 |
a803eef0d11b81ac919a17f0c491a2a42381b592aa462dd0d8375460f26e36b9
|
File details
Details for the file hym20220592-0.1.5-py3-none-any.whl.
File metadata
- Download URL: hym20220592-0.1.5-py3-none-any.whl
- Upload date:
- Size: 11.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e39bba7a1a727600012f26d4de6f05f6b125f1dd04636b8b2793bb331c80a830
|
|
| MD5 |
65faf0c939b5900d0857b03ea128bf48
|
|
| BLAKE2b-256 |
9188106dec6f5d07dea4f0e4a34b09cb9afdc11c3b93e001e4875db5b7ac5ab1
|