A flexible framework for machine learning pipelines
Project description
Framework3 
Framework3 is an innovative platform designed to simplify and accelerate the development of machine learning models. It provides data scientists and machine learning engineers with a flexible and powerful tool to create, experiment with, and deploy models efficiently and in a structured manner. https://manucouto1.github.io/framework3
Key Features
- Modular and flexible architecture
- Customizable pipelines for ML workflows
- Extensible plugin system for filters, metrics, and storage
- Support for distributed processing with MapReduce
- Integrated model evaluation and optimization tools
Diagram
classDiagram
class BasePlugin {
<<abstract>>
+item_dump() : Dict
+build_from_dump(dump_dict: Dict, factory: BaseFactory) : BasePlugin
}
class BaseFilter {
<<abstract>>
+fit(x: XYData, y: XYData|None) : float|None
+predict(x: XYData) : XYData
+evaluate(x_data: XYData, y_true: XYData|None, y_pred: XYData) : Dict[str, Any]
}
class BasePipeline {
<<abstract>>
-filters: List[BaseFilter]
+evaluate(x_data: XYData, y_true: XYData|None, y_pred: XYData) : Dict[str, Any]
+start(x: XYData, y: XYData|None, X_: XYData|None) : XYData|None
+init()
+get_types() : List[Type[BaseFilter]]
+optimizer(optimizer: BaseOptimizer) : BaseOptimizer|None
+splitter(splitter: BaseSplitter) : BaseSplitter|None
}
class BaseSplitter {
<<abstract>>
-pipeline: BasePipeline
+split(pipeline: BasePipeline)
+evaluate(x_data: XYData, y_true: XYData|None, y_pred: XYData) : Dict[str, Any]
+start(x: XYData, y: XYData|None, X_: XYData|None) : XYData|None
+unwrap() : BasePipeline
}
class BaseOptimizer {
<<abstract>>
-pipeline: BasePipeline
+start(x: XYData, y: XYData|None, X_: XYData|None) : XYData|None
+optimize(pipeline: BasePipeline)
}
class BaseMetric {
<<abstract>>
+evaluate(x_data: XYData, y_true: XYData|None, y_pred: XYData) : float
}
class BaseStorer {
<<abstract>>
+get_root_path() : str
+upload_file(file_path: str, destination_path: str)
+list_stored_files() : List[str]
+get_file_by_hashcode(hashcode: str) : str
+check_if_exists(file_path: str) : bool
+download_file(file_path: str, destination_path: str)
+delete_file(file_path: str)
}
class ParallelPipeline {
<<abstract>>
}
class SequentialPipeline {
<<abstract>>
}
class MonoPipeline {
}
class LocalThreadPipeline {
}
class HPCPipeline {
}
class F3Pipeline {
}
class KFoldSplitter {
}
class OptunaOptimizer {
}
class SklearnOptimizer {
}
class WandbOptimizer {
}
class LocalStorer {
}
class S3Storer {
}
class Container {
+bind()
+get()
}
BasePlugin <|-- BaseFilter
BasePlugin <|-- BaseMetric
BaseFilter <|-- BasePipeline
BaseFilter <|-- BaseSplitter
BaseFilter <|-- BaseOptimizer
BasePlugin <|-- BaseStorer
BasePipeline <|-- ParallelPipeline
BasePipeline <|-- SequentialPipeline
ParallelPipeline <|-- MonoPipeline
ParallelPipeline <|-- LocalThreadPipeline
ParallelPipeline <|-- HPCPipeline
SequentialPipeline <|-- F3Pipeline
BaseSplitter <|-- KFoldSplitter
BaseOptimizer <|-- OptunaOptimizer
BaseOptimizer <|-- SklearnOptimizer
BaseOptimizer <|-- WandbOptimizer
BaseStorer <|-- LocalStorer
BaseStorer <|-- S3Storer
BasePipeline "1" *-- "1..*" BaseFilter : contains
BaseSplitter "1" *-- "1" BaseFilter : contains
BaseOptimizer "1" *-- "1" BaseFilter : contains
BasePipeline "1" *-- "0..*" BaseMetric : uses
Container --> BasePlugin : contains
Prerequisites
Before installing Framework3, ensure you have the following prerequisites:
- Python 3.11 or higher
- pip (Python package installer)
Installation Options
You have two options to install Framework3:
Option 1: Install from PyPI
The easiest way to install Framework3 is directly from PyPI using pip:
pip install framework3
This will install the latest stable version of Framework3 and its dependencies.
Option 2: Install from Source
-
Clone the repository:
git clone https://github.com/manucouto1/framework3.git -
Navigate to the project directory:
cd framework3 -
Install the dependencies using pip:
pip install -r requirements.txt
Basic Usage
Here's a basic example of how to use Framework3:
from framework3.plugins.pipelines import F3Pipeline
from framework3.plugins.filters import KnnFilter
from framework3.plugins.metrics import F1, Precision, Recall
# Create a pipeline
pipeline = F3Pipeline(
plugins=[KnnFilter()],
metrics=[F1(), Precision(), Recall()]
)
# Fit the model
pipeline.fit(X_train, y_train)
# Make predictions
predictions = pipeline.predict(X_test)
# Evaluate the model
evaluation = pipeline.evaluate(X_test, y_test, y_pred=predictions)
print(evaluation)
Documentation
For more detailed information on how to use Framework3, check out our complete documentation at:
https://manucouto1.github.io/framework3
Contributing
Contributions are welcome. Please read our contribution guidelines before submitting pull requests.
License
This project is licensed under the AGPL-3.0 license. See the LICENSE file for more details.
Contact
If you have any questions or suggestions, don't hesitate to open an issue in this repository or contact the development team.
Thank you for your interest in Framework3! We hope this tool will be useful in your machine learning projects.
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 framework3-1.0.15.tar.gz.
File metadata
- Download URL: framework3-1.0.15.tar.gz
- Upload date:
- Size: 76.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.2 CPython/3.11.12 Linux/6.11.0-1012-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
136013c3b43f48b1b1760289cc869f50b16b2a253254e56395ce5ced406c71b6
|
|
| MD5 |
97e4d0ff6d73eb93555cd932e570fac4
|
|
| BLAKE2b-256 |
61f7c5e508cdeb532d0edff91e9db67f29c7ee435b507da68b32cd77c0bccb9f
|
File details
Details for the file framework3-1.0.15-py3-none-any.whl.
File metadata
- Download URL: framework3-1.0.15-py3-none-any.whl
- Upload date:
- Size: 114.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.2 CPython/3.11.12 Linux/6.11.0-1012-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
755bddee470fa2c260cc6a4625b6555d872080607a8c21c6bfa029e996ed5ed9
|
|
| MD5 |
2dc1e3b909de6f714620f52c66a501eb
|
|
| BLAKE2b-256 |
72271bcea46eb87fe74a733f1d017ce1882250ff51dcbb88cda0227a6ca766bf
|