Skip to main content

A Democratized lightweight and transparent AutoML framework

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ezautoml-0.6.7.tar.gz (30.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ezautoml-0.6.7-py3-none-any.whl (41.5 kB view details)

Uploaded Python 3

File details

Details for the file ezautoml-0.6.7.tar.gz.

File metadata

  • Download URL: ezautoml-0.6.7.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

Hashes for ezautoml-0.6.7.tar.gz
Algorithm Hash digest
SHA256 06f20d50a389f6f215d2bb39102803eeb70988877ef0d10b4bcf99b00d013f14
MD5 c0dca52ff1288170fe96f95f990db762
BLAKE2b-256 41ea037764712757f1a87a6fb094a62bfebb83e44cb63f545546889e658c508a

See more details on using hashes here.

File details

Details for the file ezautoml-0.6.7-py3-none-any.whl.

File metadata

  • Download URL: ezautoml-0.6.7-py3-none-any.whl
  • Upload date:
  • Size: 41.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for ezautoml-0.6.7-py3-none-any.whl
Algorithm Hash digest
SHA256 7362df6c0174467df3b3bd15da7b021fa97b3a1e30f1a9ed037736494ba87245
MD5 475f03487c6293f3973d51623d4d041e
BLAKE2b-256 6116e25b66d5a0afa0a6ffdf76fbfd31525d2e0d3a344e75aabc40ffaeb4709e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page