Maison  >  Article  >  développement back-end  >  Dix bibliothèques Python recommandées pour l'analyse des séries chronologiques en 2022

Dix bibliothèques Python recommandées pour l'analyse des séries chronologiques en 2022

WBOY
WBOYavant
2023-04-13 08:22:111912parcourir

Une série chronologique est une séquence de points de données, généralement constituée de mesures consécutives prises sur un intervalle de temps. L'analyse des séries chronologiques est le processus de modélisation et d'analyse des données de séries chronologiques à l'aide de techniques statistiques afin d'en extraire des informations significatives et de faire des prédictions.

Dix bibliothèques Python recommandées pour l'analyse des séries chronologiques en 2022

L'analyse des séries chronologiques est un outil puissant qui peut être utilisé pour extraire des informations précieuses à partir de données et faire des prédictions sur des événements futurs. Il peut être utilisé pour identifier les tendances, les modèles saisonniers et d’autres relations entre variables. L'analyse des séries chronologiques peut également être utilisée pour prédire des événements futurs tels que les ventes, la demande ou les changements de prix.

Si vous travaillez avec des données de séries chronologiques en Python, vous avez le choix entre de nombreuses bibliothèques différentes. Ainsi, dans cet article, nous allons trier les bibliothèques les plus populaires pour travailler avec des séries chronologiques en Python.

Sktime

Sktime est une bibliothèque Python pour le traitement des données de séries chronologiques. Il fournit un ensemble d'outils pour travailler avec des données de séries chronologiques, notamment des outils de traitement, de visualisation et d'analyse des données. Sktime est conçu pour être facile à utiliser et extensible afin que de nouveaux algorithmes de séries chronologiques puissent être facilement implémentés et intégrés.

Sktime, comme son nom l'indique, prend en charge l'API scikit-learn et contient toutes les méthodes et outils nécessaires pour résoudre efficacement les problèmes impliquant la régression, la prédiction et la classification de séries chronologiques. Cette bibliothèque contient des algorithmes d'apprentissage automatique spécialisés et des méthodes de conversion uniques pour les séries temporelles qui ne sont pas fournies dans d'autres bibliothèques, Sktime peut donc être utilisée comme une très bonne bibliothèque de base.

Selon la documentation de sktime, « Notre objectif est de rendre l'écosystème d'analyse de séries chronologiques dans son ensemble plus interopérable et utilisable. Sktime fournit une interface unifiée pour des tâches d'apprentissage de séries chronologiques différentes mais liées. Il propose des algorithmes et des outils spécialisés pour les séries chronologiques. construction de modèles combinés, y compris pipelines, intégration, réglage et simplification, permettant aux utilisateurs d'appliquer des algorithmes d'une tâche à une autre.

sktime fournit également des interfaces avec des bibliothèques associées, par exemple, scikit-learn, statsmodels, tsfresh, PyOD et [fbprophet. ], etc. ”

Voici un exemple de code

from sktime.datasets import load_airline
 from sktime.forecasting.model_selection import temporal_train_test_split
 
 # from sktime.utils.plotting.forecasting import plot_ys
 
 y = load_airline()
 y_train, y_test = temporal_train_test_split(y)
 plt.title('Airline Data with Train and Test')
 y_train.plot(label = 'train')
 y_test.plot(label = 'test')
 plt.legend()

pmdarima

pmdarima est une bibliothèque Python pour l'analyse statistique des données de séries chronologiques. Il est basé sur le modèle ARIMA et fournit divers outils pour analyser, prévoir et visualiser les données de séries chronologiques. Pmdarima fournit également divers outils pour travailler avec des données saisonnières, notamment des tests de saisonnalité et des outils de décomposition saisonnière.

L'un des modèles de prévision souvent utilisés dans l'analyse des séries chronologiques est ARIMA (Autoregressive Integrated Moving Average). ARIMA est un algorithme de prévision qui prédit les valeurs futures sur la base des informations provenant des valeurs passées d'une série chronologique.

pmdarima est un wrapper pour le modèle ARIMA. Il est livré avec une fonction de recherche automatique d'hyperparamètres qui peut trouver automatiquement les meilleurs hyperparamètres (p, d, q) pour le modèle ARIMA. La bibliothèque comprend les fonctionnalités principales suivantes :

  • Un ensemble de tests statistiques sur la stationnarité et la saisonnalité
  • Des utilitaires de séries temporelles tels que la différenciation et la différenciation inverse
  • De nombreux transformateurs et caractérisations endogènes et exogènes, y compris les transformées de Box-Cox et de Fourier
  • Décomposition de séries chronologiques saisonnières
  • Outil de validation croisée
  • Une riche collection intégrée d'ensembles de données de séries chronologiques pouvant être utilisées pour des prototypes et des exemples

AutoTS

Comme son nom l'indique, il s'agit d'un outil de bibliothèque Python automatique pour analyse de séries chronologiques. AutoTS nous permet de former plusieurs modèles de séries chronologiques avec une seule ligne de code afin que nous puissions choisir le modèle le plus approprié.

Cette bibliothèque fait partie d'autoML et son objectif est de fournir une bibliothèque d'automatisation pour les débutants.

