Package: fedot
packagetestsdocslicensestatssupportlanguagesmirrorfundingFEDOTis an open-source framework for automated modeling and machine learning (AutoML) problems. This framework is distributed under the 3-Clause BSD license.It provides automatic generative design of machine learning pipelines for various real-world problems. The core of FEDOT is based on an evolutionary approach and supports classification (binary and multiclass), regression, clustering, and time series prediction problems.The key feature of the framework is the complex management of interactions between various blocks of pipelines. It is represented as a graph that defines connections between data preprocessing and model blocks.The project is maintained by the research team of the Natural Systems Simulation Lab, which is a part of theNational Center for Cognitive Research of ITMO University.More details about FEDOT are available in the next video:FEDOT conceptsFlexibility.FEDOT can be used to automate the construction of solutions for variousproblems,data types(texts, images, tables), andmodels;Extensibility.Pipeline optimization algorithms are data- and task-independent, yet you can usespecial strategiesfor specific tasks or data types (time-series forecasting, NLP, tabular data, etc.) to increase the efficiency;Integrability.FEDOT supports widely used ML libraries (Scikit-learn, CatBoost, XGBoost, etc.) and allows you to integratecustom ones;Tuningability.Varioushyper-parameters tuning methodsare supported including models’ custom evaluation metrics and search spaces;Versatility.FEDOT isnot limited to specific modeling tasks, for example, it can be used in ODE or PDE;Reproducibility.Resulting pipelines can beexported separately as JSONortogether with your input data as ZIP archivefor experiments reproducibility;Customizability.FEDOT allowsmanaging models complexityand thereby achieving desired quality.InstallationThe simplest way to install FEDOT is usingpip:$ pip install fedotInstallation with optional dependencies for image and text processing, and for DNNs:$ pip install fedot[extra]How to UseFEDOT provides a high-level API that allows you to use its capabilities in a simple way. The API can be used for classification, regression, and time series forecasting problems.To use the API, follow these steps:ImportFedotclassfromfedot.api.mainimportFedotInitialize the Fedot object and define the type of modeling problem. It provides a fit/predict interface:Fedot.fit()begins the optimization and returns the resulting composite pipeline;Fedot.predict()predicts target values for the given input data using an already fitted pipeline;Fedot.get_metrics()estimates the quality of predictions using selected metrics.NumPy arrays, Pandas DataFrames, and the file’s path can be used as sources of input data. In the case below,x_train,y_trainandx_testarenumpy.ndarray():model=Fedot(problem='classification',timeout=5,preset='best_quality',n_jobs=-1)model.fit(features=x_train,target=y_train)prediction=model.predict(features=x_test)metrics=model.get_metrics(target=y_test)More information about the API is available in thedocumentationsection and advanced approaches are in theadvancedsection.Examples & TutorialsJupyter notebooks with tutorials are located inexamples repository. There you can find the following guides:Intro to AutoMLIntro to FEDOT functionalityIntro to time series forecasting with FEDOTAdvanced time series forecastingGap-filling in time series and out-of-sample forecastingHybrid modelling with custom modelsNotebooks are issued with the corresponding release versions (the default version is ‘latest’).Also, external examples are available:Kaggle: baseline for Microsoft Stock - Time Series Analysis taskExtended examples:Credit scoring problem, i.e.binary classification taskTime series forecasting, i.e.random process regressionSpam detection, i.e.natural language preprocessingWine variety prediction withmulti-modal dataAlso, several video tutorials are availableavailable(in Russian).Publications About FEDOTWe also published several posts devoted to different aspects of the framework:In English:How AutoML helps to create composite AI? -towardsdatascience.comAutoML for time series: definitely a good idea -towardsdatascience.comAutoML for time series: advanced approaches with FEDOT framework -towardsdatascience.comWinning a flood-forecasting hackathon with hydrology and AutoML -towardsdatascience.comClean AutoML for “Dirty” Data -towardsdatascience.comFEDOT as a factory of human-competitive results -youtube.comHyperparameters Tuning for Machine Learning Model Ensembles -towardsdatascience.comIn Russian:Как AutoML помогает создавать модели композитного ИИ — говорим о структурном обучении и фреймворке FEDOT -habr.comПрогнозирование временных рядов с помощью AutoML -habr.comКак мы “повернули реки вспять” на Emergency DataHack 2021, объединив гидрологию и AutoML -habr.comЧистый AutoML для “грязных” данных: как и зачем автоматизировать предобработку таблиц в машинном обучении -ODS blogФреймворк автоматического машинного обучения FEDOT (Конференция Highload++ 2022) -presentationПро настройку гиперпараметров ансамблей моделей машинного обучения -habr.comIn Chinese:生成式自动机器学习系统 (presentation at the “Open Innovations 2.0” conference) -youtube.comProject StructureThe latest stable release of FEDOT is in themaster branch.The repository includes the following directories:Packagecorecontains the main classes and scripts. It is thecoreof the FEDOT frameworkPackageexamplesincludes severalhow-to-use-caseswhere you can start to discover how FEDOT worksAllunit and integration testscan be observed in thetestdirectoryThe sources of the documentation are in thedocsdirectoryCurrent R&D and future plansCurrently, we are working on new features and trying to improve the performance and the user experience of FEDOT.
The major ongoing tasks and plans:Implementation of meta-learning based at GNN and RL (seeMetaFEDOT)Improvement of the optimisation-related algorithms implemented inGOLEM.Support for more complicated pipeline design patters, especially for time series forecasting.Any contribution is welcome. Our R&D team is open for cooperation with other scientific teams as well as with industrial partners.DocumentationAlso, a detailed FEDOT API description is available inRead the Docs.Contribution GuideThe contribution guide is available in thisrepository.AcknowledgmentsWe acknowledge the contributors for their important impact and the participants of numerous scientific conferences and workshops for their valuable advice and suggestions.Side ProjectsThe optimisation core implemented inGOLEMrepository.The prototype of the web-GUI for FEDOT is available in theFEDOT.WEBrepository.The prototype of FEDOT-based meta-AutoML in theMetaFEDOTrepository.ContactsTelegram channel for solving problems and answering questions about FEDOTNatural System Simulation TeamAnna Kalyuzhnaya, Team leader (anna.kalyuzhnaya@itmo.ru)NewsfeedYoutube channelSupported byNational Center for Cognitive Research of ITMO UniversityCitation@article{nikitin2021automated,title = {Automated evolutionary approach for the design of composite machine learning pipelines},
author = {Nikolay O. Nikitin and Pavel Vychuzhanin and Mikhail Sarafanov and Iana S. Polonskaia and Ilia Revin and Irina V. Barabanova and Gleb Maximov and Anna V. Kalyuzhnaya and Alexander Boukhanovsky},
journal = {Future Generation Computer Systems},
year = {2021},
issn = {0167-739X},
doi = {https://doi.org/10.1016/j.future.2021.08.022}}@inproceedings{polonskaia2021multi,title={Multi-Objective Evolutionary Design of Composite Data-Driven Models},
author={Polonskaia, Iana S. and Nikitin, Nikolay O. and Revin, Ilia and Vychuzhanin, Pavel and Kalyuzhnaya, Anna V.},
booktitle={2021 IEEE Congress on Evolutionary Computation (CEC)},
year={2021},
pages={926-933},
doi={10.1109/CEC45853.2021.9504773}}Other papers - inResearchGate.