Skip to content

Latest commit

 

History

History
465 lines (354 loc) · 18.3 KB

README.rst

File metadata and controls

465 lines (354 loc) · 18.3 KB

Fedot Industrial logo


Код
CI/CD
Документация и примеры Documentation Page binder
Статистика загрузок
Downloads
Подержка
Язфка
Аккредитация

Fedot.Ind - это автоматизированный фреймворк машинного обучения, разработанный для решения промышленных задач, связанных с прогнозированием временных рядов, классификацией и регрессией. Он основан на `AutoML фреймворке FEDOT`_ и использует его функциональность для композирования и тюнинга пайплайнов.

Установка

Fedot.Ind доступен на PyPI и может быть установлен с помощью pip:

pip install fedot_ind

Для установки последней версии из main branch:

git clone https://github.com/aimclub/Fedot.Industrial.git
cd FEDOT.Industrial
poetry install

Как пользоваться

Fedot.Ind предоставляет высокоуровневый API, который позволяет использовать его возможности в простом и удобном виде. Этот API может быть использован для решения задач классификации, регрессии, прогнозирования временных рядов, а также для обнаружения аномалий.

Для использования API необходимо:

  1. Импортировать класс FedotIndustrial
from fedot_ind.api.main import FedotIndustrial

2. Инициализировать объект FedotIndustrial и определить тип задачи. Данный объект предоставляет интерфейс для методов fit/predict.:

  • FedotIndustrial.fit() – запуск извлечения признаков, оптимизации; возвращает получившийся композитный пайплайн;
  • FedotIndustrial.predict() прогнозирует значения целевой переменной для заданных входных данных, используя полученный ранее пайплайн;
  • Метод FedotIndustrial.get_metrics() оценивает качество прогнозов с использованием выбранных метрик.

В качестве источников входных данных можно использовать массивы NumPy или объекты DataFrame из библиотеки Pandas. В данном случае, x_train / x_test и y_train / y_testpandas.DataFrame() и numpy.ndarray соответственно:

dataset_name = 'Epilepsy'
industrial = FedotIndustrial(problem='classification',
                             metric='f1',
                             timeout=5,
                             n_jobs=2,
                             logging_level=20)

train_data, test_data = DataLoader(dataset_name=dataset_name).load_data()

model = industrial.fit(train_data)

labels = industrial.predict(test_data)
probs = industrial.predict_proba(test_data)
metrics = industrial.get_metrics(target=test_data[1],
                                 rounding_order=3,
                                 metric_names=['f1', 'accuracy', 'precision', 'roc_auc'])

Больше информации об использовании API доступно на странице документации.

Документация и примеры

Наиболее оплная документация собрана в wikipage.

Полезные материалы и примеры использования находятся в папке examples репозитория.

Тема Пример
Классификация Basic , Federated AutoML, Proba Calibration, Multimodal
Регрессия Basic
Прогнозирование Basic, Exogen, With strategy
Ансамбли моделей Kernel Ensemble

Бенчмаркинг

Классификация одномерных временных рядов

Бенчмаркинг проводился на выборке из 112/144 датасетов из архива UCR..

Алгоритм Top-1 Top-3 Top-5 Top-Half
Fedot_Industrial 17.0 23.0 26.0 38
HC2 16.0 55.0 77.0 88
FreshPRINCE 15.0 22.0 32.0 48
InceptionT 14.0 32.0 54.0 69
Hydra-MR 13.0 48.0 69.0 77
RDST 7.0 21.0 50.0 73
RSTSF 6.0 19.0 35.0 65
WEASEL_D 4.0 20.0 36.0 59
TS-CHIEF 3.0 11.0 21.0 30
HIVE-COTE v1.0 2.0 9.0 18.0 27
PF 2.0 9.0 27.0 40

Классификация многомерных временных рядов

Бенчмаркинг проводился на следубщей выборке датасетов: BasicMotions, Cricket, LSST, FingerMovements, HandMovementDirection, NATOPS, PenDigits, RacketSports, Heartbeat, AtrialFibrillation, SelfRegulationSCP2

