Kürzlich habe ich versucht, Prophet für die einfache Vorhersage von Zeitreihen zu verwenden. Da es eine große Sache ist, habe ich beschlossen, alles von der Einführung bis zur Operation zu teilen, also habe ich einen Artikel geschrieben.
Prophet ist ein Zeitreihen-Vorhersagepaket, das von Facebook als OSS (MIT-Lizenz) veröffentlicht wird. Ich werde hier nicht auf die detaillierte Theorie eingehen, aber Vorhersagen werden unter Verwendung eines verallgemeinerten additiven Modells gemacht.
python
#prophet_Eine virtuelle Umgebung namens env ist python3.Erstellt mit 7 Serien(3.8 Serie fbprophet 0.Nicht kompatibel mit 6)
conda create -n prophet_env python=3.7
#Prophet aus der Basisumgebung erstellt_env Wechseln Sie zur virtuellen Umgebung
conda activate prophet_env
Installieren Sie zunächst die Visual Stuido Community.
Installieren Sie dann die folgenden Bibliotheken
python
#Prophet eingeführt, weil es von PyStan abhängt
conda install plotly -y
#Fbprophet eingeführt(2020/11/Version bei 1 ist 0.7.Es war 1, aber ich habe einen Fehler bekommen, also 0.6)
conda install -c conda-forge fbprophet==0.6
#Weil die Umgebung Miniconda ist ...(Ich habe Numpy und Pandas nicht einzeln gesetzt, weil sie zufällig zusammen in ↑ eingeführt wurden)
conda install matplotlib
Erfolgreiche Installation, wenn mit dem folgenden Befehl kein Fehler auftritt
python
from fbprophet import Prophet
Dieses Mal werden wir einen einfachen Datensatz namens "Air Passengers" als Beispieldatensatz verwenden. Die Spalte Monat enthält den Zeitreihenteil und die Spalte Passagiere enthält Änderungen in der Anzahl der Passagiere. Datensatzlink
Month | #Passengers |
---|---|
1949/1/1 | 112 |
1949/2/1 | 118 |
1949/3/1 | 132 |
python
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from fbprophet import Prophet
#Lesen Sie die CSV von Fluggästen
df = pd.read_csv('AirPassengers.csv')
python
#Der Prophet muss die Spaltennamen in ds und y ändern, also ändern Sie sie
df.columns = ['ds', 'y']
#Lernen Sie diesmal von der Rückseite des Datenrahmens bis zum 10. im Propheten(fit)Lassen
m = Prophet()
m.fit(df[:-10])
python
'''
periods=Sagen Sie 10:10 Quadrate voraus
freq='M': Einheit ist "Monat"
→ Mit anderen Worten bedeutet es, für 10 Monate vorherzusagen
'''
future = m.make_future_dataframe(periods=10, freq='M')
forecast = m.predict(future)
#Illustrieren Sie das Ergebnis der Prognose
fig = m.plot(forecast)
Es sollte als ↓ angezeigt werden.
Wie war es? Das Programm selbst funktioniert problemlos, daher ist die Installation möglicherweise schwieriger. Verschiedene Versionen könnten irgendwo einen Fehler verursachen, und tatsächlich bin ich zuerst dort gestolpert. (PyStan, Libpython usw. wurden zusammen mit fbprophet == 0.6 eingeführt, sodass sie am Ende nicht einzeln eingeführt wurden.) Es ist einfach, also probieren Sie es bitte aus.
Recommended Posts