Lektion 4: Ausführen von Warenkorbvorhersagen
In dieser Lektion verwenden Sie die DMX-Anweisung SELECT
, um Vorhersagen basierend auf den Zuordnungsmodellen zu erstellen, die Sie in Lektion 2: Hinzufügen von Miningmodellen zur Market Basket Mining-Struktur erstellt haben. Eine Vorhersageabfrage wird unter Verwendung der DMX SELECT
-Anweisung unter Hinzufügung einer PREDICTION JOIN
-Klausel erstellt. Weitere Informationen zur Syntax eines Vorhersagebeitritts finden Sie unter SELECT FROM <model> PREDICTION JOIN (DMX).
Das FORMULAR SELECT FROM <model> PREDICTION JOIN 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 Functions (DMX).
Sie können auch den Generator für Vorhersageabfragen in SQL Server Data Tools (SSDT) verwenden, um Vorhersageabfragen zu erstellen.
PREDICTION JOIN-Anweisung in einer SINGLETON-Vorhersageabfrage
Der erste Schritt besteht darin, eine Singleton-Abfrage zu erstellen, indem Sie die SYNTAX SELECT FROM <model> PREDICTION JOIN verwenden und einen einzelnen Satz von Werten als Eingabe angeben. 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 die Spaltennamen jedoch anders lauten, 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 Sie eine Abfrage, die voraussagt, welche anderen Elemente ein Kunde wahrscheinlich kaufen wird, basierend auf Elementen, die bereits im Warenkorb vorhanden sind. Sie erstellen diese Abfrage mithilfe des Miningmodells mit dem Standard-MINIMUM_PROBABILITY.
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 Zuordnungsmodellen 0.3 ist, sollte die Abfrage für dieses Modell mehr mögliche Elemente als die Abfrage für das Standardmodell zurückgeben.
Erstellen einer Vorhersage durch Verwenden eines Modells mit dem MINIMUM_PROBABILITY-Standardwert
So erstellen Sie eine Zuordnungsabfrage
Klicken Sie in Objekt-Explorer mit der rechten Maustaste auf die instance von Analysis Services, zeigen Sie auf Neue Abfrage, und klicken Sie dann auf DMX, um die 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önnen nur den Spaltennamen [Products] einschließen, aber mithilfe der Funktion Predict (DMX) können Sie die Anzahl der vom Algorithmus zurückgegebenen Produkte auf drei beschränken. 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 derSELECT
-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.
Navigieren Sie im Dialogfeld Speichern unter zum entsprechenden Ordner, und nennen Sie die Datei
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 in Objekt-Explorer mit der rechten Maustaste auf die instance von Analysis Services, zeigen Sie auf Neue Abfrage, und klicken Sie dann auf DMX, um die 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 derSELECT
-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.
Navigieren Sie im Dialogfeld Speichern unter zum entsprechenden Ordner, und nennen Sie die Datei
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 auch Statistiken, die die Genauigkeit der Vorhersage beschreiben.
Anhand der Ergebnisse dieser Abfrage können Sie sehen, dass der Wert des MINIMUM_PROBABILITY-Parameters die von der Abfrage zurückgegebenen Ergebnisse beeinflusst.
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 DMX Tutorial.
Weitere Informationen
Beispiele für Zuordnungsmodellabfragen
Schnittstellen für Data Mining-Abfragen