SELECT FROM <model> PREDICTION JOIN (DMX)
Utilizza un modello di data mining per stimare gli stati delle colonne in un'origine dati esterna. L'istruzione PREDICTION JOIN consente di stabilire una corrispondenza tra ogni case della query di origine e il modello.
Sintassi
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]]
Argomenti
n
Facoltativo. Valore intero mediante il quale viene specificato il numero di righe da restituire.select expression list
Elenco delimitato da virgole contenente espressioni e identificatori di colonna derivati dal modello di data mining.model
Identificatore del modello.sub select
Istruzione SELECT incorporata.source data query
Query di origine.join mapping list
Facoltativo. Espressione logica che confronta le colonne del modello con quelle della query di origine.condition expression
Facoltativo. Condizione per limitare i valori restituiti dall'elenco di colonne.expression
Facoltativo. Espressione che restituisce un valore scalare.
Osservazioni
La clausola ON definisce il mapping tra le colonne della query di origine e quelle del modello di data mining. 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. Le colonne elencate nell'argomento <join mapping list> vengono correlate tramite un segno di uguale (=) come mostrato nell'esempio seguente:
[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.
La query di origine del PREDICTION JOIN può essere una query singleton o di tabella.
È possibile specificare funzioni di stima mediante le quali non viene restituita un'espressione di tabella in <select expression list> e <condition expression>.
NATURAL PREDICTION JOIN stabilisce automaticamente il mapping tra i nomi delle colonne della query di origine e nomi delle colonne corrispondenti nel modello. Se si utilizza NATURAL PREDICTION, sarà possibile omettere la clausola ON.
La condizione WHERE può essere applicata solo a colonne stimabili o colonne correlate.
La clausola ORDER BY può accettare solo una singola colonna come argomento; ovvero, non è possibile eseguire l'ordinamento in base a più colonne.
Esempio 1: Query singleton
Nell'esempio seguente viene illustrato come creare una query per stimare in tempo reale la probabilità che una persona specifica acquisti una bicicletta. In questa query i dati non vengono archiviati in una tabella o in un'altra origine dati, ma vengono immessi direttamente nella query. La query si riferisce a una persona con il profilo seguente:
35 anni
Possiede una casa
Possiede due automobili
Ha due figli
Se si utilizza il modello di data mining TM Decision Tree e le caratteristiche note del soggetto, la query restituisce un valore booleano che indica se la persona ha acquistato la bicicletta e un set di valori tabulari, restituiti dalla funzione PredictHistogram (DMX), che descrivono il modo in cui è stata eseguita la stima.
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 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. Poiché la tabella fa parte di una vista origine dati definita in un'istanza di Analysis Services, la query può utilizzare OPENQUERY per recuperare i dati. Poiché i nomi delle colonne presenti nella tabella sono diversi da quelli presenti nel modello di data mining, è necessario utilizzare la clausola ON per eseguire il mapping delle colonne della tabella alle colonne del modello.
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". L'ultima colonna contiene la probabilità per il risultato stimato.
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:
WHERE [BIKE Buyer]
ORDER BY [LastName] ASC
Esempio 3: Stima delle associazioni
Nell'esempio seguente viene illustrato come creare una stima utilizzando un modello compilato in base all'algoritmo Microsoft Association Rules. Le stime su un modello di associazione possono essere utilizzate per consigliare prodotti correlati. La query seguente restituisce ad esempio i tre prodotti che hanno la maggiore probabilità di essere acquistati insieme:
Mountain Bottle Cage
Mountain Tire Tube
Mountain-200
La funzione Predict (DMX) è polimorfica e può essere utilizzata con tutti i tipi di modelli. Viene utilizzato value3 come argomento della funzione per limitare il numero di articoli restituiti dalla query. L'elenco SELECT che segue la clausola NATURAL PREDICTION JOIN fornisce i valori da utilizzare come input per la stima.
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:
Expression.Model |
---|
HL Mountain Tire |
Water Bottle |
Fender 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. Per impostazione predefinita, la colonna della tabella nidificata viene denominata Expression. Se il provider non supporta i set di righe gerarchici, è possibile utilizzare la parola chiave FLATTENED come illustrato in questo esempio per rendere più semplice la visualizzazione dei risultati.
Vedere anche
Riferimento
Istruzioni DMX (Data Mining Extensions) per la definizione dei dati
Istruzioni DMX (Data Mining Extensions) per la manipolazione dei dati
Guida di riferimento alle istruzioni DMX (Data Mining Extensions)