Treffen von Vorhersagen mit dem gemittelten Forecasting-Modell (Data Mining-Lernprogramm für Fortgeschrittene)

In einer früheren Aufgabe in dieser Lektion haben Sie mit dem Generator für Vorhersageabfragen eine Abfrage zur Generierung von Standardvorhersagen für das Forecasting-Modell erstellt. In dieser Aufgabe lernen Sie, eine Vorhersageabfrage zu erstellen, mit der das weltweite Vertriebsmodell auf eine einzelnen Region angewendet wird.

Verwenden von Ersetzungsdaten in einer Zeitreihenvorhersage

Die PredictTimeSeries (DMX)-Funktion in SQL Server 2008 verfügt über zwei neue Parameter (EXTEND_MODEL_CASES und REPLACE_MODEL_CASES), die es Ihnen ermöglichen, Zeitreihenvorhersagen anzupassen.

  • Mit EXTEND_MODEL_CASES können Sie einem vorhandenen Modell Daten hinzufügen und Vorhersagen anhand der neu hinzugefügten Daten treffen.

  • Mit REPLACE_MODEL_CASES können Sie die Datenreihe, die zum Erstellen des Modells verwendet wurde, durch Daten aus einer anderen Reihe ersetzen.

In diesem Szenario verwenden Sie REPLACE_MODEL_CASES. Zuvor müssen Sie jedoch eine Datenquellensicht einrichten, die nur die Ersetzungsdaten enthält. Ersetzungsdaten bezeichnen die Daten für die einzelnen Reihen. Nachdem Sie die Datenquellensicht mit den Ersetzungsdaten erstellt haben, können Sie eine Vorhersageabfrage erstellen, die das allgemeine Modell auf die Ersetzungsdaten anwendet.

So erstellen Sie die Datenquellensicht mit den Ersetzungsdaten

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Datenquellensichten und wählen Sie dann Neue Datenquellensicht aus.

  2. Treffen Sie im Datenquellensicht-Assistenten die folgende Auswahl:

    Datenquelle: Adventure Works DW2008R2

    Tabellen und Sichten auswählen: keine Auswahl

    Name: T1000 Pacific Region

  3. Klicken Sie auf Fertig stellen.

  4. Klicken Sie mit der rechten Maustaste auf die leere Entwurfsoberfläche für T1000 Pacific Region.dsv und wählen Sie dann Neue benannte Abfrage aus.

    Das Dialogfeld Benannte Abfrage erstellen wird geöffnet. Geben Sie den Namen erneut ein und fügen Sie die folgende Beschreibung hinzu:

    Name: T1000 Pacific Region

    Beschreibung: vTimeSeries nach Region und Modell filtern

  5. Geben Sie im Textbereich folgende Abfrage ein:

    SELECT ReportingDate, ModelRegion, Quantity, Amount
    FROM dbo.vTimeSeries
    WHERE (ModelRegion = N'T1000 Pacific')
    
    HinweisHinweis

    Sie können die Abfrage auch mit dem Abfrage-Generator erstellen; die Eingabe des Abfragetexts nimmt jedoch weniger Zeit in Anspruch. Nachdem Sie den Abfragetext eingegeben haben, können Sie auf einen anderen Bereich klicken, um die Analyse des Abfragetexts und das Erstellen der Abfrage aus den unterstützenden Tabellen anzuzeigen. Sie können den Abfragetext kopieren und als Textdatei speichern, um ihn für andere Datenreihen wiederzuverwenden.

  6. Klicken Sie auf OK..

  7. Klicken Sie in der Entwurfsoberfläche der Datenquellensicht mit der rechten Maustaste auf T1000 Pacific und wählen Sie dann Daten durchsuchen aus, um zu überprüfen, ob die Daten korrekt gefiltert wurden.

Sie erstellen nun wie gewohnt eine Vorhersage für eine Zeitreihenfunktion, fügen jedoch den REPLACE_MODEL_CASES-Parameter hinzu, um anzugeben, dass die Datenreihe, auf der die Vorhersage basiert, durch die neuen Daten ersetzt werden soll, die Sie bereitgestellt haben. Außerdem müssen Sie die Zuordnung zwischen dem Miningmodell und der Eingabetabelle angeben.

So erstellen Sie die Vorhersageabfrage und stellen Ersetzungsdaten bereit

  1. Doppelklicken Sie auf die Struktur AllRegions, um das Modell ggf. zu öffnen, und klicken Sie dann im Data Mining-Designer auf die Registerkarte Miningmodellvorhersage.

  2. Im Bereich Miningmodell sollte das Modell AllRegions bereits ausgewählt sein. Wenn dies nicht der Fall ist, klicken Sie auf Modell auswählen und wählen Sie dann das Modell AllRegions aus.

  3. Klicken Sie im Bereich Eingabetabelle(n) auswählen auf Falltabelle auswählen.

  4. Ändern Sie im Dialogfeld Tabelle auswählen die Datenquelle in T1000 Pacific Region und klicken Sie dann auf OK.

    Die Datenquellensicht, die Sie erstellt haben, wird als Tabelle mit Spalten angezeigt. Es kann sein, dass einige Spalten bereits den Spalten des Miningmodells zugeordnet sind.

  5. Klicken Sie mit der rechten Maustaste auf die Joinlinie zwischen dem Miningmodell und den Eingabedaten, und wählen Sie Verbindungen ändern aus.

  6. Vergewissern Sie sich, dass im Dialogfeld Zuordnung bearbeiten die ReportingDate-Spalte im Miningmodell der ReportingDate-Spalte in den Eingabedaten zugeordnet ist.

  7. Klicken Sie im Dialogfeld Zuordnung bearbeiten in der Zeile für AvgQty unter Tabellenspalte und wählen Sie dann T1000 Pacific.Quantity aus. Klicken Sie auf OK.

    In diesem Schritt wird die Spalte mit der aggregierten Menge im allgemeinen Modell der Mengenspalte in der Ersetzungsdatenreihe zugeordnet.

  8. Klicken Sie im Raster auf die erste leere Zeile unter Quelle und wählen Sie dann AllRegions aus. Wählen Sie in der Spalte Feld den Eintrag Region aus und geben Sie in der Spalte Alias die Zeichenfolge Model Used ein.

    In diesem Schritt wird den Ergebnissen eine Spalte hinzugefügt, der Sie die Vorhersagen aus dem allgemeinen Modell entnehmen können.

  9. Klicken Sie auf eine neue leere Zeile und wählen Sie unter Quelle die Option Benutzerdefinierter Ausdruck aus. Geben Sie in der Spalte Alias die Zeichenfolge ModelRegion ein. Geben Sie in der Spalte Kriterium/Argument die Zeichenfolge 'T1000 Pacific' ein.

    In diesem Schritt wird den Ergebnissen eine Bezeichnung hinzugefügt, der Sie entnehmen können, auf welche Reihe sich die Vorhersage bezieht.

  10. Klicken Sie auf eine leere Zeile und wählen Sie unter Quelle die Option Vorhersagefunktion aus. Wählen Sie in der Spalte Feld den Eintrag PredictTimeSeries aus. Geben Sie in der Spalte Alias die Zeichenfolge Predicted Values ein.

  11. Ziehen Sie das Feld AvgQty aus dem Bereich Miningmodell in die Spalte Kriterium/Argument.

  12. Geben Sie in der Spalte Kriterium/Argument folgenden Text nach dem Namen des Felds ein: ,5, REPLACE_MODEL_CASES.

    Der vollständige Text im Feld Kriterium/Argument sollte wie folgt lauten: [AllRegions].[AvgQty],5,REPLACE_MODEL_CASES

  13. Klicken Sie auf Ergebnisse.

Anzeigen der Ergebnisse

Die Vorhersageabfrage gibt ähnliche Ergebnisse wie in der folgenden Tabelle zurück:

Model Used

ModelRegion

Predicted Quantity

All Regions

T-1000 Pacific

$TIMEAvg Qty
7/25/2008 12:00:00 AM68
8/25/2008 12:00:00 AM52
9/25/2008 12:00:00 AM48
10/25/2008 12:00:00 AM56
11/25/2008 12:00:00 AM44

Wenn Sie das allgemeine Modell auf eine andere Datenreihe anwenden möchten, beispielsweise auf das Modell T1000 in Nordamerika, müssen Sie eine neue Abfrage für die entsprechenden Reihen erstellen. Sie müssen den Vorgang jedoch nicht erneut von vorne beginnen, sondern können die erstellte DMX-Anweisung bearbeiten und die Eingaben auf andere Weise filtern. So stellt die folgende DMX-Anweisung die Abfrage dar, die Sie gerade erstellt haben:

SELECT
  ([All Regions].[Region]) as [Model Used],
  ( 'T-1000 Pacific') as [ModelRegion],
  (PredictTimeSeries([All Regions].[Avg Qty],5, REPLACE_MODEL_CASES)) as [Predicted Quantity]
FROM
  [All Regions]
PREDICTION JOIN
  OPENQUERY([Adventure Works DW2008R2],
    'SELECT
      [ReportingDate]
    FROM
      (SELECT        ReportingDate, ModelRegion, Quantity, Amount
FROM            dbo.vTimeSeries
WHERE        (ModelRegion = N''T1000 Pacific'')) as [T1000 Pacific]
    ') AS t
ON
  [All Regions].[Reporting Date] = t.[ReportingDate] AND
   [All Regions].[Avg Qty] = t.[Quantity]

Um diese auf ein anderes Modell anzuwenden, bearbeiten Sie den Abfrageausdruck und ersetzen die Filterbedingung sowie die Bezeichnungen für die einzelnen Ergebnisse. Wenn Sie beispielsweise die Filterbedingungen und die Spaltenbezeichnungen ändern, indem Sie "Pacific" durch "North America" ersetzen, erhalten Sie Vorhersagen für das T1000-Produkt in Nordamerika auf Basis des allgemeinen Modells.

Model Used

ModelRegion

Predicted Quantity

All Regions

T-1000 North America

$TIMEAvg Qty
7/25/2008 12:00:00 AM103
8/25/2008 12:00:00 AM84
9/25/2008 12:00:00 AM79
10/25/2008 12:00:00 AM85
11/25/2008 12:00:00 AM68