Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser Lektion verwenden Sie die SELECT FROM <Modell> VORHERSAGEZUSAMMENFÜHRUNG (DMX)-Variante der SELECT-Anweisung, um zwei verschiedene Arten von Vorhersagen basierend auf dem Entscheidungsbaum-Modell zu erstellen, das Sie in Lektion 2: Hinzufügen von Miningmodellen zur Association Mining Structure erstellt haben. Diese Vorhersagetypen werden unten definiert.
Singleton-Abfrage
Verwenden Sie eine Singleton-Abfrage, um Ad-hoc-Werte bereitzustellen, wenn Vorhersagen vorgenommen werden. Sie können z. B. ermitteln, ob ein einzelner Kunde ein Fahrradkäufer sein wird, indem Sie Eingaben an die Abfrage übergeben, z. B. die Wegstrecke, die Ortsvorwahl oder die Anzahl der Kinder des Kunden. Die Singleton-Abfrage gibt einen Wert zurück, der angibt, wie wahrscheinlich die Person ein Fahrrad basierend auf diesen Eingaben kaufen soll.
Batchabfrage
Verwenden Sie eine Batchabfrage, um zu ermitteln, wer in einer Tabelle potenzieller Kunden wahrscheinlich ein Fahrrad kauft. Wenn Ihre Marketingabteilung Ihnen beispielsweise eine Liste von Kunden- und Kundenattributen bereitstellt, können Sie mithilfe einer Batchvorhersage ermitteln, wer aus der Tabelle wahrscheinlich ein Fahrrad kauft.
Die SELECT FROM <Model> PREDICTION JOIN (DMX) Form der SELECT-Anweisung enthält drei Teile:
Eine Liste der Miningmodellspalten und Vorhersagefunktionen, die in den Ergebnissen zurückgegeben werden. Die Ergebnisse können auch Eingabespalten aus den Quelldaten enthalten.
Die Quellabfrage, die die Daten definiert, die zum Erstellen einer Vorhersage verwendet werden. In einer Batchabfrage könnte dies beispielsweise eine Liste von Kunden sein.
Eine Zuordnung zwischen den Spalten des Miningmodells und den Quelldaten. Wenn diese Namen übereinstimmen, können Sie NATURAL-Syntax verwenden und die Spaltenzuordnungen auslassen.
Sie können die Abfrage mithilfe von Vorhersagefunktionen weiter verbessern. Vorhersagefunktionen bieten zusätzliche Informationen, z. B. die Wahrscheinlichkeit einer Vorhersage, die aufgetreten ist, und stellen Unterstützung für die Vorhersage im Schulungsdatensatz bereit. Weitere Informationen zu Vorhersagefunktionen finden Sie unter Funktionen (DMX).
Die Vorhersagen in diesem Lernprogramm basieren auf der Tabelle "ProspectiveBuyer" in der AdventureWorksDW2012-Beispieldatenbank . Die Tabelle "ProspectiveBuyer" enthält eine Liste der potenziellen Kunden und deren zugehörige Merkmale. Die Kunden in dieser Tabelle sind unabhängig von den Kunden, die zum Erstellen des Entscheidungsstruktur-Mining-Modells verwendet wurden.
Sie können Vorhersagen auch mithilfe des Vorhersageabfrage-Generators in SQL Server Data Tools (SSDT) erstellen.
Lektionsaufgaben
In dieser Lektion führen Sie die folgenden Aufgaben aus:
Erstellen Sie eine Singleton-Abfrage, um festzustellen, ob ein bestimmter Kunde wahrscheinlich ein Fahrrad kauft.
Erstellen Sie eine Batchabfrage, um zu ermitteln, welche Kunden in einer Kundentabelle aufgelistet sind und wahrscheinlich ein Fahrrad kaufen werden.
Singleton-Abfrage
Der erste Schritt besteht darin, die SELECT FROM <Modell> PREDICTION JOIN (DMX) in einer Singleton-Vorhersageabfrage zu verwenden. Ein allgemeines Beispiel des Singleton-Ausdrucks ist:
SELECT <select list> FROM [<mining model name>]
NATURAL PREDICTION JOIN
(SELECT '<value>' AS [<column>], ...)
AS [<input alias>]
Die erste Zeile des Codes definiert die Spalten aus dem Miningmodell, das von der Abfrage zurückgegeben werden soll, und gibt das Miningmodell an, das zum Generieren der Vorhersage verwendet wird:
SELECT <select list> FROM [<mining model name>]
In den nächsten Codezeilen werden die Merkmale des Kunden definiert, die Sie zum Erstellen einer Vorhersage verwenden:
NATURAL PREDICTION JOIN
(SELECT '<value>' AS [<column>], ...)
AS [<input alias>]
ORDER BY <expression>
Wenn Sie NATURAL PREDICTION JOIN angeben, gleicht der Server jede Spalte aus dem Modell einer Spalte aus der Eingabe basierend auf Spaltennamen ab. Wenn Spaltennamen nicht übereinstimmen, werden die Spalten ignoriert.
So erstellen Sie eine Singleton-Vorhersageabfrage
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.
Der Abfrage-Editor wird geöffnet und enthält eine neue, leere Abfrage.
Kopieren Sie das generische Beispiel der Singleton-Anweisung in die leere Abfrage.
Ersetzen Sie Folgendes:
<select list>Durch:
[Bike Buyer] AS Buyer, PredictHistogram([Bike Buyer]) AS StatisticsDie AS-Anweisung wird verwendet, um Spalten, die von der Abfrage zurückgegeben werden, einen Alias zuzuweisen. Die PredictHistogram-Funktion gibt Statistiken über die Vorhersage zurück, einschließlich der Wahrscheinlichkeit und der Unterstützung. Weitere Informationen zu den Funktionen, die in einer Vorhersageanweisung verwendet werden können, finden Sie unter Functions (DMX).
Ersetzen Sie Folgendes:
[<mining model>]Durch:
[Decision Tree]Ersetzen Sie Folgendes:
(SELECT '<value>' AS [<column name>], ...) AS tDurch:
(SELECT 35 AS [Age], '5-10 Miles' AS [Commute Distance], '1' AS [House Owner Flag], 2 AS [Number Cars Owned], 2 AS [Total Children]) AS tDie vollständige Anweisung sollte nun wie folgt aussehen:
SELECT [Bike Buyer] AS Buyer, PredictHistogram([Bike Buyer]) AS Statistics FROM [Decision Tree] NATURAL PREDICTION JOIN (SELECT 35 AS [Age], '5-10 Miles' AS [Commute Distance], '1' AS [House Owner Flag], 2 AS [Number Cars Owned], 2 AS [Total Children]) AS tKlicken Sie im Menü Datei auf Speichern unter DMXQuery1.dmx.
Navigieren Sie im Dialogfeld " Speichern unter " zum entsprechenden Ordner, und benennen Sie die Datei
Singleton_Query.dmx.Klicken Sie auf der Symbolleiste auf die Schaltfläche "Ausführen ".
Die Abfrage gibt eine Vorhersage darüber zurück, ob ein Kunde mit den angegebenen Merkmalen ein Fahrrad kauft, sowie Statistiken zu dieser Vorhersage.
Batchabfrage
Der nächste Schritt besteht darin, die SELECT FROM < Modell > VORHERSAGE JOIN (DMX) in einer Batchvorhersageabfrage zu verwenden. Nachfolgend sehen Sie ein generisches Beispiel für eine Batch-Anweisung:
SELECT TOP <number> <select list>
FROM [<mining model name>]
PREDICTION JOIN
OPENQUERY([<datasource>],'<SELECT statement>')
AS [<input alias>]
ON <on clause, mapping,>
WHERE <where clause, boolean expression,>
ORDER BY <expression>
Wie in der Singleton-Abfrage definieren die ersten beiden Zeilen des Codes die Spalten aus dem Miningmodell, das die Abfrage zurückgibt, sowie den Namen des Miningmodells, das zum Generieren der Vorhersage verwendet wird. Die TOP <Nummer>-Anweisung gibt an, dass die Abfrage nur die Anzahl oder die durch <Nummer> angegebene Anzahl von Ergebnissen zurückgibt.
Die nächsten Zeilen des Codes definieren die Quelldaten, auf denen die Vorhersagen basieren:
OPENQUERY([<datasource>],'<SELECT statement>')
AS [<input alias>]
Sie haben mehrere Optionen für die Methode zum Abrufen der Quelldaten, aber in diesem Lernprogramm verwenden Sie OPENQUERY. Weitere Informationen zu den verfügbaren Optionen finden Sie in <der Quelldatenabfrage>.
Die nächste Zeile definiert die Zuordnung zwischen den Quellspalten im Miningmodell und den Spalten in den Quelldaten:
ON <column mappings>
Die WHERE-Klausel filtert die ergebnisse, die von der Vorhersageabfrage zurückgegeben werden:
WHERE <where clause, boolean expression,>
Die letzte und optionale Zeile des Codes gibt die Spalte an, nach der die Ergebnisse sortiert werden:
ORDER BY <expression> [DESC|ASC]
Verwenden Sie ORDER BY in Kombination mit der TOP-Nummer-Anweisung<>, um die zurückgegebenen Ergebnisse zu filtern. In dieser Vorhersage geben Sie beispielsweise die zehn besten Fahrradkäufer zurück, sortiert nach der Wahrscheinlichkeit, dass die Vorhersage korrekt ist. Sie können mit der Syntax [DESC|ASC] die Reihenfolge steuern, in der die Ergebnisse angezeigt werden.
So erstellen Sie eine Batchvorhersageabfrage
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.
Der Abfrage-Editor wird geöffnet und enthält eine neue, leere Abfrage.
Kopieren Sie das generische Beispiel der Batch-Anweisung in die leere Abfrage.
Ersetzen Sie Folgendes:
<select list>Durch:
SELECT TOP 10 t.[LastName], t.[FirstName], [Decision Tree].[Bike Buyer], PredictProbability([Bike Buyer])Die TOP 10-Klausel gibt an, dass nur die zehn top-Ergebnisse von der Abfrage zurückgegeben werden. Die ORDER BY-Anweisung in dieser Abfrage sortiert die Ergebnisse nach der Wahrscheinlichkeit, dass die Vorhersage korrekt ist, sodass nur die zehn wahrscheinlichsten Ergebnisse zurückgegeben werden.
Ersetzen Sie den folgenden Platzhalter:
[<mining model>]Mit dem Namen des Modells:
[Decision Tree]Ersetzen Sie die folgende generische OPENQUERY-Anweisung:
OPENQUERY([<datasource>],'<SELECT statement>')Mit einem Ausdruck, der auf das aktuelle Adventureworks-Datenlager verweist, wie zum Beispiel:
OPENQUERY([Adventure Works DW 2014], 'SELECT [LastName], [FirstName], [MaritalStatus], [Gender], [YearlyIncome], [TotalChildren], [NumberChildrenAtHome], [Education], [Occupation], [HouseOwnerFlag], [NumberCarsOwned] FROM [dbo].[ProspectiveBuyer] ') AS tErsetzen Sie die folgende generische Syntax:
<ON clause, mapping,> WHERE <where clause, boolean expression,> ORDER BY <expression>Mit den Spaltenzuordnungen, die für dieses Modell und eingabedatensatz erforderlich sind:
[Decision Tree].[Marital Status] = t.[MaritalStatus] AND [Decision Tree].[Gender] = t.[Gender] AND [Decision Tree].[Yearly Income] = t.[YearlyIncome] AND [Decision Tree].[Total Children] = t.[TotalChildren] AND [Decision Tree].[Number Children At Home] = t.[NumberChildrenAtHome] AND [Decision Tree].[Education] = t.[Education] AND [Decision Tree].[Occupation] = t.[Occupation] AND [Decision Tree].[House Owner Flag] = t.[HouseOwnerFlag] AND [Decision Tree].[Number Cars Owned] = t.[NumberCarsOwned] WHERE [Decision Tree].[Bike Buyer] =1 ORDER BY PredictProbability([Bike Buyer]) DESCGeben Sie
DESCan, um die Ergebnisse mit der höchsten Wahrscheinlichkeit zuerst auflisten zu können.Die vollständige Anweisung sollte nun wie folgt aussehen:
SELECT TOP 10 t.[LastName], t.[FirstName], [Decision Tree].[Bike Buyer], PredictProbability([Bike Buyer]) FROM [Decision Tree] PREDICTION JOIN OPENQUERY([Adventure Works DW 2014], 'SELECT [LastName], [FirstName], [MaritalStatus], [Gender], [YearlyIncome], [TotalChildren], [NumberChildrenAtHome], [Education], [Occupation], [HouseOwnerFlag], [NumberCarsOwned] FROM [dbo].[ProspectiveBuyer] ') AS t ON [Decision Tree].[Marital Status] = t.[MaritalStatus] AND [Decision Tree].[Gender] = t.[Gender] AND [Decision Tree].[Yearly Income] = t.[YearlyIncome] AND [Decision Tree].[Total Children] = t.[TotalChildren] AND [Decision Tree].[Number Children At Home] = t.[NumberChildrenAtHome] AND [Decision Tree].[Education] = t.[Education] AND [Decision Tree].[Occupation] = t.[Occupation] AND [Decision Tree].[House Owner Flag] = t.[HouseOwnerFlag] AND [Decision Tree].[Number Cars Owned] = t.[NumberCarsOwned] WHERE [Decision Tree].[Bike Buyer] =1 ORDER BY PredictProbability([Bike Buyer]) DESCKlicken Sie im Menü Datei auf Speichern unter DMXQuery1.dmx.
Navigieren Sie im Dialogfeld " Speichern unter " zum entsprechenden Ordner, und benennen Sie die Datei
Batch_Prediction.dmx.Klicken Sie auf der Symbolleiste auf die Schaltfläche "Ausführen ".
Die Abfrage gibt eine Tabelle zurück, die Kundennamen enthält, eine Vorhersage, ob jeder Kunde ein Fahrrad kauft, und die Wahrscheinlichkeit der Vorhersage.
Dies ist der letzte Schritt im Bike Buyer-Lernprogramm. Sie verfügen jetzt über eine Reihe von Miningmodellen, mit denen Sie Ähnlichkeiten zwischen Ihren Kunden erkunden und vorhersagen können, ob potenzielle Kunden ein Fahrrad kaufen werden.
Wenn Sie erfahren möchten, wie Sie DMX in einem Market Basket-Szenario verwenden, lesen Sie das Market Basket DMX Tutorial.