autogoal

Note

AutoGOAL is a Python framework for the automatic optimization, generation and learning of software pipelines.

A software pipeline is defined, for the purpose of AutoGOAL, as any software component, whether a class hierarchy, a set of functions, or any combination thereof, that work together to solve a specific problem. With AutoGOAL you can define a pipeline in many different ways, such that certain parts of it are configurable or tunable, and then use search algorithms to find the best way to tune or configure it for a given problem.

This is the top level module for AutoGOAL, it's what you we get when we import autogoal. By default, Python won't import submodules, hence, if we want autogoal.* to work we'll have to import all submodules here manually.

These four submodules include the low-level components of AutoGOAL from which we can build all the core functionality.

The grammar and sampling submodules allows us to define search spaces with arbitrary structure, and automatically create instances of different types of objects by sampling from them.

from autogoal import grammar
from autogoal import sampling

The kb submodule allows us to define algorithms based on input and output types that and combine them automatically intro pipeline graphs.

from autogoal import kb

The search submodule contains search strategies to optimize in different hyper-parameter spaces.

from autogoal import search

With these low level structures, we can build the core functionality of AutoGOAL, the AutoML algorithm. The ml submodule contains the definition of the AutoML class and related functionality.

from autogoal import ml

The contrib submodule contains all the juicy stuff: machine learning algorithms from several external dependencies.

from autogoal import contrib

The datasets submodule contains several example datasets that can be used to showcase AutoGOAL.

from autogoal import datasets

These modules contain additional utilities.

from autogoal import utils
from autogoal import logging

Finally, we import the top-level optimize function.

from autogoal.utils._helpers import optimize

Before leaving, let's setup logging at the warning level by default.

logging.setup(level="WARNING")