Code & Queries

Code & Queries: Your Source for SQL, Python, and AI Insights

In der heutigen datengetriebenen Welt ist die Fähigkeit, zukünftige Trends vorherzusagen, ein entscheidender Wettbewerbsvorteil. Insbesondere im Bereich der Verkaufsdaten kann die Vorhersage von Kundenumsätzen Unternehmen dabei helfen, fundierte Entscheidungen zu treffen, Lagerbestände zu optimieren und Marketingstrategien zu verbessern. In diesem Blogbeitrag werden wir uns damit beschäftigen, wie man mit SQL Server und Python eine Vorhersage von Kundenumsätzen erstellen kann. Wir werden sowohl T-SQL als auch Python-Skripte verwenden, um die Daten zu analysieren und Vorhersagen zu treffen.

Inhaltsverzeichnis

  1. Einführung in die Zeitreihenvorhersage
  2. Datenvorbereitung in SQL Server
  3. Vorhersagemodell mit Python erstellen
  4. Integration der Vorhersage in SQL Server
  5. Visualisierung der Ergebnisse
  6. Fazit

1. Einführung in die Zeitreihenvorhersage

Die Zeitreihenvorhersage ist eine Technik, die verwendet wird, um zukünftige Werte auf der Grundlage historischer Daten vorherzusagen. Im Kontext von Verkaufsdaten kann dies bedeuten, zukünftige Umsätze auf der Grundlage vergangener Verkaufszahlen vorherzusagen. Es gibt verschiedene Methoden zur Zeitreihenvorhersage, darunter:

  • ARIMA (AutoRegressive Integrated Moving Average)
  • Exponentielle Glättung
  • Maschinelles Lernen (z.B. Random Forest, LSTM)

In diesem Beitrag werden wir uns auf die Verwendung von ARIMA konzentrieren, einer der am häufigsten verwendeten Methoden zur Zeitreihenvorhersage.


2. Datenvorbereitung in SQL Server

Bevor wir mit der Vorhersage beginnen können, müssen wir sicherstellen, dass unsere Daten in SQL Server korrekt vorbereitet sind. Angenommen, wir haben eine Tabelle Sales mit den folgenden Spalten:

  • CustomerID (int)
  • SaleDate (date)
  • SaleAmount (decimal)

Unser Ziel ist es, die zukünftigen Umsätze für jeden Kunden vorherzusagen.

Beispiel-T-SQL-Skript zur Datenvorbereitung:

-- Erstellen einer temporären Tabelle für die aggregierten Verkaufsdaten
CREATE TABLE #AggregatedSales (
    CustomerID INT,
    SaleDate DATE,
    TotalSaleAmount DECIMAL(18, 2)
);

-- Aggregieren der Verkaufsdaten pro Kunde und Datum
INSERT INTO #AggregatedSales (CustomerID, SaleDate, TotalSaleAmount)
SELECT 
    CustomerID,
    SaleDate,
    SUM(SaleAmount) AS TotalSaleAmount
FROM 
    Sales
GROUP BY 
    CustomerID, SaleDate
ORDER BY 
    CustomerID, SaleDate;

-- Anzeigen der aggregierten Daten
SELECT * FROM #AggregatedSales;

Dieses Skript aggregiert die Verkaufsdaten pro Kunde und Datum, sodass wir eine Zeitreihe für jeden Kunden erhalten.


3. Vorhersagemodell mit Python erstellen

Nachdem wir die Daten in SQL Server vorbereitet haben, können wir Python verwenden, um ein Vorhersagemodell zu erstellen. Wir werden die Bibliothek pandas für die Datenmanipulation und statsmodels für die ARIMA-Modellierung verwenden.

Beispiel-Python-Skript zur Vorhersage:

import pandas as pd
import numpy as np
from statsmodels.tsa.arima.model import ARIMA
import pyodbc

# Verbindung zur SQL Server-Datenbank herstellen
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=dein_server;DATABASE=deine_datenbank;UID=dein_user;PWD=dein_passwort')

# Daten aus der temporären Tabelle abrufen
query = "SELECT CustomerID, SaleDate, TotalSaleAmount FROM #AggregatedSales"
df = pd.read_sql(query, conn)

# Funktion zur Vorhersage der Umsätze
def forecast_sales(customer_data, periods=12):
    model = ARIMA(customer_data['TotalSaleAmount'], order=(5,1,0))
    model_fit = model.fit()
    forecast = model_fit.forecast(steps=periods)
    return forecast

# Vorhersage für jeden Kunden erstellen
forecast_results = {}
for customer_id in df['CustomerID'].unique():
    customer_data = df[df['CustomerID'] == customer_id]
    forecast = forecast_sales(customer_data)
    forecast_results[customer_id] = forecast

# Ergebnisse anzeigen
for customer_id, forecast in forecast_results.items():
    print(f"Customer {customer_id} Forecast: {forecast}")

Dieses Skript verbindet sich mit der SQL Server-Datenbank, ruft die aggregierten Verkaufsdaten ab und erstellt für jeden Kunden eine Vorhersage der zukünftigen Umsätze.


4. Integration der Vorhersage in SQL Server

Nachdem wir die Vorhersagen in Python erstellt haben, können wir diese wieder in SQL Server integrieren, um sie für weitere Analysen oder Berichte zu verwenden.

Beispiel-T-SQL-Skript zur Speicherung der Vorhersagen:

-- Erstellen einer Tabelle für die Vorhersageergebnisse
CREATE TABLE SalesForecast (
    CustomerID INT,
    ForecastDate DATE,
    ForecastAmount DECIMAL(18, 2)
);

-- Einfügen der Vorhersageergebnisse in die Tabelle
INSERT INTO SalesForecast (CustomerID, ForecastDate, ForecastAmount)
VALUES
(1, '2023-11-01', 1500.00),
(1, '2023-12-01', 1600.00),
(2, '2023-11-01', 2000.00),
(2, '2023-12-01', 2100.00);
-- (Weitere Vorhersagen einfügen...)

-- Anzeigen der Vorhersageergebnisse
SELECT * FROM SalesForecast;

5. Visualisierung der Ergebnisse

Die Visualisierung der Vorhersageergebnisse ist ein wichtiger Schritt, um die Daten besser zu verstehen und zu interpretieren. Wir können Python-Bibliotheken wie matplotlib oder seaborn verwenden, um die Vorhersagen grafisch darzustellen.

Beispiel-Python-Skript zur Visualisierung:

import matplotlib.pyplot as plt

# Visualisierung der Vorhersageergebnisse
for customer_id, forecast in forecast_results.items():
    plt.plot(forecast, label=f'Customer {customer_id}')

plt.title('Sales Forecast')
plt.xlabel('Months')
plt.ylabel('Sales Amount')
plt.legend()
plt.show()

6. Fazit

Die Vorhersage von Kundenumsätzen ist ein mächtiges Werkzeug, das Unternehmen dabei helfen kann, zukünftige Trends zu antizipieren und strategische Entscheidungen zu treffen. Durch die Kombination von SQL Server und Python können wir eine robuste Lösung zur Datenvorbereitung, Modellierung und Visualisierung erstellen. Die Verwendung von ARIMA-Modellen ermöglicht es uns, präzise Vorhersagen zu treffen, die auf historischen Daten basieren.

Mit den in diesem Beitrag vorgestellten Skripten und Techniken können Sie Ihre eigenen Vorhersagemodelle erstellen und in Ihre bestehenden Datenpipelines integrieren. Probieren Sie es aus und sehen Sie, wie Sie Ihre Verkaufsstrategien optimieren können!