SELECT FROM <modello> PREDICTION JOIN (DMX)SELECT FROM <model> PREDICTION JOIN (DMX)

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2008)noDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Utilizza un modello di data mining per stimare gli stati delle colonne in un'origine dati esterna.Uses a mining model to predict the states of columns in an external data source. Il PREDICTION JOIN istruzione corrisponde a ogni case della query di origine per il modello.The PREDICTION JOIN statement matches each case from the source query to the model.

SintassiSyntax


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]]  

ArgomentiArguments

n
Facoltativa.Optional. Valore intero mediante il quale viene specificato il numero di righe da restituire.An integer that specifies how many rows to return.

Selezionare l'elenco di espressioniselect expression list
Elenco delimitato da virgole contenente espressioni e identificatori di colonna derivati dal modello di data mining.A comma-separated list of column identifiers and expressions that are derived from the mining model.

modelmodel
Identificatore del modello.A model identifier.

Selezionare Subsub select
Istruzione SELECT incorporata.An embedded select statement.

query di origine datisource data query
Query di origine.The source query.

elenco di mapping di joinjoin mapping list
Facoltativa.Optional. Espressione logica che confronta le colonne del modello con quelle della query di origine.A logical expression that compares columns from the model to columns from the source query.

espressione della condizionecondition expression
Facoltativa.Optional. Condizione per limitare i valori restituiti dall'elenco di colonne.A condition to restrict the values that are returned from the column list.

espressioneexpression
Facoltativa.Optional. Espressione che restituisce un valore scalare.An expression that returns a scalar value.

OsservazioniRemarks

La clausola ON definisce il mapping tra le colonne della query di origine e quelle del modello di data mining.The ON clause defines the mapping between the columns from the source query and the columns from the mining model. Tale mapping viene utilizzato per dirigere le colonne dalla query di origine alle colonne nel modello di data mining, di modo che possano essere utilizzate come input durante la creazione delle stime.This mapping is used to direct columns from the source query to columns in the mining model so that the columns can be used as inputs to create the predictions. Le colonne di < elenco mapping join> correlati usando un segno di uguale (=), come illustrato nell'esempio seguente:Columns in the <join mapping list> are related by using an equal sign (=), as shown in the following example:

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

Quando si associa una tabella nidificata nella clausola ON, è necessario associare la colonna chiave a una colonna non chiave qualsiasi, di modo che l'algoritmo possa identificare correttamente a quale case appartiene il record della colonna nidificata.If you are binding a nested table in the ON clause, ensure that you bind the key column with any non-key columns so that the algorithm can correctly identify which case the record of the nested column belongs to.

La query di origine del PREDICTION JOIN può essere una query singleton o di tabella.The source query for the prediction join can either be a table or a singleton query.

È possibile specificare funzioni di stima che non restituiscono un'espressione di tabella nel < elenco di espressioni select> e < espressione di condizione>.You can specify prediction functions that do not return a table expression in the <select expression list> and the <condition expression>.

NATURAL PREDICTION JOIN esegue automaticamente il mapping tra loro i nomi di colonna della query di origine che corrispondono a nomi di colonna nel modello.NATURAL PREDICTION JOIN automatically maps together column names from the source query that match column names in the model. Se si utilizza NATURAL PREDICTION, è possibile omettere la clausola ON.If you use NATURAL PREDICTION, you can omit the ON clause.

La condizione WHERE può essere applicata solo a colonne stimabili o colonne correlate.The WHERE condition can be applied only to predictable columns or related columns.

La clausola ORDER BY può accettare solo una singola colonna come argomento; ovvero, non è possibile eseguire l'ordinamento in base a più colonne.The ORDER by clause can accept only a single column as an argument; that is, you cannot sort on more than one column.

Esempio 1: Query singletonExample 1: Singleton Query

Nell'esempio seguente viene illustrato come creare una query per stimare in tempo reale la probabilità che una persona specifica acquisti una bicicletta.The following example shows how to create a query to predict whether a specific person will buy a bicycle in real time. In questa query i dati non vengono archiviati in una tabella o in un'altra origine dati, ma vengono immessi direttamente nella query.In this query the data is not stored in a table or other data source, but instead is entered directly into the query. La query si riferisce a una persona con il profilo seguente:The person in the query has the following traits:

  • 35 anni35 years old

  • Possiede una casaOwns a house

  • Possiede due automobiliOwns two cars

  • Ha due figliHas two children living at home

    Utilizza il modello di data mining TM Decision Tree e le caratteristiche note sull'oggetto, la query restituisce un valore booleano che indica se la persona ha acquistato la bicicletta e un set di valori tabulari, restituiti dal PredictHistogram ( DMX ) (funzione), che descrivono la modalità in cui è stata effettuata la stima.Using the TM Decision Tree mining model and the known characteristics about the subject, the query returns a Boolean value that describes whether the person bought the bike and a set of tabular values, returned by the PredictHistogram (DMX) function, that describe how the prediction was made.

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  

