Lektion 4: Ausführen von Warenkorbvorhersagen
In dieser Lektion verwenden Sie die SELECT-DMX-Anweisung, um Vorhersagen auf Basis der Zuordnungsmodelle zu erstellen, die Sie in Lektion 2: Hinzufügen von Miningmodellen zur Market Basket-Miningstruktur erstellt haben. Eine Vorhersageabfrage wird unter Verwendung der DMX SELECT-Anweisung unter Hinzufügung einer PREDICTION JOIN-Klausel erstellt. Weitere Informationen zur Syntax einer Vorhersageverknüpfung finden Sie unter SELECT FROM <model> PREDICTION JOIN (DMX).
Die SELECT FROM <model> PREDICTION JOIN-Form der SELECT-Anweisung besteht aus drei Teilen:
Einer Liste der Miningmodellspalten und Vorhersagefunktionen, die im Resultset zurückgegeben werden. Diese Liste kann auch Eingabespalten aus den Quelldaten enthalten.
Eine Quellabfrage, die die zum Erstellen einer Vorhersage verwendeten Daten definiert. Wenn Sie beispielsweise zahlreiche Vorhersagen in einem Batch erstellen, kann die Quellabfrage eine Liste von Kunden abrufen.
Einer Zuordnung von Miningmodellspalten und Quelldaten. Wenn die Namen der Spalten übereinstimmen, können Sie die NATURAL PREDICTION JOIN-Syntax verwenden und auf die Spaltenzuordnungen verzichten.
Mithilfe von Vorhersagefunktionen lässt sich die Abfrage optimieren. Vorhersagefunktionen stellen zusätzliche Informationen bereit, z. B. die Wahrscheinlichkeit des Eintreffens einer Vorhersage oder die Unterstützung für die Vorhersage im Trainingsdataset. Weitere Informationen zu Vorhersagefunktionen finden Sie unter Funktionen (DMX).
Vorhersageabfragen können auch mit dem Generator für Vorhersageabfragen in Business Intelligence Development Studio erstellt werden. Weitere Informationen finden Sie unter Verwenden vom Generator für Vorhersageabfragen zum Erstellen von DMX-Vorhersageabfragen.
PREDICTION JOIN-Anweisung in einer SINGLETON-Vorhersageabfrage
Als erster Schritt wird unter Verwendung der SELECT FROM <model> PREDICTION JOIN-Syntax eine Singleton-Abfrage erstellt und ein einzelner Satz von Werten als Eingabe bereitgestellt. Es folgt ein allgemeines Beispiel für die SINGLETON-Anweisung:
SELECT <select list>
FROM [<mining model>]
[NATURAL] PREDICTION JOIN
(SELECT '<value>' AS [<column>],
(SELECT 'value' AS [<nested column>] UNION
SELECT 'value' AS [<nested column>] ...)
AS [<nested table>])
AS [<input alias>]
In der ersten Codezeile werden die Spalten des Miningmodells definiert, das die Abfrage zurückgibt und der Name des Miningmodells angegeben, mit dem die Vorhersage generiert wurde:
SELECT <select list> FROM [<mining model>]
In der nächsten Zeile des Codes wird der auszuführende Vorgang angegeben. Da Sie Werte für jede der Spalten angeben und die Namen genauso eingeben, dass sie mit dem Modell übereinstimmen, können Sie die NATURAL PREDICTION JOIN-Syntax verwenden. Wenn sich die Spaltennamen jedoch unterscheiden, müssen Sie Zuordnungen zwischen den Spalten im Modell und den Spalten in den neuen Daten angeben, indem Sie eine ON-Klausel hinzufügen.
[NATURAL] PREDICTION JOIN
Die nächsten Codezeilen definieren die Produkte im Einkaufswagen, die zum Vorhersagen zusätzlicher Produkte, die ein Kunde erwerben wird, verwendet werden:
(SELECT '<value>' AS [<column>],
(SELECT 'value' AS [<nested column>] UNION
SELECT 'value' AS [<nested column>] ...)
AS [<nested table>])
Lektionsaufgaben
Im Rahmen dieser Lektion führen Sie die folgenden Aufgaben aus:
Erstellen einer Abfrage, die anhand von Artikeln, die sich bereits im Einkaufswagen eines Kunden befinden, vorhersagt, welche anderen Artikel ein Kunde wahrscheinlich kaufen wird. Sie erstellen diese Abfrage mithilfe des Miningmodells sowie des MINIMUM_PROBABILITY-Standardwerts.
Erstellen einer Abfrage, die anhand von Artikeln, die sich bereits im Einkaufswagen eines Kunden befinden, vorhersagt, welche anderen Artikel ein Kunde wahrscheinlich kaufen wird. Diese Abfrage basiert auf einem anderen Modell, in dem MINIMUM_PROBABILITY auf 0,01 festgelegt wurde. Da der Standardwert für MINIMUM_PROBABILITY in den Zuordnungsmodellen 0,3 ist, sollte die Abfrage für dieses Modell mehr mögliche Artikel zurückgeben als die Abfrage des Standardmodells.
Erstellen einer Vorhersage durch Verwenden eines Modells mit dem MINIMUM_PROBABILITY-Standardwert
So erstellen Sie eine Zuordnungsabfrage
Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf die Instanz von Analysis Services, zeigen Sie auf Neue Abfrage, und klicken Sie dann auf DMX, um den Abfrage-Editor zu öffnen.
Kopieren Sie das Standardbeispiel der PREDICTION JOIN-Anweisung in die leere Abfrage.
Ersetzen Sie Folgendes:
<select list>
durch:
PREDICT([Default Association].[Products],INCLUDE_STATISTICS,3)
Sie könnten nur den Spaltennamen [Products] einschließen. Durch Verwenden der Predict (DMX)-Funktion können Sie jedoch die Anzahl der vom Algorithmus zurückgegebenen Produkte auf drei begrenzen. Sie können auch INCLUDE_STATISTICS verwenden. Damit werden der Unterstützungswert, die Wahrscheinlichkeit und die angepasste Wahrscheinlichkeit für jedes Produkt zurückgegeben. Mithilfe dieser statistischen Informationen können Sie die Genauigkeit der Vorhersage bewerten.
Ersetzen Sie Folgendes:
[<mining model>]
durch:
[Default Association]
Ersetzen Sie Folgendes:
(SELECT '<value>' AS [<column>], (SELECT 'value' AS [<nested column>] UNION SELECT 'value' AS [<nested column>] ...) AS [<nested table>])
durch:
(SELECT (SELECT 'Mountain Bottle Cage' AS [Model] UNION SELECT 'Mountain Tire Tube' AS [Model] UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t
Diese Anweisung verwendet die UNION-Anweisung, um drei Produkte anzugeben, die zusammen mit den vorhergesagten Produkten im Einkaufskorb enthalten sein müssen. Die Modell-Spalte in der SELECT-Anweisung entspricht der Modell-Spalte, die in der geschachtelten Products-Tabelle enthalten ist.
Die gesamte Anweisung sollte wie folgt aussehen:
SELECT PREDICT([Default Association].[Products],INCLUDE_STATISTICS,3) From [Default Association] NATURAL PREDICTION JOIN (SELECT (SELECT 'Mountain Bottle Cage' AS [Model] UNION SELECT 'Mountain Tire Tube' AS [Model] UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t
Klicken Sie im Menü Datei auf DMXQuery1.dmx speichern unter.
Wechseln Sie im Dialogfeld Speichern unter in den entsprechenden Ordner, und geben Sie der Datei den Namen Association Prediction.dmx.
Klicken Sie auf der Symbolleiste auf die Schaltfläche Ausführen.
Die Abfrage gibt eine Tabelle zurück, die drei Produkte enthält: HL Mountain Tire, Fender Set - Mountain und ML Mountain Tire. In der Tabelle werden diese zurückgegebenen Produkte in der Reihenfolge ihrer Wahrscheinlichkeit aufgeführt. Das zurückgegebene Produkt, dessen Wahrscheinlichkeit, zusammen mit den in der Abfrage angegebenen drei Produkten in den gleichen Warenkorb eingefügt zu werden, am höchsten ist, wird an der Spitze der Tabelle angezeigt. Die folgenden zwei Produkte besitzen die nächsthöhere Wahrscheinlichkeit, in den Warenkorb eingefügt zu werden. Die Tabelle enthält zudem statistische Informationen, die die Genauigkeit der Vorhersage beschreiben.
Erstellen einer Vorhersage durch Verwenden eines Modells mit dem MINIMUM_PROBABILITY-Wert 0,01
So erstellen Sie eine Zuordnungsabfrage
Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf die Instanz von Analysis Services, zeigen Sie auf Neue Abfrage, und klicken Sie auf DMX, um den Abfrage-Editor zu öffnen.
Kopieren Sie das Standardbeispiel der PREDICTION JOIN-Anweisung in die leere Abfrage.
Ersetzen Sie Folgendes:
<select list>
durch:
PREDICT([Modified Association].[Products],INCLUDE_STATISTICS,3)
Ersetzen Sie Folgendes:
[<mining model>]
durch:
[Modified Association]
Ersetzen Sie Folgendes:
(SELECT '<value>' AS [<column>], (SELECT 'value' AS [<nested column>] UNION SELECT 'value' AS [<nested column>] ...) AS [<nested table>])
durch:
(SELECT (SELECT 'Mountain Bottle Cage' AS [Model] UNION SELECT 'Mountain Tire Tube' AS [Model] UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t
Diese Anweisung verwendet die UNION-Anweisung, um drei Produkte anzugeben, die zusammen mit den vorhergesagten Produkten im Einkaufskorb enthalten sein müssen. Die [Model]-Spalte in der SELECT-Anweisung entspricht der Spalte, die in der geschachtelten Products-Tabelle enthalten ist.
Die gesamte Anweisung sollte wie folgt aussehen:
SELECT PREDICT([Modified Association].[Products],INCLUDE_STATISTICS,3) From [Modified Association] NATURAL PREDICTION JOIN (SELECT (SELECT 'Mountain Bottle Cage' AS [Model] UNION SELECT 'Mountain Tire Tube' AS [Model] UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t
Klicken Sie im Menü Datei auf DMXQuery1.dmx speichern unter.
Wechseln Sie im Dialogfeld Speichern unter in den entsprechenden Ordner, und geben Sie der Datei den Namen Modified Association Prediction.dmx.
Klicken Sie auf der Symbolleiste auf die Schaltfläche Ausführen.
Die Abfrage gibt eine Tabelle zurück, die drei Produkte enthält: HL Mountain Tire, Water Bottle und Fender Set - Mountain. In der Tabelle werden diese Produkte in der Reihenfolge ihrer Wahrscheinlichkeit aufgeführt. Das Produkt, das an der Spitze der Tabelle angezeigt wird, besitzt die höchste Wahrscheinlichkeit, zusammen mit den in der Abfrage angegebenen drei Produkten in den gleichen Warenkorb eingefügt zu werden. Die restlichen Produkte besitzen die nächsthöhere Wahrscheinlichkeit, in den Warenkorb eingefügt zu werden. Die Tabelle enthält zudem statistische Informationen, die die Genauigkeit der Vorhersage beschreiben.
Aus den Ergebnissen dieser Abfrage können Sie ablesen, dass der Wert des MINIMUM_PROBABILITY-Parameters Auswirkungen auf die von der Abfrage zurückgegebenen Ergebnisse hat.
Dies ist der letzte Schritt im Market Basket-Lernprogramm. Sie verfügen jetzt über einen Satz von Modellen, mit dem sich vorhersagen lässt, welche Produkte von Kunden möglicherweise gleichzeitig gekauft werden.
Informationen zum Verwenden von DMX in einem anderen Vorhersageszenario finden Sie unter Bike Buyer-Lernprogramm zur DMX-Abfragesprache.