SELECT FROM <MODEL> PREDICTION JOIN (DMX)

Gilt für: SQL Server Analysis Services

Verwendet ein Miningmodell dazu, die Status von Spalten vorherzusagen, die zu einer externen Datenquelle gehören. Die PREDICTION JOIN-Anweisung gleicht jeden Fall aus der Quellabfrage mit dem Modell ab.

Syntax

  
SELECT [FLATTENED] [TOP <n>] <select expression list>   
FROM <model> | <sub select> [NATURAL] PREDICTION JOIN   
<source data query> [ON <join mapping list>]   
[WHERE <condition expression>]  
[ORDER BY <expression> [DESC|ASC]]  

Argumente

n
Optional. Eine ganze Zahl, die angibt, wie viele Zeilen zurückgegeben werden sollen.

Ausdrucksliste auswählen
Eine durch Trennzeichen getrennte Liste mit Spaltenbezeichnern und Ausdrücken, die aus dem Miningmodell abgeleitet sind.

model
Ein Modellbezeichner.

sub select
Eine eingebettete SELECT-Anweisung.

Quelldatenabfrage
Die Quellabfrage.

Join-Zuordnungsliste
Optional. Ein logischer Ausdruck, in dem Spalten aus dem Modell mit Spalten aus der Quellabfrage verglichen werden.

Bedingungsausdruck
Optional. Eine Bedingung, die die Werte einschränkt, die für die Spaltenliste zurückgegeben werden.

expression
Optional. Ein Ausdruck, der einen Skalarwert zurückgibt.

Bemerkungen

Die ON-Klausel definiert die Zuordnung zwischen den Spalten aus der Quellabfrage und den Spalten aus dem Miningmodell. Diese Zuordnung wird verwendet, um Spalten aus der Quellabfrage an Spalten im Miningmodell weiterzuleiten, sodass die Spalten als Eingaben zum Erstellen der Vorhersagen verwendet werden können. Spalten in der Verknüpfungszuordnungsliste>< werden mithilfe eines Gleichheitszeichens (=) verknüpft, wie im folgenden Beispiel gezeigt:

[MiningModel].ColumnA = [source data query].Column1 AND   
[MiningModel].ColumnB = [source data query].Column2 AND  
...  

Wenn Sie in der ON-Klausel eine geschachtelte Tabelle binden, müssen Sie die Schlüsselspalte mit Nichtschlüsselspalten verknüpfen, damit der Algorithmus ermitteln kann, zu welchem Fall der Datensatz der geschachtelten Spalte gehört.

Die Quellabfrage für den PREDICTION JOIN kann eine Tabellen- oder eine SINGLETON-Abfrage sein.

Sie können Vorhersagefunktionen angeben, die keinen Tabellenausdruck in der <Auswahlausdrucksliste> und im Bedingungsausdruck>< zurückgeben.

NATURAL PREDICTION JOIN ordnet automatisch Spaltennamen aus der Quellabfrage zu, die den Spaltennamen im Modell entsprechen. Wenn Sie NATURAL PREDICTION verwenden, können Sie die ON-Klausel weglassen.

Die WHERE-Bedingung kann nur auf vorhersagbare Spalten oder verknüpfte Spalten angewendet werden.

Die ORDER BY-Klausel lässt nur eine einzelne Spalte als Argument zu, d. h. Sie können nicht nach mehreren Spalten sortieren.

Beispiel 1: SINGLETON-Abfrage

Im folgenden Beispiel wird erläutert, wie eine Abfrage erstellt wird, die in Echtzeit vorhersagt, ob eine bestimmte Person ein Fahrrad kauft. In dieser Abfrage werden die Daten nicht in einer Tabelle oder einer anderen Datenquelle gespeichert, sondern direkt in die Abfrage eingegeben. Die Person in der Abfrage hat folgende Merkmale:

  • 35 Jahre alt

  • Besitzt ein Haus

  • Besitzt zwei Autos

  • Hat zwei Kinder, die zu Hause leben

Unter Verwendung des TM Decision Tree-Miningmodells und der bekannten Merkmale des Antragstellers gibt die Abfrage einen booleschen Wert zurück, der beschreibt, ob die Person das Fahrrad gekauft hat, und eine Reihe von tabellarischen Werten, die von der PredictHistogram -Funktion (DMX) zurückgegeben werden, die beschreiben, wie die Vorhersage getroffen wurde.

SELECT  
  [TM Decision Tree].[Bike Buyer],  
  PredictHistogram([Bike Buyer])  
FROM  
  [TM 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 t  

Beispiel 2: Verwenden von OPENQUERY

Im folgenden Beispiel wird gezeigt, wie Eine Batchvorhersageabfrage mithilfe einer Liste potenzieller Kunden erstellt wird, die in einem externen Dataset gespeichert sind. Da die Tabelle Teil einer Datenquellensicht ist, die für eine instance von Analysis Services definiert wurde, kann die Abfrage OPENQUERY verwenden, um die Daten abzurufen. Da sich die Namen der Spalten in der Tabelle von denen im Miningmodell unterscheiden, muss die ON-Klausel verwendet werden, um die Spalten in der Tabelle den Spalten im Modell zuzuordnen.

Die Abfrage gibt Folgendes zurück: den Vor- und Nachnamen jeder Person in der Tabelle sowie eine boolesche Spalte, die angibt, ob die Personen voraussichtlich ein Fahrrad kauften, dabei bedeutet 0 „wird vermutlich kein Fahrrad kaufen“ und 1 „wird vermutlich ein Fahrrad kaufen“. Die letzte Spalte enthält die Wahrscheinlichkeit für das vorhergesagte Ergebnis.

SELECT  
  t.[LastName],  
  t.[FirstName],  
  [TM Decision Tree].[Bike Buyer],  
  PredictProbability([Bike Buyer])  
From  
  [TM Decision Tree]  
PREDICTION JOIN  
  OPENQUERY([Adventure Works DW Multidimensional 2012],  
    'SELECT  
      [LastName],  
      [FirstName],  
      [MaritalStatus],  
      [Gender],  
      [YearlyIncome],  
      [TotalChildren],  
      [NumberChildrenAtHome],  
      [Education],  
      [Occupation],  
      [HouseOwnerFlag],  
      [NumberCarsOwned]  
    FROM  
      [dbo].[ProspectiveBuyer]  
    ') AS t  
ON  
  [TM Decision Tree].[Marital Status] = t.[MaritalStatus] AND  
  [TM Decision Tree].[Gender] = t.[Gender] AND  
  [TM Decision Tree].[Yearly Income] = t.[YearlyIncome] AND  
  [TM Decision Tree].[Total Children] = t.[TotalChildren] AND  
  [TM Decision Tree].[Number Children At Home] = t.[NumberChildrenAtHome] AND  
  [TM Decision Tree].[Education] = t.[Education] AND  
  [TM Decision Tree].[Occupation] = t.[Occupation] AND  
  [TM Decision Tree].[House Owner Flag] = t.[HouseOwnerFlag] AND  
  [TM Decision Tree].[Number Cars Owned] = t.[NumberCarsOwned]  

Um das Dataset auf die Kunden zu beschränken, die voraussichtlich ein Fahrrad kaufen werden, und um die Liste anschließend nach Kundennamen zu sortieren, können Sie dem vorstehenden Beispiel eine WHERE-Klausel und eine ORDER BY-Klausel hinzufügen.

WHERE [BIKE Buyer]  
ORDER BY [LastName] ASC  

Beispiel 3: Vorhersagen von Zuordnungen

Das folgende Beispiel zeigt, wie Sie eine Vorhersage mithilfe eines Modells erstellen, das aus dem Microsoft Association-Algorithmus erstellt wird. Vorhersagen über ein Zuordnungsmodell können verwendet werden, um zugehörige Produkte zu empfehlen. Die folgende Abfrage gibt beispielsweise die drei Produkte zurück, die höchstwahrscheinlich zusammen gekauft werden:

  • Mountain Bottle Cage

  • Mountain Tire Tube

  • Mountain-200

Die Predict-Funktion (DMX) ist polymorph und kann mit allen Modelltypen verwendet werden. Sie verwenden den Wert3 als Argument für die Funktion, um die Anzahl der Elemente zu begrenzen, die von der Abfrage zurückgegeben werden. Die SELECT-Liste , die auf die NATURAL PREDICTION JOIN-Klausel folgt, enthält die Werte, die als Eingabe für die Vorhersage verwendet werden sollen.

SELECT FLATTENED  
  PREDICT([Association].[v Assoc Seq Line Items], 3)  
FROM  
  [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 [v Assoc Seq Line Items ]) AS t  

Beispielergebnisse:

Expression.Model
HL Mountain Tire
Water Bottle
Fender Set – Mountain

Da die Spalte, die das vorhersagbare Attribut [v Assoc Seq Line Items] enthält, eine Tabellenspalte ist, gibt die Abfrage eine einzelne Spalte zurück, die eine geschachtelte Tabelle enthält. Die Spalte der geschachtelten Tabelle erhält standardmäßig den Namen Expression. Wenn Ihr Anbieter keine hierarchischen Rowsets unterstützt, können Sie die Schlüsselwort (keyword) FLATTENED wie in diesem Beispiel gezeigt verwenden, um die Anzeige der Ergebnisse zu vereinfachen.

Weitere Informationen

SELECT (DMX)
Data Mining-Erweiterungen (DMX) - Datendefinitionsanweisungen
Data Mining-Erweiterungen (DMX) - Datenbearbeitungsanweisungen
Data Mining-Erweiterungen (DMX) - Anweisungsreferenz