What is FEDOT?
masterFEDOT is an AutoML-like framework designed for the automated generation of data-driven composite models. It is capable of solving a variety of machine learning tasks, including:
- Classification
- Regression
- Clustering
- Forecasting
repository·master·Indexed 20 days ago
https://github.com/aimclub/fedotAn open-source AutoML framework that automates the design of machine learning pipelines using an evolutionary approach. FEDOT supports classification, regression, clustering, and time series forecasting for text, images, and tabular data. It features a high-level API, a command-line interface (CLI), and a modular architecture including a GraphOptimizer, EvaluationDispatcher, and Tuner. The framework provides tools for hierarchical pipeline construction via AtomizedModel and comprehensive tabular data preprocessing.
FEDOT is an AutoML-like framework designed for the automated generation of data-driven composite models. It is capable of solving a variety of machine learning tasks, including:
FEDOT is an AutoML framework designed for automating the construction of machine learning solutions. Its core design principles include:
FEDOT is part of a broader ecosystem of research and tools. Related projects include:
The FEDOT repository is organized into several key directories:
fedot/core: The core of the framework, containing main classes and scripts.examples: A collection of usage examples to help you get started with FEDOT.test: Contains all unit and integration tests.docs: Project documentation files.FEDOT is designed to solve several core machine learning tasks, including:
Detailed tutorials for these tasks are available in the repository's notebook collection.
FEDOT's time series forecasting performance is benchmarked using the M4 competition dataset via the pytsbe framework. The benchmark evaluates forecasting accuracy across different seasonal intervals using the Symmetric Mean Absolute Percentage Error (SMAPE) metric.
Key benchmark details:
Performance Summary: FEDOT's results are statistically indistinguishable from industry leaders like NBEATS and autogluon, and are statistically superior to TimeGPT and LagLlama.
FEDOT is an AutoML framework designed for the automatic generative design of machine learning pipelines. Key conceptual features include:
FEDOT uses tuners from the GOLEM library. You can choose between simultaneous tuning (optimizing all parameters at once) and sequential tuning (optimizing node by node). Use .with_tuner(tuner_class) to specify the implementation.
| Tuner | Based On | Type | Supported Parameters |
|---|---|---|---|
SimultaneousTuner | Hyperopt | Simultaneous | categorical, discrete, continuous |
SequentialTuner | Hyperopt | Sequential/Node-only | categorical, discrete, continuous |
IOptTuner | iOpt | Simultaneous | discrete, continuous |
OptunaTuner | Optuna | Simultaneous | categorical, discrete, continuous |
Notes:
IOptTuner provides more stable results than Hyperopt-based tuners.OptunaTuner supports multi-objective tuning.from golem.core.tuning.sequential import SequentialTuner
tuner = SequentialTuner
pipeline_tuner = TunerBuilder(Task(TaskTypesEnum.classification)) \\
.with_tuner(tuner) \\
.build(train_data)
tuned_pipeline = pipeline_tuner.tune(pipeline)When calling model.fit(), you can set the predefined_model parameter to 'auto'. This instructs FEDOT to choose and fit a default initial assumption for the specific task (classification, regression, etc.) without requiring you to manually construct a Pipeline object. This serves as a useful baseline to compare against your manually constructed pipelines.
model.fit(features=dataset_to_train, target=target_col, predefined_model='auto')FEDOT supports various input data types and formats:
pandas.DataFrame, numpy arrays, or file paths to datasets.float type with milliseconds units.For detailed usage of multi-modal tasks, see the multi-modal data description guide.
ComposerBuilder class or by interacting directly with GOLEM optimizers. This allows you to implement custom genetic operators (such as specific mutation or crossover strategies) or define custom verification rules for the pipeline search.When using FEDOT for AutoML model optimization, the framework relies on three key abstractions:
fedot.core.pipelines.pipeline.Pipeline to define these structures.fedot.core.data.data.InputData and the data preprocessing documentation for implementation details.