[PYTHON] Einfache Vorhersage von Zeitreihen mit Prophet

1. Zuallererst

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.

2. Was ist der Prophet?

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.

Offizielle Seite github

3. Erstellen Sie eine virtuelle Umgebung zur Überprüfung und wechseln Sie zur virtuellen Umgebung

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

4. Überprüfung des Installationsbetriebs

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

5. Eigentlich verwenden

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

5-1: Bis zum Lesen der Datei

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')

5-2: Lerne den Propheten

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])

5-3: Vom Propheten vorhergesagt

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.

6. Schließlich

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

Einfache Vorhersage von Zeitreihen mit Prophet
Vorhersage von Zeitreihendaten durch Simplex-Projektion
Vorhersage von Zeitreihendaten mit einem neuronalen Netzwerk
Spiel mit dem Propheten
Zeitreihenzerlegung
Zeigen Sie Details zu Zeitreihendaten mit Remotte an
✨ Einfach mit Python ☆ Geschätzte verstrichene Zeit nach dem Tod ✨
Python-Zeitreihenfrage
RNN_LSTM1 Zeitreihenanalyse
Zeitreihenanalyse 1 Grundlagen
Vorhersage von Zeitreihendaten durch AutoML (automatisches maschinelles Lernen)
[Zeitreihen mit Handlung] Dynamische Visualisierung mit Handlung [Python, Aktienkurs]
Einfaches Debuggen mit ipdb
TOPIX-Zeitreihen anzeigen
Zeitreihendiagramm / Matplotlib
Einfache TopView mit OpenCV
Vorhersage aus verschiedenen Daten in Python mit dem Zeitreihen-Vorhersage-Tool Facebook Prophet
Ich habe ein Paket erstellt, um Zeitreihen mit Python zu filtern
Formatieren Sie die Zeitachse des Pandas-Zeitreihendiagramms mit matplotlib neu
Herausforderung für die zukünftige Umsatzprognose: ⑤ Zeitreihenanalyse von Prophet
Einfache toxische Umgebung mit Jenkins
[Analyse des gemeinsamen Auftretens] Einfache Analyse des gemeinsamen Auftretens mit Python! [Python]
Standardeingabe mit Zeitlimit
Einfache Ordnersynchronisation mit Python
Machen Sie es mit der Syntax einfach
Einfaches Web-Scraping mit Scrapy
Vorhersage des Nikkei-Durchschnitts mit Pytorch 2
Messung der Ausführungszeit mit Python With
Zeitreihenanalyse Teil 4 VAR
Zeitreihenanalyse Teil 3 Prognose
Einfache Python-Kompilierung mit NUITKA-Utilities
[Python] Zeichnen Sie Zeitreihendaten
Einfacher HTTP-Server mit Python
Einfache Proxy-Anmeldung mit Django-Hijack
Vorhersage des Nikkei-Durchschnitts mit Pytorch
Zeitreihenanalyse Teil 1 Autokorrelation
Zeitsynchronisation (Windows) mit Python
So extrahieren Sie Funktionen von Zeitreihendaten mit PySpark Basics
Vergleich der Vorhersage von Zeitreihendaten zwischen dem SARIMA-Modell und dem Prophet-Modell