Код | |
---|---|
CI/CD | |
Документация и примеры | |
Статистика загрузок | |
Подержка | |
Язфка | |
Аккредитация |
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 необходимо:
- Импортировать класс
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_test
– pandas.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
Задача состоит в разработке точных контрфактических моделей, позволяющих оценить экономию энергопотребления после модернизации. Используя набор данных, состоящий из трехлетних почасовых показаний счетчиков более чем тысячи зданий, ставится задача прогнозирования энергопотребления (в кВт-ч). Ключевыми предикторами являются температура воздуха, температура росы, направление ветра и скорость ветра.
Результаты сравнения с 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 секундам.
Задача заключается в разработке прогнозирующей модели с использованием предоставленных предикторов для точной оценки максимальной температуры ротора, что крайне важно для мониторинга работы двигателя и обеспечения оптимальных условий эксплуатации.
Результаты сравнения с SOTA-алгоритмами:
Алгоритм | RMSE_average |
---|---|
Fedot.Industrial | 1.158612 |
FreshPRINCE | 1.490442 |
RIST | 1.501047 |
RotF | 1.559385 |
DrCIF | 1.594442 |
TSF | 1.684828 |
– Расширение списка моделей обнаружения аномалий.
– Разработка новых моделей прогнозирования временных рядов.
– Внедрение модуля объяснимости (Задача <#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
}
Работа поддержана Научно-исследовательским центром «Сильный искусственный интеллект в промышленности» из Университета ИТМО в рамках плана программы центра: Разработка фреймворка автоматического машинного обучения для промышленных задач