Esempio 2: Utilizzo di OPENQUERYExample 2: Using OPENQUERY

Nell'esempio seguente viene illustrato come creare una query di stima batch utilizzando un elenco di clienti potenziali archiviato in un set di dati esterno.The following example shows how to create a batch prediction query by using a list of potential customers stored in an external dataset. Poiché la tabella fa parte di una vista origine dati che è stata definita in un'istanza di Analysis ServicesAnalysis Services, la query è possibile utilizzare OPENQUERY per recuperare i dati.Because the table is part of a data source view that has been defined on an instance of Analysis ServicesAnalysis Services, the query can use OPENQUERY to retrieve the data. Poiché i nomi delle colonne nella tabella sono diversi da quelli nel modello di data mining, il ON clausola deve essere utilizzata per associare le colonne nella tabella alle colonne nel modello.Because the names of the columns in the table are different from those in the mining model, the ON clause must be used to map the columns in the table to the columns in the model.

La query restituisce il nome e il cognome di ogni persona presente nella tabella, oltre a una colonna booleana che indica la probabilità che la persona acquisti una bicicletta, dove 0 indica "è improbabile che acquisti una bicicletta" e 1 indica "è probabile che acquisti una bicicletta".The query returns the first and last name of each person in the table, together with a Boolean column that indicates whether each person is likely to buy a bike, where 0 means "probably will not buy a bike" and 1 means "probably will buy a bike". L'ultima colonna contiene la probabilità per il risultato stimato.The last column contains the probability for the predicted result.

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]  

Per limitare il set di dati solo ai clienti stimati come acquirenti di una bicicletta e quindi ordinare l'elenco in base al nome del cliente, è possibile aggiungere una clausola WHERE e una clausola ORDER BY all'esempio precedente:To restrict the data set to only the customers who are predicted to buy a bike, and then sort the list by customer name, you can add a WHERE clause and an ORDER BY clause to the previous example:

WHERE [BIKE Buyer]  
ORDER BY [LastName] ASC  

Esempio 3: Stima delle associazioniExample 3: Predicting Associations

Nell'esempio seguente viene illustrato come creare una stima utilizzando un modello compilato in base all'algoritmo MicrosoftMicrosoft Association Rules.The following example shows how to create a prediction by using a model that is built from the MicrosoftMicrosoft Association algorithm. Le stime su un modello di associazione possono essere utilizzate per consigliare prodotti correlati.Predictions on an association model can be used to recommend related products. La query seguente restituisce ad esempio i tre prodotti che hanno la maggiore probabilità di essere acquistati insieme:For example, the following query returns the three products that are most likely to be purchased together:

  • Mountain Bottle CageMountain Bottle Cage

  • Mountain Tire TubeMountain Tire Tube

  • Mountain-200Mountain-200

    Il DMX Predict ( ) funzione è polimorfica e può essere utilizzata con tutti i tipi di modello.The Predict (DMX) function is polymorphic and can be used with all model types. Viene utilizzato value3 come argomento della funzione per limitare il numero di articoli restituiti dalla query.You use the value3 as an argument to the function to limit the number of items that are returned by the query. Il selezionare elenco che segue la clausola NATURAL PREDICTION JOIN fornisce i valori da utilizzare come input per la stima.The SELECT list that follows the NATURAL PREDICTION JOIN clause supplies the values to use as input for prediction.

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  

Risultati dell'esempio:Example results:

Expression.ModelExpression.Model
HL Mountain TireHL Mountain Tire
Water BottleWater Bottle
Fender Set - MountainFender Set - Mountain

Poiché la colonna che contiene l'attributo stimabile, [v Assoc Seq Line Items], è una colonna della tabella, la query restituisce una singola colonna contenente una tabella nidificata.Because the column that contains the predictable attribute, [v Assoc Seq Line Items], is a table column, the query returns a single column that contains a nested table. Per impostazione predefinita, la colonna della tabella nidificata viene denominata Expression.By default the nested table column is named Expression. Se il provider non supporta set di righe gerarchici, è possibile utilizzare il FLATTENED (parola chiave), come illustrato in questo esempio, per rendere più semplice visualizzare i risultati.If your provider does not support hierarchical rowsets, you can use the FLATTENED keyword as shown in this example to make the results easier to view.

Vedere ancheSee Also

DMX SELECT ( ) SELECT (DMX)
Data Mining Extensions ( DMX ) Istruzioni di definizione dei dati Data Mining Extensions (DMX) Data Definition Statements
Data Mining Extensions ( DMX ) Istruzioni di manipolazione dei dati Data Mining Extensions (DMX) Data Manipulation Statements
Data Mining Extensions ( DMX ) Riferimento istruzioneData Mining Extensions (DMX) Statement Reference