Heim  >  Artikel  >  Backend-Entwicklung  >  Python für die Zeitreihenanalyse: Prognose und Anomalieerkennung

Python für die Zeitreihenanalyse: Prognose und Anomalieerkennung

PHPz
PHPznach vorne
2023-08-31 20:09:131175Durchsuche

Python für die Zeitreihenanalyse: Prognose und Anomalieerkennung

Python ist zur bevorzugten Sprache für Datenwissenschaftler und -analysten geworden und bietet ein umfassendes Angebot an Datenanalysebibliotheken und -tools. Python zeichnet sich insbesondere durch Zeitreihenanalysen sowie Prognosen und Anomalieerkennung aus. Mit seiner Einfachheit, Vielseitigkeit und starken Unterstützung für statistische und maschinelle Lerntechniken bietet Python eine ideale Plattform zum Extrahieren wertvoller Erkenntnisse aus zeitabhängigen Daten.

Dieser Artikel untersucht die überlegenen Fähigkeiten von Python für die Zeitreihenanalyse und konzentriert sich dabei auf Prognosen und Anomalieerkennung. Indem wir uns mit den praktischen Aspekten dieser Aufgaben befassen, verdeutlichen wir, wie die Bibliotheken und Tools von Python eine genaue Vorhersage und Identifizierung von Anomalien in Zeitreihendaten ermöglichen. Anhand von Beispielen aus der Praxis und demonstrativen Ergebnissen demonstrieren wir die Effizienz und Nützlichkeit von Python bei der Lösung von Herausforderungen bei der Zeitreihenanalyse. Begleiten Sie uns auf einer Python-Reise, um Zeitreihenanalysen durchzuführen und verborgene Schätze in zeitbezogenen Daten aufzudecken.

Vorhersage mit Python

Prognose ermöglicht es uns, zukünftige Werte basierend auf vergangenen Beobachtungen vorherzusagen. Python bietet mehrere leistungsstarke Bibliotheken wie NumPy, Pandas und Scikit-Learn, die die Vorhersage von Zeitreihen erleichtern. Darüber hinaus bieten statistische Modelle und Spezialbibliotheken wie Prophet erweiterte Prognosefunktionen.

Um die Einzelhandelsumsätze für den nächsten Monat vorherzusagen, laden wir zunächst die Zeitreihendaten in einen Pandas DataFrame und führen die notwendigen Vorbereitungen durch. Sobald die Daten bereit sind, können wir verschiedene Prognosemethoden wie gleitende Durchschnitte, exponentielle Glättung und ARIMA-Modelle zur Analyse und Prognose untersuchen.

Beispiel

Das Folgende ist der Beispielcode

import pandas as pd
import statsmodels.api as sm

# Load and preprocess the time series data
sales_data = pd.read_csv('sales_data.csv', parse_dates=['Date'])
sales_data.set_index('Date', inplace=True)

# Fit the ARIMA model
model = sm.tsa.ARIMA(sales_data, order=(1, 1, 1))
model_fit = model.fit(disp=0)

# Make predictions
predictions = model_fit.predict(start='2023-07-01', end='2023-08-01', dynamic=False)

In diesem Beispiel laden wir Verkaufsdaten aus einer CSV-Datei, legen die Datumsspalte als Index fest und passen ein ARIMA(1, 1, 1)-Modell an die Daten an. Abschließend treffen wir unsere Prognosen für den nächsten Monat.

Anomalieerkennung mit Python

Bei der Anomalieerkennung geht es darum, ungewöhnliche Muster in Zeitreihendaten zu identifizieren. Python bietet eine Vielzahl von Techniken und Bibliotheken für eine effektive Anomalieerkennung, darunter beliebte Methoden, die auf gleitenden Durchschnitten und Standardabweichungen basieren.

Angenommen, wir haben einen Sensordatensatz mit stündlichen Temperaturmesswerten. Wir suchen nach Ausnahmen, etwa nach schnellen Temperaturanstiegen oder -abfällen. Unten finden Sie ein Codebeispiel mit einer Strategie für gleitenden Durchschnitt und Standardabweichung

Beispiel

import pandas as pd

# Load the time series data
sensor_data = pd.read_csv('sensor_data.csv', parse_dates=['Timestamp'])
sensor_data.set_index('Timestamp', inplace=True)

# Calculate moving averages and standard deviations
window_size = 6
rolling_mean = sensor_data['Temperature'].rolling(window=window_size).mean()
rolling_std = sensor_data['Temperature'].rolling(window=window_size).std()

# Detect anomalies
anomalies = sensor_data[(sensor_data['Temperature'] > rolling_mean + 2 * rolling_std) |
                        (sensor_data['Temperature'] < rolling_mean - 2 * rolling_std)]

In diesem Beispiel verwenden wir eine 6-Stunden-Fenstergröße, um den gleitenden Durchschnitt und die Standardabweichung der Temperaturmessungen zu berechnen. Wir sind dann in der Lage, Anomalien zu erkennen, indem wir Datenpunkte lokalisieren, die deutlich vom gleitenden Durchschnitt abweichen.

