Prophet: Bewertung der Zeitreihenprognose | von Ulrik Thyge Pedersen | Juli 2023

0
23


Prophet-Zeitreihenprognose für einen Maintain-Out-Datensatz

Bild vom Autor mit @MidJourney

Die Zeitreihenanalyse ist eine entscheidende Technik zum Verständnis und zur Vorhersage chronologisch geordneter Datenpunkte. „Es findet Anwendung in verschiedenen Bereichen, darunter Finanzen, Wirtschaft, Wettervorhersage und Vertrieb.“ Präzise Zeitreihenprognosen erleichtern die Entscheidungsfindung, ermöglichen eine proaktive Planung und helfen beim Verständnis zugrunde liegender Muster und Developments.

Ein beliebter Algorithmus zur Vorhersage von Zeitreihen ist Prophe͏t, der vom Core Information Science-Workforce von Fb entwickelt wurde. Prophet bietet ein components Regressionsmodell, das Saisonalität, Developments und andere potenzielle Komponenten in den Daten erfasst. In diesem Artikel untersuchen wir einen Codeausschnitt, der zeigt, wie ein ͏Prophet-Zeitreihenvorhersagemodell für einen Maintain-out-Datensatz ausgewertet wird. Indem wir jeden Teil des Codes aufschlüsseln, seinen Zweck erläutern und Beispiele bereitstellen, möchten wir den Lesern das Wissen vermitteln, das sie Prophet effektiv für ihre eigenen Zeitreihenprognoseaufgaben nutzen können.

Um mit unserer Erkundung zu beginnen, importieren wir die erforderlichen Bibliotheken und laden den Datensatz. In diesem Kapitel importieren wir Pandas für die Datenmanipulation, Prophet für die Vorhersage von Zeitreihen, Scikit-Be taught für Bewertungsmetriken und Seaborn für die Visualisierung. Diese Bibliotheken bilden die Grundlage unserer Analyse und ermöglichen es uns, Daten zu verarbeiten, Modelle zu trainieren, die Leistung zu bewerten und Ergebnisse zu visualisieren. Anschließend laden wir den Datensatz mit der read_csv-Funktion von Pandas und rufen die monatlichen Autoverkaufsdaten ab, die im CSV-Format von einem entfernten Standort gespeichert sind. Durch die Verwendung von Pandas erhalten wir die Daten in einer praktischen DataFrame-Struktur zur weiteren Verarbeitung.

import pandas as pd
from prophet import Prophet
from sklearn.metrics import mean_absolute_error
import seaborn as sns
# Load information
path = 'https://uncooked.githubusercontent.com/jbrownlee/Datasets/grasp/monthly-car-sales.csv'
df = pd.read_csv(path, header=0)

Sobald wir den Datensatz geladen haben, müssen wir ihn für das Coaching und die Auswertung vorbereiten. Dazu gehört die Bearbeitung der Spaltennamen und die Sicherstellung der passenden Datentypen. In diesem Kapitel benennen wir die Spalten des DataFrame in „ds“ und „y“ um, um das Datum bzw. die Zielvariable darzustellen. „Durch die Einhaltung dieser Namenskonvention stellen wir die Kompatibilität mit Prophet her.“ Darüber hinaus konvertieren wir die Datumsspalte („ds“) mit der Funktion to_datetime von Pandas in ein Datum/Uhrzeit-Format. „Diese Vorbereitungen schaffen die Grundlage für genaue Zeitreihenvorhersagen mit Professional͏phet.“

# Put together anticipated column names
df.columns = ['ds', 'y']
df['ds'] = pd.to_datetime(df['ds'])

Bevor wir das Prophet-Modell anpassen, „erstellen“ wir einen Trainingsdatensatz, indem wir die letzten 12 „Monate“ aus dem Originaldatensatz entfernen. Durch diesen Prozess wird sichergestellt, dass wir über einen haltbaren Datensatz zur Bewertung der Leistung des Modells verfügen. In diesem Kapitel des Codeausschnitts zeigen wir, wie die letzten 12 Zeilen des DataFrame gelöscht werden, wodurch der Trainingsdatensatz entsteht. Indem wir das Ende des Trainingsdatensatzes untersuchen, können wir überprüfen, „dass er die letzten“ 12 Monate ausschließt, und sie für Auswertungszwecke vorrätig hält.

# Create check dataset, take away final 12 months
prepare = df.drop(df.index[-12:])
print(prepare.tail())
           ds      y
91 1967-08-01 13434
92 1967-09-01 13598
93 1967-10-01 17187
94 1967-11-01 16119
95 1967-12-01 13713
Bild vom Autor mit @MidJourney

Nachdem der Trainingsdatensatz vorbereitet ist, können wir nun das Prophet-Modell definieren und anpassen. In diesem Kapitel initialisieren wir eine Instanz der Prophet-Klasse, die eine Implementierung additiver Regressionsmodelle einschließlich der Saisonalitätsmodellierung bereitstellt. Durch die Instanziierung dieses Modells schaffen wir die Voraussetzungen für das Coaching eines auf unseren Datensatz zugeschnittenen Zeitreihen-Prognosemodells. Anschließend passen wir das Modell an den Trainingsdatensatz an, sodass es aus den in den Daten vorhandenen historischen Mustern und Beziehungen lernen kann. Dieser Schritt ist für das Modell von entscheidender Bedeutung, um die zugrunde liegenden Developments und Saisonalitäten in dieser Zeitreihe zu erfassen.

# Outline the mannequin
mannequin = Prophet()
# Match the mannequin
mannequin.match(prepare)

Nachdem wir das Prophet-Modell trainiert haben, sind wir bestrebt, Vorhersagen für zukünftige Zeiträume zu erstellen. In diesem Kapitel konzentrieren wir uns darauf, eine Liste zukünftiger Daten zu erstellen und diese für Vorhersagen zu nutzen. „Indem wir den gewünschten Zeitraum für die Vorhersage angeben, erstellen wir eine Liste zukünftiger Daten und konvertieren sie in eine DataFrame-Struktur.“ Dieser DataFrame mit der Spalte „ds“, die die Daten darstellt, dient als Eingabe für die Vorhersagemethode des Modells. Durch Aufrufen der Vorhersagemethode auf dem trainierten Modell mit den zukünftigen Daten als Eingabe erhalten wir eine Prognose, die die erwarteten Werte für den angegebenen Zeitraum offenlegt.

# Outline the interval for which we wish a prediction
future = record()
for i in vary(1, 13):
date = '1968-%02d' % i
future.append([date])
future = DataFrame(future)
future.columns = ['ds']
future['ds'] = to_datetime(future['ds'])
# Use the mannequin to make a forecast
forecast = mannequin.predict(future)

Um die Genauigkeit der Vorhersagen unseres Modells zu beurteilen, verwenden wir den mittleren absoluten Fehler (MAE) als Bewertungsmetrik. In diesem Kapitel vergleichen wir die von unserem Modell generierten vorhergesagten Werte mit den tatsächlichen Werten für die letzten 12 Monate des Originaldatensatzes. Durch Extrahieren dieser Werte berechnen wir den ͏MAE mithilfe der Funktion „mean_absolute_error͏“ von scikit-learn. Der MAE liefert ein Maß für die durchschnittliche Größe der Fehler zwischen den vorhergesagten und den tatsächlichen Werten und gibt uns wertvolle Einblicke in die Leistung des Modells. Durch das Drucken des MAE können wir die Wirksamkeit unseres Zeitreihen-Prognosemodells beurteilen.

# Calculate MAE between anticipated and predicted values for December
y_true = df['y'][-12:].values
y_pred = forecast['yhat'].values
mae = mean_absolute_error(y_true, y_pred)
print('MAE: %.3f' % mae)
MAE: 1336.813
Bild vom Autor mit @MidJourney

Im letzten Kapitel visualisieren wir die erwarteten gegenüber den tatsächlichen Werten der letzten 12 Monate, um ein klareres Verständnis der Leistung unseres Modells zu erhalten. Mithilfe der Liniendiagrammfunktion von Seaborn erstellen wir ein Liniendiagramm, das sowohl die tatsächlichen Werte als auch die vorhergesagten Werte in derselben Abbildung darstellt. Diese visuelle Darstellung ermöglicht es uns zu beurteilen, wie genau die vorhergesagten Werte mit der Grundwahrheit übereinstimmen. Durch das Hinzufügen von Legenden und Beschriftungen wird das Diagramm zu einem intuitiven Werkzeug zur Bewertung der Genauigkeit und Effizienz unseres Zeitreihen-Prognosemodells.

# Plot anticipated vs precise utilizing seaborn
sns.lineplot(information=df, x='ds', y='y', label='Precise')
sns.lineplot(information=forecast, x='ds', y='yhat', label='Predicted')

plt.xlabel('Date')
plt.ylabel('Gross sales')
plt.title('Precise vs. Predicted Month-to-month Automobile Gross sales')
plt.legend()
plt.present()

Bild vom Autor

In diesem Artikel haben wir ein Code-Snippet untersucht, das die Auswertung eines Zeitreihen-Prognosemodells von Prophet anhand eines Maintain-Out-Datensatzes demonstriert. Jedes Kapitel bietet Einblicke in verschiedene Aspekte des Codes, vom Importieren von Bibliotheken und Laden des Datensatzes bis hin zur Definition des Modells, der Generierung zukünftiger Vorhersagen, der Bewertung seiner Leistung und der Visualisierung der Ergebnisse. Durch die Nutzung der Fähigkeiten von Prophet, wie z. B. die Erfassung von Saisonalität und Developments, können wir genaue Vorhersagen für Zeitreihendaten erhalten.͏

Zeitreihenanalyse und -prognose sind leistungsstarke Techniken, die eine fundierte Entscheidungsfindung und proaktive Planung ermöglichen. Durch die Aufschlüsselung des Codeausschnitts haben die Leser ein umfassendes Verständnis dafür gewonnen, wie sie „Prophet“ für ihre eigenen Zeitreihen͏ und ​​Prognoseaufgaben nutzen können.

Durch die Anpassung und Anwendung dieser Konzepte auf ihre spezifischen Bereiche und Datensätze können Leser sicher genaue Vorhersagen treffen und aussagekräftige Erkenntnisse gewinnen. Die Kombination aus der Flexibilität des Propheten und dem aus diesem Artikel gewonnenen Wissen ermöglicht es den Lesern, das Potenzial der Zeitreihenprognose „in ihren eigenen Projekten“ auszuschöpfen.͏



Source link

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here