TSFresh

tsfresh est un package Python qui peut extraire automatiquement des fonctionnalités de séries chronologiques. Elle repose sur le fait que les informations contenues dans la série chronologique peuvent être décomposées en un ensemble de caractéristiques significatives. tsfresh se charge de la tâche fastidieuse d'extraction manuelle de ces fonctionnalités et fournit des outils pour la sélection et la classification automatiques des fonctionnalités. Il peut être utilisé avec les Pandas DataFrames et fournit un large éventail de fonctions pour traiter les données de séries chronologiques, notamment :

  • Extraction automatique des caractéristiques des séries chronologiques
  • Sélection automatique des caractéristiques
  • Décomposition des séries chronologiques
  • Réduction de la dimensionnalité
  • Détection des valeurs d'exceptions
  • Prend en charge plusieurs formats de séries chronologiques
  • Prend en charge les valeurs manquantes
  • Prend en charge plusieurs langues

Dix bibliothèques Python recommandées pour lanalyse des séries chronologiques en 2022

Prophet

Prophet est un logiciel open source publié par l'équipe principale de science des données de Facebook. Il est basé sur un modèle additif dans lequel les tendances non linéaires sont adaptées à la saisonnalité annuelle, hebdomadaire et quotidienne, ainsi qu'aux effets des vacances. Il convient mieux aux séries chronologiques présentant de forts effets saisonniers et aux données historiques sur plusieurs saisons. Prophet est très robuste aux données manquantes et aux changements de tendances, et gère généralement bien les valeurs aberrantes.

根据官方文档,fbprophet在处理具有显著季节性影响的时间序列数据和几个季节价值的之前数据时工作得非常好。此外fbprophet能够抵抗缺失数据,并能够有效地管理异常值。

Dix bibliothèques Python recommandées pour lanalyse des séries chronologiques en 2022

Statsforecast

Statsforecast提供了一组广泛使用的单变量时间序列预测模型,包括自动ARIMA和ETS建模并使用numba优化。它还包括大量的基准测试模型。根据官网的介绍:

  • Python和R中最快最准确的AutoARIMA。
  • Python和R中最快最准确的ETS。
  • 兼容sklearn接口。
  • ARIMA的外生变量和预测区间的包含。
  • 比pmdarima快20倍,比Prophet快500倍,比NeuralProphet快100倍,比statmodels快4倍。
  • 通过numba编译为高性能机器代码。
  • 开箱即用的实现ADIDA, HistoricAverage, CrostonClassic, CrostonSBA, CrostonOptimized, seasonalwindowaaverage, SeasonalNaive, IMAPA Naive, RandomWalkWithDrift, windowaaverage, SeasonalExponentialSmoothing, TSB, AutoARIMA和ETS。

kats

Kats 是 Facebook 研究团队最近开发的另一个专门处理时间序列数据的库。该框架的目标是为解决时间序列问题提供一个完整的解决方案。使用此库,我们可以执行以下操作:

  • 时间序列分析
  • 模式检测,包括季节性、异常值、趋势变化
  • 产生65个特征的特征工程模块
  • 对时间序列数据建立预测模型,包括Prophet、ARIMA、Holt Winters等。

Darts

Darts 是由 Unit8.co 开发的用于预测时间序列,并且对scikit-learn 友好 的Python 包。它包含大量模型,从 ARIMA 到深度神经网络,用于处理与日期和时间相关的数据。

该库的好处在于它还支持用于处理神经网络的多维类。

它还允许用户结合来自多个模型和外部回归模型的预测,从而更容易地对模型进行回测。

Pyflux

Pyflux 是一个为 Python 构建的开源时间序列库。Pyflux选择了更多的概率方法来解决时间序列问题。这种方法对于需要更完整的不确定性的预测这样的任务特别有利。

用户可以建立一个概率模型,其中通过联合概率将数据和潜在变量视为随机变量。

PyCaret

PyCaret是一个基于Python的开源、低代码的机器学习库,它是一个端到端机器学习和模型管理工具,可以成倍地加快实验周期,让工作效率更高。

与其他开源机器学习库相比,PyCaret是一个可替代的低代码库,可以只用几行代码替换数百行代码。这使得实验的速度和效率呈指数级增长。PyCaret本质上是scikit-learn、XGBoost、LightGBM、CatBoost、spacacy、Optuna、Hyperopt、Ray等几个机器学习库和框架的Python包装。

虽然PyCaret不是一个专门的时间序列预测库,但它有一个专门用于时间序列预测的新模块。它仍然处于预发布状态,但是安装时需要使用以下代码进行安装才能使用新的模块

pip install --pre pycaret

PyCaret时间序列模块与现有的API一致,并且可以使用完整的功能,例如:统计测试、模型训练和选择(30+算法模型)、模型分析、自动超参数调优、实验日志、云部署等。所有这些都只用了几行代码就完成了。

Dix bibliothèques Python recommandées pour lanalyse des séries chronologiques en 2022

总结

Python中有许多可用的时间序列预测库(比我们在这里介绍的更多)。每个库都有自己的优缺点,因此根据自己的需要选择合适的是很重要的。如果你有什么更好的推荐,请留言告诉我们。


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer