Update 2023: Wir besprechen unsere Pläne für die Zukunft von Prophet in diesem Blogbeitrag: facebook/prophet im Jahr 2023 und darüber hinaus
Prophet ist ein Verfahren zur Vorhersage von Zeitreihendaten auf der Grundlage eines additiven Modells, bei dem nichtlineare Trends an jährliche, wöchentliche und tägliche Saisonalität sowie Feiertagseffekte angepasst werden. Es funktioniert am besten mit Zeitreihen, die starke saisonale Effekte und mehrere Jahreszeiten mit historischen Daten haben. Prophet ist robust gegenüber fehlenden Daten und Trendverschiebungen und geht in der Regel gut mit Ausreißern um.
Prophet ist eine Open-Source-Software, die vom Core Data Science-Team von Facebook veröffentlicht wurde. Es steht auf CRAN und PyPI zum Download bereit.
Prophet ist ein CRAN-Paket, sodass Sie install.packages
verwenden können.
install.packages( ' prophet ' )
Nach der Installation kann es losgehen!
install.packages( ' remotes ' )
remotes :: install_github( ' facebook/prophet@*release ' , subdir = ' R ' )
Sie können auch ein experimentelles alternatives Stan-Backend namens cmdstanr
wählen. Befolgen Sie nach der Installation prophet
die folgenden Anweisungen, um cmdstanr
anstelle von rstan
als Backend zu verwenden:
# 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 " )
Unter Windows erfordert R einen Compiler, daher müssen Sie den Anweisungen von rstan
folgen. Der wichtigste Schritt ist die Installation von Rtools, bevor versucht wird, das Paket zu installieren.
Wenn Sie benutzerdefinierte Stan-Compiler-Einstellungen haben, installieren Sie von der Quelle und nicht von der CRAN-Binärdatei.
Prophet ist auf PyPI, Sie können es also mit pip
installieren.
python -m pip install prophet
Nach der Installation kann es losgehen!
Prophet kann auch über Conda-Forge installiert werden.
conda install -c conda-forge prophet
Um die neuesten Codeänderungen beim Zusammenführen zu erhalten, können Sie dieses Repo klonen und manuell aus dem Quellcode erstellen. Es kann nicht garantiert werden, dass dies stabil ist.
git clone https://github.com/facebook/prophet.git
cd prophet/python
python -m pip install -e .
Standardmäßig verwendet Prophet eine feste Version von cmdstan
(lädt diese bei Bedarf herunter und installiert sie), um die ausführbaren Modelldateien zu kompilieren. Wenn dies unerwünscht ist und Sie Ihre eigene bestehende cmdstan
Installation verwenden möchten, können Sie die Umgebungsvariable PROPHET_REPACKAGE_CMDSTAN
auf False
setzen:
export PROPHET_REPACKAGE_CMDSTAN=False ; python -m pip install -e .
Stellen Sie sicher, dass Compiler (gcc, g++, build-essential) und Python-Entwicklungstools (python-dev, python3-dev) installiert sind. Installieren Sie auf Red Hat-Systemen die Pakete gcc64 und gcc64-c++. Wenn Sie eine VM verwenden, beachten Sie, dass Sie mindestens 4 GB Speicher für die Installation von Prophet und mindestens 2 GB Speicher für die Verwendung von Prophet benötigen.
Für die Verwendung von cmdstanpy
unter Windows ist ein Unix-kompatibler C-Compiler wie mingw-gcc erforderlich. Wenn cmdstanpy zuerst installiert wird, kann eines über den Befehl cmdstanpy.install_cxx_toolchain
installiert werden.
y
Verlauf und Nullteilungsfehler in Kreuzvalidierungsmetriken einschließen.NDArray[np.float_]
wurde in NDArray[np.float64]
geändert, um mit Numpy 2.0 kompatibel zu sein holidays
basierend auf Feiertagsversion 0.57.scaling
zur Prophet()
-Instanziierung hinzugefügt. Ermöglicht minmax
-Skalierung auf y
anstelle der absmax
-Skalierung (Division durch den Maximalwert). scaling='absmax'
standardmäßig, wobei das Verhalten früherer Versionen beibehalten wird.holidays_mode
zur Instanziierung Prophet()
hinzugefügt. Ermöglicht Feiertags-Regressoren einen anderen Modus als Saisonalitäts-Regressoren. holidays_mode
nimmt den gleichen Wert wie seasonality_mode
an, sofern nicht angegeben, wodurch das Verhalten früherer Versionen erhalten bleibt.Prophet
Objekt wurden zwei Methoden hinzugefügt: preprocess()
und calculate_initial_params()
. Diese müssen nicht aufgerufen werden und verändern den Modellanpassungsprozess nicht. Ihr Zweck besteht darin, Klarheit über die durchgeführten Vorverarbeitungsschritte ( y
-Skalierung, Erstellen von Fourier-Reihen, Regressor-Skalierung, Festlegen von Änderungspunkten usw.) zu schaffen, bevor die Daten an das Stan-Modell übergeben werden.extra_output_columns
zu cross_validation()
hinzugefügt. Der Benutzer kann zusätzliche Spalten aus predict()
angeben, die neben ds
und yhat
in die endgültige Ausgabe einbezogen werden sollen, zum Beispiel extra_output_columns=['trend']
.hdays
-Modul des Propheten war in der letzten Version veraltet und wurde nun entfernt. holidays
basierend auf Feiertagsversion 0.34.holidays
.holidays
basierend auf Feiertagsversion 0.25..predict()
wurde um das bis zu 10-fache beschleunigt, indem zwischenzeitliche DataFrame-Erstellungen entfernt wurden.train()
und predict()
Pipelines führte.construct_holiday_dataframe()
wurde behoben.holidays
basierend auf Feiertagsversion 0.18.pystan2
Abhängigkeit durch cmdstan
+ cmdstanpy
ersetzt.stan
-Modellcode, Kreuzvalidierungsmetrikberechnungen, Feiertage.holidays
und pandas
holidays
und pandas
-Paketen.cmdstanpy
Backend jetzt in Python verfügbarProphet ist unter der MIT-Lizenz lizenziert.