A Democratized lightweight and transparent AutoML framework
Project description
eZAutoML
Overview
eZAutoML is a framework designed to make Automated Machine Learning (AutoML) accessible to everyone. It provides an incredible easy to use interface based on Scikit-Learn API to build modelling pipelines with minimal effort.
The framework is built around a few core concepts:
- Optimizers: Black-box optimization methods for hyperparameters.
- Easy Tabular Pipelines: Simple domain-specific language to describe pipelines for preprocessing and model training.
- Scheduling: Work in progress; this feature enables horizontal scalability from a single computer to datacenters by using airflow executors.
Installation
Package Distribution
The latest version of eZAutoML can be installed via PyPI or from source.
pip install ezautoml
ezautoml --help
Install from source
To install from source, you can clone this repo and install with pip:
pip install -e .
Usage
Command Line Interface
Not only it can be used programatically but we provide an extremely lightweight CLI api to instantiate tabular AutoML pipelines with just a single command, for example:
ezautoml --dataset data/smoking.csv --target smoking --task classification --trials 10 --verbose
Options:
- dataset: Path to the dataset file (CSV, parquet...)
- target: The target column name for prediction
- task: Task type: classification/c or regression/r
- search: Black-box optimization algorithm to perform
- output: Directory to save the output models/results
- trials: Maximum number of trials inside an optimiation algorithm
- verbose: Increase logging verbosity
- version: Show the current version
For more detailed help, use:
ezautoml --help
There are future features that are still a work-in-progress and will be enabled in the future such as scheduling, metalearning, pipelines...
Python Script
You can also use eZAutoML within Python scripts (though this feature is still being developed). This will allow you to work through Python code or via custom pipelines in the future.
import time
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_breast_cancer
from sklearn.metrics import accuracy_score
from ezautoml.model import eZAutoML
from ezautoml.space.search_space import SearchSpace
from ezautoml.evaluation.metric import MetricSet, Metric
from ezautoml.evaluation.task import TaskType
from ezautoml.optimization.optimizers.random_search import RandomSearchOptimizer
# Load dataset (classification example)
data = load_breast_cancer()
X, y = data.data, data.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Define metrics for classification
metrics = MetricSet(
{"accuracy": Metric(name="accuracy", fn=accuracy_score, minimize=False)},
primary_metric_name="accuracy"
)
# Load classification search space
search_space = SearchSpace.from_builtin("classification_space")
# Initialize eZAutoML for classification
ezautoml = eZAutoML(
search_space=search_space,
task=TaskType.CLASSIFICATION,
metrics=metrics,
max_trials=25,
max_time=600,
seed=42
)
ezautoml.fit(X_train, y_train)
test_accuracy = ezautoml.test(X_test, y_test)
ezautoml.summary(k=10)
Contributing
We welcome contributions to eZAutoML! If you'd like to contribute, please fork the repository and submit a pull request with your changes. For detailed information on how to contribute, please refer to our contributing guide.
License
eZAutoML is licensed under the BSD 3-Clause License. See the LICENSE file for more information.
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 ezautoml-0.6.6.tar.gz.
File metadata
- Download URL: ezautoml-0.6.6.tar.gz
- Upload date:
- Size: 30.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd940a7744bfe265876718eb7887c024dbbea537811192fb2a905e8afecc993f
|
|
| MD5 |
203f3eaad278210b8c85be171d81e502
|
|
| BLAKE2b-256 |
592f166d7d0eeac6757c07842b28692c34fb39ac0d7072ff6f6b733252185763
|
File details
Details for the file ezautoml-0.6.6-py3-none-any.whl.
File metadata
- Download URL: ezautoml-0.6.6-py3-none-any.whl
- Upload date:
- Size: 41.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20400e86d689143887d09c4ba79119fa53daa99951a2b89569b8683e07bc7995
|
|
| MD5 |
2a0df34e589197934fcb75ef670ec88f
|
|
| BLAKE2b-256 |
3eeb6e74e480384367728ec4c2c94e91b9c2f5e9be0fd42654f302536b7c604c
|