Teilen über


SELECT FROM <model> PREDICTION JOIN (INTERFACES)

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 entspricht jedem Fall aus der Quellabfrage mit dem Modell.

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.

Modell
Ein Modellbezeichner.

Unterauswahl
Eine eingebettete SELECT-Anweisung.

Quelldatenabfrage
Die Quellabfrage.

Verknüpfungszuordnungsliste
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.

Hinweise

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 in Spalten im Miningmodell zu leiten, sodass die Spalten als Eingaben zum Erstellen der Vorhersagen verwendet werden können. Spalten in der <Verknüpfungszuordnungsliste> sind mit einem Gleichheitszeichen (=) 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 Spaltennamen automatisch aus der Quellabfrage zu, die 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

Mit dem TM Decision Tree Mining-Modell und den bekannten Merkmalen des Themas 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 Funktion PredictHistogram (FALSE) zurückgegeben werden, die beschreiben, wie die Vorhersage gemacht 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

Das folgende Beispiel zeigt, wie Sie mithilfe einer Liste potenzieller Kunden, die in einem externen Dataset gespeichert sind, eine Batchvorhersageabfrage erstellen. Da die Tabelle Teil einer Datenquellenansicht ist, die für eine Instanz 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 Funktion Vorhersage (PROGNOSE) 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 der NATURAL PREDICTION JOIN-Klausel folgt, stellt die Werte bereit, 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 hierarchische Rowsets nicht unterstützt, können Sie das FLATTENED-Schlüsselwort wie in diesem Beispiel gezeigt verwenden, um die Ergebnisse einfacher anzuzeigen.

Weitere Informationen

SELECT (SELECT)
Data Mining Extensions (DATA Mining Extensions, ABSCHNITT) Datendefinitionsanweisungen
DATA Mining Extensions (UNIVERSE) Datenmanipulationsanweisungen
Data Mining-Erweiterungen (DMX) - Anweisungsreferenz