Mise à jour 2023 : nous discutons de nos projets pour l'avenir de Prophet dans cet article de blog : Facebook/Prophet en 2023 et au-delà
Prophet est une procédure de prévision des données de séries chronologiques basée 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. Cela fonctionne mieux avec des séries chronologiques ayant de forts effets saisonniers et plusieurs saisons de données historiques. Prophet est robuste aux données manquantes et aux changements de tendance, et gère généralement bien les valeurs aberrantes.
Prophet est un logiciel open source publié par l'équipe Core Data Science de Facebook. Il est disponible en téléchargement sur CRAN et PyPI.
Prophet est un package CRAN, vous pouvez donc utiliser install.packages
.
install.packages( ' prophet ' )
Après l'installation, vous pouvez commencer !
install.packages( ' remotes ' )
remotes :: install_github( ' facebook/prophet@*release ' , subdir = ' R ' )
Vous pouvez également choisir un backend Stan alternatif expérimental appelé cmdstanr
. Une fois que vous avez installé prophet
, suivez ces instructions pour utiliser cmdstanr
au lieu de rstan
comme backend :
# R
# We recommend running this in a fresh R session or restarting your current session
install.packages(c( " cmdstanr " , " posterior " ), repos = c( " https://mc-stan.org/r-packages/ " , getOption( " repos " )))
# If you haven't installed cmdstan before, run:
cmdstanr :: install_cmdstan()
# Otherwise, you can point cmdstanr to your cmdstan path:
cmdstanr :: set_cmdstan_path( path = < your existing cmdstan > )
# Set the R_STAN_BACKEND environment variable
Sys.setenv( R_STAN_BACKEND = " CMDSTANR " )
Sous Windows, R nécessite un compilateur, vous devrez donc suivre les instructions fournies par rstan
. L'étape clé consiste à installer Rtools avant de tenter d'installer le package.
Si vous disposez de paramètres de compilateur Stan personnalisés, installez-les à partir des sources plutôt que du binaire CRAN.
Prophet est sur PyPI, vous pouvez donc utiliser pip
pour l'installer.
python -m pip install prophet
Après l'installation, vous pouvez commencer !
Prophet peut également être installé via conda-forge.
conda install -c conda-forge prophet
Pour obtenir les dernières modifications de code au fur et à mesure de leur fusion, vous pouvez cloner ce dépôt et le créer manuellement à partir des sources. Il n’est pas garanti que ce soit stable.
git clone https://github.com/facebook/prophet.git
cd prophet/python
python -m pip install -e .
Par défaut, Prophet utilisera une version fixe de cmdstan
(en la téléchargeant et en l'installant si nécessaire) pour compiler les exécutables du modèle. Si cela n'est pas souhaité et que vous souhaitez utiliser votre propre installation cmdstan
existante, vous pouvez définir la variable d'environnement PROPHET_REPACKAGE_CMDSTAN
sur False
:
export PROPHET_REPACKAGE_CMDSTAN=False ; python -m pip install -e .
Assurez-vous que les compilateurs (gcc, g++, build-essential) et les outils de développement Python (python-dev, python3-dev) sont installés. Dans les systèmes Red Hat, installez les packages gcc64 et gcc64-c++. Si vous utilisez une VM, sachez que vous aurez besoin d'au moins 4 Go de mémoire pour installer Prophet et d'au moins 2 Go de mémoire pour utiliser Prophet.
L'utilisation de cmdstanpy
avec Windows nécessite un compilateur C compatible Unix tel que mingw-gcc. Si cmdstanpy est installé en premier, vous pouvez en installer un via la commande cmdstanpy.install_cxx_toolchain
.
y
historique manquant, une erreur de division zéro dans les métriques de validation croisée.NDArray[np.float_]
en NDArray[np.float64]
pour être compatible avec numpy 2.0 holidays
mises à jour basées sur la version 0.57 des vacances.scaling
des arguments à l'instanciation Prophet()
. Permet la mise à l'échelle minmax
sur y
au lieu de la mise à l'échelle absmax
(en divisant par la valeur maximale). scaling='absmax'
par défaut, préservant le comportement des versions précédentes.holidays_mode
à l'instanciation Prophet()
. Permet aux régresseurs de vacances d'avoir un mode différent de celui des régresseurs de saisonnalité. holidays_mode
prend la même valeur que seasonality_mode
s'il n'est pas spécifié, préservant le comportement des versions précédentes.Prophet
: preprocess()
et calculate_initial_params()
. Il n'est pas nécessaire d'appeler ces éléments et ne modifieront pas le processus d'ajustement du modèle. Leur objectif est de clarifier les étapes de prétraitement prises (mise à l'échelle y
, création de séries de Fourier, mise à l'échelle du régresseur, définition des points de changement, etc.) avant que les données ne soient transmises au modèle Stan.extra_output_columns
à cross_validation()
. L'utilisateur peut spécifier des colonnes supplémentaires de predict()
à inclure dans la sortie finale aux côtés ds
et yhat
, par exemple extra_output_columns=['trend']
.hdays
personnalisé de Prophet était obsolète dans la dernière version et est maintenant supprimé. holidays
mises à jour basées sur la version 0.34 des vacances.holidays
pour les vacances à la campagne.holidays
mises à jour basées sur la version 0.25 des vacances..predict()
jusqu'à 10x en supprimant les créations DataFrame intermédiaires.train()
et predict()
.construct_holiday_dataframe()
holidays
mises à jour basées sur la version 0.18 des vacances.pystan2
par cmdstan
+ cmdstanpy
.stan
, calculs de métriques de validation croisée, vacances.holidays
et pandas
holidays
et pandas
.cmdstanpy
est désormais disponible en PythonProphet est sous licence MIT.