Python-Visualisierung für die Zeitreihenanalyse

Python bietet leistungsstarke Visualisierungsbibliotheken, die unser Verständnis von Zeitreihendaten über Vorhersage und Anomalieerkennung hinaus verbessern. Die Visualisierung hilft dabei, Muster, Trends und Anomalien visuell zu erkennen, um Einblicke zu verbessern und fundierte Entscheidungen zu treffen.

Erweitern wir das vorherige Beispiel und integrieren wir die Visualisierungsfunktionen von Python, um ein tieferes Verständnis der Daten zu erlangen.

Prognosevisualisierung

Nachdem wir das ARIMA-Modell für die Umsatzprognose verwendet haben, können wir erwartete Verkäufe zusammen mit tatsächlichen Verkaufsdaten anzeigen. Nutzen Sie diese Visualisierung, um erwartete und tatsächliche Zahlen einfach zu vergleichen.

Beispiel

import matplotlib.pyplot as plt

plt.figure(figsize=(10, 6))
plt.plot(sales_data.index, sales_data['Sales'], label='Actual Sales')
plt.plot(predictions.index, predictions, color='red', linestyle='--', label='Predicted Sales')
plt.title('Sales Forecasting')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.legend()
plt.show()

In diesem Beispiel wird die Matplotlib-Bibliothek verwendet, um ein Liniendiagramm zu erstellen, um tatsächliche und prognostizierte Verkaufsdaten visuell darzustellen. Mithilfe dieser grafischen Darstellung können wir die Genauigkeit des Prognosemodells bewerten und etwaige Unterschiede zwischen vorhergesagten und beobachteten Werten identifizieren.

Visualisierung der Anomalieerkennung

Die Visualisierung der Anomalieerkennung erfordert die Erstellung eines Diagramms zur Anzeige der Zeitreihendaten, des berechneten gleitenden Durchschnitts und der erkannten Anomalien. Diese visuelle Darstellung ermöglicht eine klare Identifizierung und Analyse abnormaler Datenpunkte. Hier ist ein Beispiel

Beispiel

import pandas as pd
import matplotlib.pyplot as plt

sensor_data = pd.read_csv('sensor_data.csv', parse_dates=['Timestamp'])
sensor_data.set_index('Timestamp', inplace=True)

window_size = 6
rolling_mean = sensor_data['Temperature'].rolling(window=window_size).mean()
rolling_std = sensor_data['Temperature'].rolling(window=window_size).std()

anomalies = sensor_data[(sensor_data['Temperature'] > rolling_mean + 2 * rolling_std) |
                        (sensor_data['Temperature'] < rolling_mean - 2 * rolling_std)]

plt.figure(figsize=(10, 6))
plt.plot(sensor_data.index, sensor_data['Temperature'], label='Temperature')
plt.plot(sensor_data.index, rolling_mean, color='red', linestyle='--', label='Moving Average')
plt.scatter(anomalies.index, anomalies['Temperature'], color='orange', label='Anomalies')
plt.title('Anomaly Detection: Temperature Sensor')
plt.xlabel('Timestamp')
plt.ylabel('Temperature')
plt.legend()
plt.show()

Dieses Codebeispiel lädt Zeitreihendaten aus einer CSV-Datei und legt die Zeitstempelspalte als Index fest. Anschließend berechnet es den gleitenden Durchschnitt und die Standardabweichung der Temperaturmesswerte unter Verwendung einer bestimmten Fenstergröße. Durch den Vergleich der Temperaturwerte mit einem berechneten gleitenden Durchschnitt und einer Standardabweichung können Anomalien erkannt werden.

Fazit

Alles in allem erweist sich Python als wertvolles Werkzeug für die Zeitreihenanalyse, insbesondere im Bereich Prognose und Anomalieerkennung. Seine umfangreiche Bibliothek, einschließlich Statsmodels, Pandas und Scikit-Learn, bietet ein leistungsstarkes Ökosystem, das auf die Arbeit mit Zeitreihendaten zugeschnitten ist. Durch die Nutzung der Leistungsfähigkeit dieser Bibliotheken können genaue Prognosemodelle wie ARIMA erstellt und Techniken wie gleitende Durchschnitte und Standardabweichungen zur Identifizierung von Anomalien eingesetzt werden. Darüber hinaus ermöglichen Pythons Visualisierungsbibliotheken wie Matplotlib Benutzern die Erstellung visuell ansprechender Diagramme, die ihr Verständnis von Zeitreihendaten vertiefen. Unabhängig vom Kenntnisstand stellt Python Anfängern und erfahrenen Datenwissenschaftlern die notwendigen Ressourcen zur Verfügung, um Trends zu erkennen, genaue Vorhersagen zu treffen und Anomalien in Zeitreihendatensätzen zu identifizieren.

Das obige ist der detaillierte Inhalt vonPython für die Zeitreihenanalyse: Prognose und Anomalieerkennung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen