Skip to main content

License Stars Forks Last Commit Commit Activity Docs

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:

  1. Optimizers: Black-box optimization methods for hyperparameters.
  2. Easy Tabular Pipelines: Simple domain-specific language to describe pipelines for preprocessing and model training.
  3. 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.

Metadata

Release files for eZAutoML 0.7.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eZAutoML 0.7.1
File Size Uploaded
ezautoml-0.7.1.tar.gz 31.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eZAutoML 0.7.1
File Interpreter ABI Platform
ezautoml-0.7.1-py3-none-any.whl Python 3 none any Details

Total release size: 75.5 kB

Release files / ezautoml-0.7.1.tar.gz

Download URL ezautoml-0.7.1.tar.gz
Size 31.8 kB
Tags Source
SHA-256 checksum
How to use checksums
3c2ce2b6ac3b8d1c51a1b381944f18b31043c4fc40c57596c2221f27a82bb4c5
BLAKE2b-256 checksum
How to use checksums
0e1bce938af4f70e989c2be896d988302eb2165c373d19e2afe17329f1debcfe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / ezautoml-0.7.1-py3-none-any.whl

Download URL ezautoml-0.7.1-py3-none-any.whl
Size 43.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
55810e8b109ae8045250ce788245c172114fe8f851e8e3fa8b9b4c3126e36964
BLAKE2b-256 checksum
How to use checksums
7e6b7d8fc713feda9fb301670dcdb90ab5daca049d71b8cf9b44ea40fb379c0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

0.7.1 This release

2 release files

0.7.0

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page