Hello everyone!
Our team finally has finished preparing a new major release of fedot == 0.3.0. Thanks to all dev team who was working on it!
It is available and can be imported via pip: https://pypi.org/project/fedot/0.3.0/.
The most important changes:
- Extended data operations and their automatic optimization
Previously, Fedot (Chain objects) allow one to automatically build ML pipelines including models, but data operations (like scaling or gap-filling) were embedded in the nodes and could be changed manually only.
In the latest release we significantly refactored the core logic of the framework, thus data operations are _**fully supported**_ as separate nodes. It can extend the overall search space of a suitable ML pipeline.
- New AutoML for time-series forecasting
Now Fedot supports not the only manual building of ML pipelines for time-series forecasting but also in an **_automated mode_** via Composer! Fedot allow one to build pipelines and forecast time-series for a given window size and forecasting length. Also, it is possible to use exogen variables for forecasting. To check all features, see [examples ](https://github.com/nccr-itmo/FEDOT/tree/master/examples)in the repository.
Our early studies showed it is a promising approach that can improve AutoML field for time-series. We are actively working on the benchmarking of well-known SOTA frameworks for time-series forecasting and novel results will be published in a near future. Also, you can check our fresh [preprint](https://arxiv.org/abs/2103.01124) about gap filling in time-series using Fedot framework.
- Black-box optimization of ML pipeline hyperparameters
During the experiments, we found out that our previous version of tuning of hyperparameters seems to be ineffective (also it didn't work out for preprocessing nodes). Therefore, we significantly refactored the tuning module and it provides several schemas for black-box optimization of ML pipelines hyperparameters.
For details, check [tuning module](https://github.com/nccr-itmo/FEDOT/tree/master/fedot/core/chains/tuning) sources and the [examples](https://github.com/nccr-itmo/FEDOT/tree/master/examples).
- Multi-Objective AutoML for pipelines
Several months ago during the team discussion, we formulate a hypothesis: "Most of the AutoML frameworks are trying to maximize only one metric - prediction quality. But can we optimize several metrics (like pipeline complexity, for instance) simultaneously?"
So we made research where evolutionary multi-objective optimization algorithms (like NSGA-II, SPEA-2) were adapted to the AutoML task. And it was concluded that it is a promising feature and we have integrated it into Fedot. The [preprint](https://arxiv.org/abs/2103.01301) is available, but also you can check the [example](https://github.com/nccr-itmo/FEDOT/blob/master/examples/fedot_api_example.py) how to use multi-objective optimization via Fedot API.
- New input data support for image classification
Later, we have announced that images will be supported in Fedot. And we made several changes in [InputData](https://github.com/nccr-itmo/FEDOT/blob/master/fedot/core/data/data.py) and now pipelines for image classification can be built manually. We also added several CNN architectures and [example](https://github.com/nccr-itmo/FEDOT/blob/master/examples/image_classification_problem.py) of its usage. Composer should also work for image classification but we have not tested extensively this functionality yet.
Also, we have fixed a bunch of bugs and improved Fedot API.
Thanks to everyone who is following our progress! Any issues and user reports are welcomed.
Cya!