Паутон инструментов для машинного обучения на частично задержанных временных рядах
⦿ Motivation : Из-за всех видов причин, таких как сбой датчиков сбора, ошибки связи и неожиданная неисправность, отсутствующие значения являются обычными во временных рядах из реальной среды. Это делает частично задержанный временные ряды (POTS) распространенной проблемой в моделировании открытого мира и предотвращает анализ передового анализа данных. Хотя эта проблема важна, в области машинного обучения на горшках все еще не хватает выделенного инструментария. Pypots создается, чтобы заполнить этот бланк.
⦿ Mission : Pypots (произносится «Pie Pots»), чтобы стать удобным инструментом, который собирается упростить машинное обучение на горшках, а не утомительно, чтобы помочь инженерам и исследователям сосредоточиться больше на основных проблемах в их руках, а не на том, как справляться с недостающими частями в своих данных. Pypots будет продолжать интегрировать классические и последние современные алгоритмы машинного обучения для частично задержанных многовариантных временных рядов. Конечно, помимо различных алгоритмов, Pypots будут иметь унифицированные API вместе с подробной документацией и интерактивными примерами в алгоритмах в качестве учебных пособий.
? Пожалуйста, смотрите на это репо, чтобы помочь другим заметить пипоты, если вы думаете, что это полезный инструментарий. Пожалуйста, пожалуйста, цитируйте пипоты в ваших публикациях, если это поможет в вашем исследовании. Это действительно очень много значит для нашего исследования с открытым исходным кодом. Спасибо!
Остальная часть этого файла README организована следующим образом: ❖ Доступные алгоритмы , ❖ Экосистема Pypots , ❖ Установка , ❖ Использование , ❖ Спирание пипотов , ❖ Вклад , ❖ Сообщество .
Pypots поддерживает вменение, классификацию, кластеризацию, прогнозирование и задачи обнаружения аномалий на многовариантных временных рядах с отсутствующими значениями. В таблице ниже показана доступность каждого алгоритма (отсортированного по году) в пипотах для разных задач. Символ ✅ указывает, что алгоритм доступен для соответствующей задачи (обратите внимание, что модели будут постоянно обновляться в будущем для выполнения задач, которые в настоящее время не поддерживаются. Оставайтесь на Funed❗).
? Начиная с v0.2 , все модели нейронной сети в Pypots получили поддержку-гиперпараметр-оптимизация. Эта функциональность реализована с помощью Microsoft NNI Framework. Возможно, вы захотите обратиться к нашему опросу вменения временных рядов Repo Awesome_Imputatation, чтобы увидеть, как настроить и настроить гиперпараметры.
Обратите внимание, что все модели, чье имя ?? В таблице (например, трансформатор, Itransformer, Informer и т. Д.) Первоначально не предлагаются в качестве алгоритмов для данных POTS в своих статьях, и они не могут напрямую принимать временные ряды с отсутствующими значениями в качестве ввода, не говоря уже о вменении. Чтобы сделать их применимыми к данным POTS, мы специально применяем стратегию внедрения и подход к обучению (ORT+MIT) так же, как и в статье 1 Saits.
Типы задач сокращены следующим образом: IMPU : вменение; FORE : прогнозирование; CLAS : классификация; CLUS : кластеризация; ANOD : обнаружение аномалий. Ссылки на статью и ссылки перечислены в нижней части этого файла.
| Тип | Алго | Имп | Передовой | Класс | Клайс | Анод | Год - место проведения |
|---|---|---|---|---|---|---|---|
| LLM | Временные серии.ai 2 | ✅ | ✅ | ✅ | ✅ | ✅ | Later in 2024 |
| Нейронная сеть | Tefn? ? 3 | ✅ | 2024 - arXiv | ||||
| Нейронная сеть | Подходит? ? 4 | ✅ | 2024 - ICLR | ||||
| Нейронная сеть | Timemixer 5 | ✅ | 2024 - ICLR | ||||
| Нейронная сеть | itransformer? ? 6 | ✅ | 2024 - ICLR | ||||
| Нейронная сеть | Moderntcn 7 | ✅ | 2024 - ICLR | ||||
| Нейронная сеть | Imputeformer? ? 8 | ✅ | 2024 - KDD | ||||
| Нейронная сеть | Saits 1 | ✅ | 2023 - ESWA | ||||
| Нейронная сеть | Лады? ? 9 | ✅ | 2023 - NeurIPS | ||||
| Нейронная сеть | Купа? ? 10 | ✅ | 2023 - NeurIPS | ||||
| Нейронная сеть | Crossformer? ? 11 | ✅ | 2023 - ICLR | ||||
| Нейронная сеть | Timesnet 12 | ✅ | 2023 - ICLR | ||||
| Нейронная сеть | Patchtst? ? 13 | ✅ | 2023 - ICLR | ||||
| Нейронная сеть | Etsformer? ? 14 | ✅ | 2023 - ICLR | ||||
| Нейронная сеть | Micn? ? 15 | ✅ | 2023 - ICLR | ||||
| Нейронная сеть | Dlinear? ? 16 | ✅ | 2023 - AAAI | ||||
| Нейронная сеть | Прилив? 17 | ✅ | 2023 - TMLR | ||||
| Нейронная сеть | CSAI 18 | ✅ | ✅ | 2023 - arXiv | |||
| Нейронная сеть | Segrnn? ? 19 | ✅ | 2023 - arXiv | ||||
| Нейронная сеть | Scinet? ? 20 | ✅ | 2022 - NeurIPS | ||||
| Нейронная сеть | Нестационарная tr.?? 21 | ✅ | 2022 - NeurIPS | ||||
| Нейронная сеть | Фильм? ? 22 | ✅ | 2022 - NeurIPS | ||||
| Нейронная сеть | Revin_scinet? ? 23 | ✅ | 2022 - ICLR | ||||
| Нейронная сеть | Pyraformer? ? 24 | ✅ | 2022 - ICLR | ||||
| Нейронная сеть | Дождь 25 | ✅ | 2022 - ICLR | ||||
| Нейронная сеть | Fedformer? ? 26 | ✅ | 2022 - ICML | ||||
| Нейронная сеть | Автоформер? ? 27 | ✅ | 2021 - NeurIPS | ||||
| Нейронная сеть | CSDI 28 | ✅ | ✅ | 2021 - NeurIPS | |||
| Нейронная сеть | Информатор? ? 29 | ✅ | 2021 - AAAI | ||||
| Нейронная сеть | US-GN 30 | ✅ | 2021 - AAAI | ||||
| Нейронная сеть | Crli 31 | ✅ | 2021 - AAAI | ||||
| Вероятное | Bttf 32 | ✅ | 2021 - TPAMI | ||||
| Нейронная сеть | Stemgnn? ? 33 | ✅ | 2020 - NeurIPS | ||||
| Нейронная сеть | Реформатор? 34 | ✅ | 2020 - ICLR | ||||
| Нейронная сеть | GP-Vae 35 | ✅ | 2020 - AISTATS | ||||
| Нейронная сеть | Вейдер 36 | ✅ | 2019 - GigaSci. | ||||
| Нейронная сеть | M-RNN 37 | ✅ | 2019 - TBME | ||||
| Нейронная сеть | Британцы 38 | ✅ | ✅ | 2018 - NeurIPS | |||
| Нейронная сеть | GRU-D 39 | ✅ | ✅ | 2018 - Sci. Rep. | |||
| Нейронная сеть | Tcn? ? 40 | ✅ | 2018 - arXiv | ||||
| Нейронная сеть | Трансформатор? ? 41 | ✅ | 2017 - NeurIPS | ||||
| Наив | LERP 42 | ✅ | |||||
| Наив | Locf/nocb | ✅ | |||||
| Наив | Иметь в виду | ✅ | |||||
| Наив | Медиана | ✅ |
? Внесите свою модель прямо сейчас, чтобы увеличить влияние на исследования! Загрузки Pypots быстро увеличиваются ( в общей сложности 300K+ и 1K+ ежедневно на PYPI до сих пор ), и ваша работа будет широко использоваться и цитирована сообществом. См. Руководство по взносу, чтобы увидеть, как включить свою модель в Pypots.
В Pypots все связано с кофе, с которым мы знакомы. Да, это кофейная вселенная! Как видите, в логотипе Pypots есть кофейный горшок. А что еще? Пожалуйста, читайте дальше ;-)
? Наборы данных временных рядов принимаются в виде кофейных зерен в Pypots, а наборы данных POTS представляют собой неполные кофейные зерна с недостающими частями, которые имеют свои собственные значения. Чтобы сделать различные наборы данных об общественных временных рядах, легко доступными для пользователей, создаются бобы данных временных рядов (TSDB) для облегчения загрузки наборов данных временных рядов очень простыми! Посетите TSDB прямо сейчас, чтобы узнать больше об этом удобном инструменте?, И теперь он поддерживает в общей сложности 172 набора данных с открытым исходным кодом!
Для моделирования реальных бобов данных с пропавностью, создается экосистемная библиотека Pygrinder, инструментарий, помогающий размолоть ваши кофейные зерна в неполные. Отсутствующие паттерны делятся на три категории в соответствии с теорией Робина 43 : MCAR (отсутствует полностью случайным образом), Mar (отсутствует случайным образом) и MNAR (отсутствует не случайным образом). Pygrinder поддерживает их все и дополнительные функции, связанные с пропавностью. С помощью Pygrinder вы можете ввести синтетические недостающие значения в свои наборы данных с одной строкой кода.
? Чтобы справедливо оценить производительность алгоритмов Pypots, создаются бенчмаркинг-набор, которые обеспечивают стандартные и унифицированные трубопроводы по производству данных для подготовки наборов данных для измерения производительности различных алгоритмов POTS по различным задачам.
Теперь бобы, мельница и горшок готовы, пожалуйста, зайдите на скамейку и давайте подумаем о том, как заваривать нам чашку кофе. Учебные пособия необходимы! Учитывая будущую рабочую нагрузку, учебные пособия Pypots выпущены в одном репо, и вы можете найти их в пивоварне. Посмотрите на это сейчас и узнайте, как заваривать наборы данных POTS!
☕ Добро пожаловать во вселенную пипотов. Наслаждайтесь этим и получайте удовольствие!
Вы можете обратиться к инструкции по установке в документации Pypots для руководства с более подробной информацией.
Pypots доступен как на PYPI, так и на Anaconda. Вы можете установить пипоты, как ниже, а также TSDB, Pygrinder, Benchpots и AI4TS:
# via pip
pip install pypots # the first time installation
pip install pypots --upgrade # update pypots to the latest version
# install from the latest source code with the latest features but may be not officially released yet
pip install https://github.com/WenjieDu/PyPOTS/archive/main.zip
# via conda
conda install conda-forge::pypots # the first time installation
conda update conda-forge::pypots # update pypots to the latest version Помимо пивпот, вы также можете найти простую и быструю учебную книжку в Google Colab. Если у вас есть дополнительные вопросы, пожалуйста, обратитесь к документации Pypots Docs.pypots.com. Вы также можете поднять проблему или спросить в нашем сообществе.
Мы представляем вам пример использования пропущенных значений во временных рядах с пипотами ниже, вы можете нажать на него, чтобы просмотреть.
# Data preprocessing. Tedious, but PyPOTS can help.
import numpy as np
from sklearn . preprocessing import StandardScaler
from pygrinder import mcar
from pypots . data import load_specific_dataset
data = load_specific_dataset ( 'physionet_2012' ) # PyPOTS will automatically download and extract it.
X = data [ 'X' ]
num_samples = len ( X [ 'RecordID' ]. unique ())
X = X . drop ([ 'RecordID' , 'Time' ], axis = 1 )
X = StandardScaler (). fit_transform ( X . to_numpy ())
X = X . reshape ( num_samples , 48 , - 1 )
X_ori = X # keep X_ori for validation
X = mcar ( X , 0.1 ) # randomly hold out 10% observed values as ground truth
dataset = { "X" : X } # X for model input
print ( X . shape ) # (11988, 48, 37), 11988 samples and each sample has 48 time steps, 37 features
# Model training. This is PyPOTS showtime.
from pypots . imputation import SAITS
from pypots . utils . metrics import calc_mae
saits = SAITS ( n_steps = 48 , n_features = 37 , n_layers = 2 , d_model = 256 , n_heads = 4 , d_k = 64 , d_v = 64 , d_ffn = 128 , dropout = 0.1 , epochs = 10 )
# Here I use the whole dataset as the training set because ground truth is not visible to the model, you can also split it into train/val/test sets
saits . fit ( dataset ) # train the model on the dataset
imputation = saits . impute ( dataset ) # impute the originally-missing values and artificially-missing values
indicating_mask = np . isnan ( X ) ^ np . isnan ( X_ori ) # indicating mask for imputation error calculation
mae = calc_mae ( imputation , np . nan_to_num ( X_ori ), indicating_mask ) # calculate mean absolute error on the ground truth (artificially-missing values)
saits . save ( "save_it_here/saits_physionet2012.pypots" ) # save the model for future use
saits . load ( "save_it_here/saits_physionet2012.pypots" ) # reload the serialized model file for following imputation or training Кончик
[Обновления в июне 2024 года] ? 1-й комплексный контрольный вменение временных сетей бумага Tsi-Bench: Impleation временных рядов сравнительного анализа теперь доступен общественным. Код является открытым исходным исходным кодом в репозиционной_импутации. С почти 35 000 экспериментов мы предоставляем всеобъемлющее исследование сравнительного анализа по 28 методам вменения, 3 отсутствующих моделей (точки, последовательности, блоки), различные недостающие скорости и 8 наборов реального мира.
[Обновления в феврале 2024 года] ? Наша статья по всему, глубокое обучение для многомерного вменения временных рядов: на ARXIV был выпущен опрос. Мы всесторонне рассмотрим литературу о современных методах вменения глубокого обучения для временных рядов, предоставляем им таксономию и обсуждаем проблемы и будущие направления в этой области.
Документ, представляющий Pypots, доступна на ARXIV, и короткая версия ее принята 9 -м международным семинаром Sigkdd по добыче и обучению от временных рядов (Milets'23)). Кроме того , Pypots были включены в качестве проекта экосистемы Pytorch. Мы стремимся публиковать его в престижных академических заведениях, например, JMLR (Track for Machine Learning с открытым исходным кодом). Если вы используете пипоты в своей работе, пожалуйста, цитируйте это, как ниже, и составьте этот репозиторий, чтобы другие заметили эту библиотеку. ?
Существуют научные исследовательские проекты, использующие пипоты и ссылаются в их статьи. Вот неполный список из них.
@article { du2023pypots ,
title = { {PyPOTS: a Python toolbox for data mining on Partially-Observed Time Series} } ,
author = { Wenjie Du } ,
journal = { arXiv preprint arXiv:2305.18811 } ,
year = { 2023 } ,
}или
Wenjie du. Pypots: набор инструментов Python для интеллектуального анализа данных на частично задержанном временном ряде. arxiv, abs/2305.18811, 2023.
Вы можете внести свой вклад в этот захватывающий проект!
Выполнив свой код, вы
template в каждом пакете задач (например, пипоты/вменение/шаблон) для быстрого запуска;Вы также можете внести свой вклад в пипоты, просто уставившись? Это репо, чтобы помочь большему количеству людей заметить это. Ваша звезда - это ваше признание пипотов, и это имеет значение!
? Ознакомьтесь с полным списком принадлежностей наших пользователей на веб -сайте Pypots здесь!
Мы заботимся о отзывах наших пользователей, поэтому мы строим сообщество Pypots на
Если у вас есть какие-либо предложения или вы хотите внести вклад в идеи или поделиться документами, связанными с временными сериями, присоединяйтесь к нам и скажите. Сообщество Pypots открыто, прозрачное и, несомненно, дружелюбное. Давайте будем работать вместе, чтобы построить и улучшить пипоты!
Du, W., Cote, D. & Liu, Y. (2023). SAITS: вменение самоуверенным примером для временных рядов. Экспертные системы с приложениями . ↩ ↩ 2
Project Gungnir, мировой 1-й LLM для многозадачного моделирования временных рядов, скоро встретится с вами. Отсутствуют значения и переменные длины в ваших наборах данных? Трудно провести многозадачное обучение с вашим временным рядом? Не проблемы больше не. Недавно мы откроем заявку на общедоступную бета-тест ;-) Следуйте за нами и следите за обновлениями! Временные серии.ai ↩
Zhan, T., He, Y., Deng, Y., Li, Z., Du, W. & Wen, Q. (2024). Время доказательств Fusion Network: мнение многокационного просмотра в долгосрочном прогнозировании временных рядов. Arxiv 2024 . ↩
Xu, Z., Zeng, A. & Xu, Q. (2024). Подходит: моделирование временных рядов с параметрами 10K. ICLR 2024 . ↩
Wang, S., Wu, H., Shi, X., Hu, T., Luo, H., Ma, L., ... & Zhou, J. (2024). Timemixer: разложение многомасштабного микширования для прогнозирования временных рядов. ICLR 2024 . ↩
Liu, Y., Hu, T., Zhang, H., Wu, H., Wang, S., Ma, L. & Long, M. (2024). Итрансформер: перевернутые трансформаторы эффективны для прогнозирования временных рядов. ICLR 2024 . ↩
Luo, D. & Wang X. (2024). Moderntcn: современная структура чистой свертки для общего анализа временных рядов. ICLR 2024 . ↩
Nie, T., Qin, G., Mei, Y. & Sun, J. (2024). Imputeformer: низкоиндуцированные трансформаторы для обобщаемого пространственно-временного вменения. KDD 2024 . ↩
Yi, K., Zhang, Q., Fan, W., Wang, S., Wang, P., He, H., An, N., Lian, D., Cao, L. & Niu, Z. (2023). МЛП частотной области являются более эффективными учащимися в прогнозировании временных рядов. Neurips 2023 . ↩
Liu, Y., Li, C., Wang, J. & Long, M. (2023). Купа: изучение динамики временных рядов не стационарной серии с предикторами Купмана. Neurips 2023 . ↩
Zhang, Y. & Yan, J. (2023). Crossformer: трансформатор, использующий межразмерную зависимость для многомерного прогнозирования временных рядов. ICLR 2023 . ↩
Wu, H., Hu, T., Liu, Y., Zhou, H., Wang, J. & Long, M. (2023). Timesnet: временное моделирование 2D-качества для общего анализа временных рядов. ICLR 2023 ↩
Nie, Y., Nguyen, NH, Sinthong, P. & Kalagnanam, J. (2023). Временной ряд стоит 64 слова: долгосрочное прогнозирование с трансформаторами. ICLR 2023 ↩
Woo, G., Liu, C., Sahoo, D., Kumar, A. & Hoi, S. (2023). Etsformer: экспоненциальные сглаживающие трансформаторы для прогнозирования временных рядов. ICLR 2023 ↩
Wang, H., Peng, J., Huang, F., Wang, J., Chen, J. & Xiao, Y. (2023). MICN: многомасштабное локальное и глобальное контекстное моделирование для долгосрочного прогнозирования серий. ICLR 2023 . ↩
Zeng, A., Chen, M., Zhang, L. & Xu, Q. (2023). Эффективны ли трансформаторы для прогнозирования временных рядов? AAAI 2023 ↩
Das, A., Kong, W., Leach, A., Mathur, S., Sen, R. & Yu, R. (2023). Долгосрочное прогнозирование с помощью прилива: Торговая серия плотного кодера. TMLR 2023 . ↩
Qian, L., Ibrahim, Z., Ellis, HL, Zhang, A., Zhang, Y., Wang, T. & Dobson, R. (2023). Знание усилило условное вменение для здравоохранения временных рядов. Arxiv 2023 . ↩
Lin, S., Lin, W., Wu, W., Zhao, F., Mo, R. & Zhang, H. (2023). Segrnn: сегмент рецидивирующей нейронной сети для долгосрочного прогнозирования временных рядов. Arxiv 2023 . ↩
Liu, M., Zeng, A., Chen, M., Xu, Z., Lai, Q., Ma, L. & Xu, Q. (2022). Scinet: моделирование и прогнозирование временных рядов с помощью образца свертки и взаимодействия. Neurips 2022 . ↩
Liu, Y., Wu, H., Wang, J. & Long, M. (2022). Нестационарные трансформаторы: изучение стационарности в прогнозировании временных рядов. Neurips 2022 . ↩
Zhou, T., MA, Z., Wen, Q., Sun, L., Yao, T., Yin, W. & Jin, R. (2022). Фильм: Улучшенная частота модель памяти Legendre для долгосрочного прогнозирования временных рядов. Neurips 2022 . ↩
Kim, T., Kim, J., Tae, Y., Park, C., Choi, JH, & Choo, J. (2022). Обратимая нормализация экземпляра для точного прогнозирования временных рядов по сравнению с сдвигом распределения. ICLR 2022 . ↩
Liu, S., Yu, H., Liao, C., Li, J., Lin, W., Liu, Ax, & Dustdar, S. (2022). Pyraformer: пирамидальное внимание с низкой компетентностью для моделирования и прогнозирования временных рядов дальнего действия. ICLR 2022 . ↩
Zhang, X., Zeman, M., Tsiligkaridis, T. & Zitnik, M. (2022). График сеть для нерегулярно отобранных многовариантных временных рядов. ICLR 2022 . ↩
Zhou, T., MA, Z., Wen, Q., Wang, X., Sun, L. & Jin, R. (2022). Fedmermer: частота, улучшенный разлагаемый трансформатор для долгосрочного прогнозирования серий. ICML 2022 . ↩
Wu, H., Xu, J., Wang, J. & Long, M. (2021). Автоформер: трансформаторы разложения с автокорреляцией для долгосрочного прогнозирования серий. Neurips 2021 . ↩
Tashiro, Y., Song, J., Song, Y. & Ermon, S. (2021). CSDI: модели диффузии на основе условного балла для вероятностного вменения временных рядов. Neurips 2021 . ↩
Zhou, H., Zhang, S., Peng, J., Zhang, S., Li, J., Xiong, H. & Zhang, W. (2021). Информатор: Помимо эффективного трансформатора для прогнозирования временных рядов последовательности. AAAI 2021 . ↩
Miao, X., Wu, Y., Wang, J., Gao, Y., Mao, X. & Yin, J. (2021). Генеративное полупроверенное обучение для вменения многомерного временного ряда. AAAI 2021 . ↩
MA, Q., Chen, C., Li, S. & Cottrell, GW (2021). Учебные представления для неполной кластеризации временных рядов. AAAI 2021 . ↩
Chen, X. & Sun, L. (2021). Байесовская временная факторизация для многомерного прогнозирования временных рядов. IEEE транзакции по анализу шаблонов и интеллектую машины . ↩
Cao, D., Wang, Y., Duan, J., Zhang, C., Zhu, X., Huang, C., Tong, Y., Xu, B., Bai, J., Tong, J. & Zhang, Q. (2020). Спектральный височный график нейронная сеть для многомерного прогнозирования временных рядов. Neurips 2020 . ↩
Kitaev, N., Kaiser,. & Levskaya, A. (2020). Реформатор: эффективный трансформатор. ICLR 2020 . ↩
Fortuin, V., Baranchuk, D., Raetsch, G. & Mandt, S. (2020). GP-Vae: глубокое вероятное вменение временных рядов. Эйстатс 2020 . ↩
Jong, JD, Emon, MA, Wu, P., Karki, R., Sood, M., Godard, P., Ahmad, A., Vrooman, Ha, Hofmann-Apitius, M. & Fröhlich, H. (2019). Глубокое обучение кластеризации многомерных клинических траекторий пациентов с отсутствующими значениями. Гигаскаука . ↩
Yoon, J., Zame, WR, & van der Schaar, M. (2019). Оценка отсутствующих данных во временных потоках данных с использованием многонаправленных повторяющихся нейронных сетей. IEEE транзакции по биомедицинской инженерии . ↩
Cao, W., Wang, D., Li, J., Zhou, H., Li, L. & Li, Y. (2018). Британцы: двунаправленное повторное вменение временных рядов. Neurips 2018 . ↩
Che, Z., Purushotham, S., Cho, K., Sontag, DA, & Liu, Y. (2018). Повторяющиеся нейронные сети для многомерных временных рядов с отсутствующими значениями. Научные отчеты . ↩
Bai, S., Kolter, JZ, & Koltun, V. (2018). Эмпирическая оценка общих сверточных и повторяющихся сетей для моделирования последовательности. ARXIV 2018 . ↩
Vaswani, A., Shazeer, NM, Parmar, N., Uszkoreit, J., Jones, L., Gomez, AN, Kaiser, L. & Polosukhin, I. (2017). Внимание - это все, что вам нужно. Neurips 2017 . ↩
Википедия: линейная интерполяция ↩
Рубин, Д.Б. (1976). Вывод и отсутствующий данные. Биометрика . ↩