Алгоритм Средний ранг
HC2 5.038
ROCKET 6.481
Arsenal 7.615
Fedot_Industrial 7.712
DrCIF 7.712
CIF 8.519
MUSE 8.700
HC1 9.212
TDE 9.731
ResNet 10.346
mrseql 10.625

Регрессия временных рядов

Бенчмаркинг проводился на следующих датасетах: HouseholdPowerConsumption1, AppliancesEnergy, HouseholdPowerConsumption2, IEEEPPG, FloodModeling1, BeijingPM25Quality, BenzeneConcentration, FloodModeling3, BeijingPM10Quality, FloodModeling2, AustraliaRainfall

Алгоритм Средний ранг
FreshPRINCE 6.014
DrCIF 6.786
Fedot_Industrial 8.114
InceptionT 8.957
RotF 9.414
RIST 9.786
TSF 9.929
RandF 10.286
MultiROCKET 10.557
ResNet 11.171
SingleInception 11.571

Применение на реальных данных

Энергопотребление здания

Ссылка на данные Kaggle

Ноутбук с решением here

Задача состоит в разработке точных контрфактических моделей, позволяющих оценить экономию энергопотребления после модернизации. Используя набор данных, состоящий из трехлетних почасовых показаний счетчиков более чем тысячи зданий, ставится задача прогнозирования энергопотребления (в кВт-ч). Ключевыми предикторами являются температура воздуха, температура росы, направление ветра и скорость ветра.

building target

building results

Результаты сравнения с SOTA-алгоритмами:

Алгоритм RMSE_average
FPCR 455.941
Grid-SVR 464.389
FPCR-Bs 465.844
5NN-DTW 469.378
CNN 484.637
Fedot.Industrial 486.398
RDST 527.927
RandF 527.343

Температура ротора синхронного двигателя с постоянными магнитами (СДПМ)

Ссылка на данные Kaggle

Ноутбук с решением here

Данный набор данных предназначен для прогнозирования максимальной зарегистрированной температуры ротора синхронного двигателя с постоянными магнитами (СДПМ) в течение 30-секундных интервалов. Данные, дискретизированные с частотой 2 Гц, включают показания датчиков, такие как температура окружающей среды, температура охлаждающей жидкости, d и q компоненты напряжения и тока.

Эти показания агрегируются в 6-мерный временной ряд длиной 60, что соответствует 30 секундам.

Задача заключается в разработке прогнозирующей модели с использованием предоставленных предикторов для точной оценки максимальной температуры ротора, что крайне важно для мониторинга работы двигателя и обеспечения оптимальных условий эксплуатации.

rotor temp

solution

Результаты сравнения с SOTA-алгоритмами:

Алгоритм RMSE_average
Fedot.Industrial 1.158612
FreshPRINCE 1.490442
RIST 1.501047
RotF 1.559385
DrCIF 1.594442
TSF 1.684828

Дальнейшие R&D планы

– Расширение списка моделей обнаружения аномалий.

– Разработка новых моделей прогнозирования временных рядов.

– Внедрение модуля объяснимости (Задача <#93>_)

Цитирование

Здесь мы предоставим список цитирования проекта, как только статьи будут опубликованы.

@article{REVIN2023110483,
title = {Automated machine learning approach for time series classification pipelines using evolutionary optimisation},
journal = {Knowledge-Based Systems},
pages = {110483},
year = {2023},
issn = {0950-7051},
doi = {https://doi.org/10.1016/j.knosys.2023.110483},
url = {https://www.sciencedirect.com/science/article/pii/S0950705123002332},
author = {Ilia Revin and Vadim A. Potemkin and Nikita R. Balabanov and Nikolay O. Nikitin
}

Поддержка

Работа поддержана Научно-исследовательским центром «Сильный искусственный интеллект в промышленности» из Университета ИТМО в рамках плана программы центра: Разработка фреймворка автоматического машинного обучения для промышленных задач