Esecuzione di query su un modello di albero delle decisioni (Analysis Services - Data mining)
Quando si crea una query su un modello di data mining, è possibile creare una query sul contenuto, che fornisce dettagli sui modelli individuati durante l'analisi, oppure una query di stima, che utilizza i modelli presenti nel modello di data mining per eseguire stime relative a nuovi dati. Una query sul contenuto per un modello di albero delle decisioni, ad esempio, può fornire statistiche sul numero di case a ogni livello dell'albero o le regole che consentono di distinguere i case. In alternativa, una query di stima esegue il mapping del modello ai nuovi dati per generare indicazioni, classificazioni e così via. Utilizzando una query è inoltre possibile recuperare metadati relativi al modello.
In questa sezione viene illustrato come creare query per i modelli basati sull'algoritmo Microsoft Decision Trees.
Query sul contenuto
Recupero dei parametri del modello dal set di righe dello schema di data mining
Restituzione di dettagli sugli alberi del modello mediante DMX
Restituzione di nodi di regressione da un modello di albero delle decisioni
Query di stima
Restituzione di stime e probabilità
Stima di associazioni da un albero delle decisioni
Ricerca di informazioni su un modello di albero delle decisioni
Per creare query significative sul contenuto di un modello di albero delle decisioni, è necessario comprendere la struttura del contenuto del modello ed essere in grado di individuare il tipo di informazioni archiviate dai diversi tipi di nodo. Per ulteriori informazioni, vedere Contenuto dei modelli di data mining per i modelli di albero delle decisioni (Analysis Services - Data mining).
Torna all'inizio
Query di esempio1: Recupero di parametri del modello da un set di righe dello schema di data mining
L'esecuzione di una query sul set di righe dello schema di data mining consente di trovare i metadati relativi al modello, ad esempio la data e l'ora di creazione, la data e l'ora dell'ultima elaborazione, il nome della struttura di data mining su cui si basa il modello e il nome della colonna utilizzata come attributo stimabile. È inoltre possibile restituire i parametri utilizzati durante la creazione del modello.
select MINING_PARAMETERS
from $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'TM_Decision Tree'
Risultati dell'esempio:
MINING_PARAMETERS
COMPLEXITY_PENALTY=0.5, MAXIMUM_INPUT_ATTRIBUTES=255,MAXIMUM_OUTPUT_ATTRIBUTES=255,MINIMUM_SUPPORT=10,SCORE_METHOD=4,SPLIT_METHOD=3,FORCE_REGRESSOR=
Torna all'inizio
Query di esempio 2: Restituzione di dettagli sugli alberi del modello mediante DMX
La query seguente restituisce alcune informazioni di base sul modello di albero delle decisioni creato in Esercitazione di base sul data mining. La query restituisce tutti i nodi di tipo 2, ovvero i nodi di livello superiore di un albero che rappresenta un attributo stimabile specifico. Poiché il modello contiene un singolo attributo stimabile, è presente un solo nodo dell'albero. Se, tuttavia, si crea un modello di associazione utilizzando l'algoritmo Decision Trees, potrebbero essere presenti centinaia di alberi, uno per ciascun prodotto.
[!NOTA]
La colonna, CHILDREN_CARDINALITY, deve essere racchiusa tra parentesi per distinguerla dalla parola chiave riservata MDX con lo stesso nome.
SELECT MODEL_NAME, NODE_NAME, NODE_CAPTION,
NODE_SUPPORT, [CHILDREN_CARDINALITY]
FROM TM_DecisionTrees.CONTENT
WHERE NODE_TYPE = 2
Risultati dell'esempio:
MODEL_NAME |
NODE_NAME |
NODE_CAPTION |
NODE_SUPPORT |
CHILDREN_CARDINALITY |
---|---|---|---|---|
TM_DecisionTree |
000000001 |
All |
12939 |
5 |
In un modello di albero delle decisioni la cardinalità di un nodo specifico indica il numero di figli immediati del nodo. La cardinalità per il nodo restituito dalla query precedente indica pertanto che il modello ha diviso in cinque sottogruppi la popolazione di destinazione dei potenziali acquirenti di biciclette. La query correlata seguente restituisce i figli per questi cinque sottogruppi, insieme alla distribuzione di attributi e valori nei nodi figlio. Poiché le statistiche relative, ad esempio, a supporto, probabilità e varianza vengono archiviate nella tabella nidificata NODE_DISTRIBUTION, nell'esempio viene utilizzata la parola chiave FLATTENED per restituire le colonne della tabella nidificata.
[!NOTA]
La colonna della tabella nidificata, SUPPORT, deve essere racchiusa tra parentesi per essere distinta dalla colonna dalla parola chiave riservata con lo stesso nome.
SELECT FLATTENED NODE_NAME, NODE_CAPTION,
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE, [SUPPORT]
FROM NODE_DISTRIBUTION) AS t
FROM TM_DecisionTree.CONTENT
WHERE [PARENT_UNIQUE_NAME] = '000000001'
Risultati dell'esempio:
NODE_NAME |
NODE_CAPTION |
T.ATTRIBUTE_NAME |
T.ATTRIBUTE_VALUE |
SUPPORT |
---|---|---|---|---|
00000000100 |
Number Cars Owned = 0 |
Bike Buyer |
Missing |
0 |
00000000100 |
Number Cars Owned = 0 |
Bike Buyer |
0 |
1067 |
00000000100 |
Number Cars Owned = 0 |
Bike Buyer |
1 |
1875 |
00000000101 |
Number Cars Owned = 3 |
Bike Buyer |
Missing |
0 |
00000000101 |
Number Cars Owned = 3 |
Bike Buyer |
0 |
678 |
00000000101 |
Number Cars Owned = 3 |
Bike Buyer |
1 |
473 |
Da questi risultati è possibile determinare che tra i clienti che hanno acquistato una bicicletta ([Bike Buyer] = 1), 1067 clienti possiedono 0 automobili e 473 clienti possiedono 3 automobili.
Si supponga di voler ottenere altre informazioni sui clienti che hanno acquistato una bicicletta. È possibile visualizzare dettagli aggiuntivi per uno dei sottoalberi utilizzando la funzione IsDescendant (DMX) nella query, come illustrato nell'esempio seguente. La query restituisce il conteggio di acquirenti di biciclette recuperando nodi foglia (NODE_TYPE = 4) dall'albero che contiene i clienti di età maggiore di 42 anni. La query limita le righe della tabella nidificata a quelle in cui Bike Buyer = 1.
SELECT FLATTENED NODE_NAME, NODE_CAPTION,NODE_TYPE,
(
SELECT [SUPPORT] FROM NODE_DISTRIBUTION WHERE ATTRIBUTE_NAME = 'Bike Buyer' AND ATTRIBUTE_VALUE = '1'
) AS t
FROM TM_DecisionTree.CONTENT
WHERE ISDESCENDANT('0000000010001')
AND NODE_TYPE = 4
Risultati dell'esempio:
NODE_NAME |
NODE_CAPTION |
t.SUPPORT |
---|---|---|
000000001000100 |
Yearly Income >= 26000 e < 42000 |
266 |
00000000100010100 |
Total Children = 3 |
75 |
0000000010001010100 |
Number Children At Home = 1 |
75 |
Torna all'inizio
Query di esempio 3: Restituzione di nodi di regressione da un modello di albero delle decisioni
Quando si crea un modello di albero delle decisioni che contiene una regressione su un attributo continuo, è possibile utilizzare la formula di regressione per eseguire stime oppure estrarre le informazioni sulla formula di regressione. Per ulteriori informazioni sulle query sui modelli di regressione, vedere Esecuzione di query su un modello di regressione lineare (Analysis Services - Data mining).
Se il modello contiene una combinazione di nodi di regressione e nodi suddivisi in intervalli o attributi discreti, è possibile creare una query che restituisce solo il nodo di regressione. La tabella NODE_DISTRIBUTION contiene i dettagli della formula di regressione. In questo esempio le colonne sono bidimensionali e la tabella NODE_DISTRIBUTION è associata a un alias per semplificare la visualizzazione. In questo modello, tuttavia, non è stato individuato alcun regressore da correlare a Income con altri attributi continui. In questi casi, Analysis Services restituisce il valore medio dell'attributo e la varianza totale nel modello per l'attributo.
SELECT FLATTENED NODE_DISTRIBUTION AS t
FROM DT_Predict. CONTENT
WHERE NODE_TYPE = 25
Risultati dell'esempio:
t.ATTRIBUTE_NAME |
t.ATTRIBUTE_VALUE |
t.SUPPORT |
t.PROBABILITY |
t.VARIANCE |
t.VALUETYPE |
---|---|---|---|---|---|
Yearly Income |
Missing |
0 |
0.000457142857142857 |
0 |
1 |
Yearly Income |
57220.8876687257 |
17484 |
0.999542857142857 |
1041275619.52776 |
3 |
|
57220.8876687257 |
0 |
0 |
1041216662.54387 |
11 |
Per ulteriori informazioni sui tipi di valore e le statistiche utilizzate nei modelli di regressione, vedere Contenuto dei modelli di data mining per i modelli di regressione lineare (Analysis Services - Data mining).
Torna all'inizio
Esecuzione di stime tramite il modello
Poiché gli alberi delle decisioni possono essere utilizzati per svariate attività, incluse la classificazione, la regressione e persino l'associazione, quando si crea una query di stima su un modello di albero delle decisioni, sono disponibili numerose opzioni. Per comprendere i risultati della stima, è necessario saper individuare lo scopo per cui è stato creato il modello. Negli esempi di query seguenti vengono illustrati tre scenari diversi:
Restituzione di una stima per un modello di classificazione, insieme alla probabilità che la stima sia corretta, quindi applicazione di un filtro ai risultati in base alla probabilità.
Creazione di una query singleton per stimare le associazioni.
Recupero della formula di regressione per una parte di un albero delle decisioni in cui la relazione tra l'input e l'output è lineare.
Torna all'inizio
Query di esempio 4: Restituzione di stime e probabilità
La query di esempio seguente utilizza il modello di albero delle decisioni creato in Esercitazione di base sul data mining e passa la tabella dei dati di esempio in AdventureWorks DW, dbo.ProspectiveBuyers, al modello per stimare quali dei clienti inclusi in un elenco acquisteranno una bicicletta. La query include la funzione di stima PredictHistogram (DMX), che restituisce una tabella nidificata contenente informazioni utili sulle probabilità individuate dal modello. Le stime vengono filtrate, aggiungendo una clausola WHERE, per restituire solo i clienti stimati come probabili acquirenti di biciclette per oltre il 50%.
SELECT
[TM_DecisionTree].[Bike Buyer],
PredictHistogram([Bike Buyer]) as Results
FROM
[TM_DecisionTree]
PREDICTION JOIN
OPENQUERY([Adventure Works DW],
'SELECT
[FirstName],
[LastName],
[MaritalStatus],
[Gender],
[YearlyIncome],
[TotalChildren],
[NumberChildrenAtHome],
[HouseOwnerFlag],
[NumberCarsOwned]
FROM
[dbo].[ProspectiveBuyer]
') AS t
ON
[TM_DecisionTree].[First Name] = t.[FirstName] AND
[TM_DecisionTree].[Last Name] = t.[LastName] AND
[TM_DecisionTree].[Marital Status] = t.[MaritalStatus] AND
[TM_DecisionTree].[Gender] = t.[Gender] AND
[TM_DecisionTree].[Yearly Income] = t.[YearlyIncome] AND
[TM_DecisionTree].[Total Children] = t.[TotalChildren] AND
[TM_DecisionTree].[Number Children At Home] = t.[NumberChildrenAtHome] AND
[TM_DecisionTree].[House Owner Flag] = t.[HouseOwnerFlag] AND
[TM_DecisionTree].[Number Cars Owned] = t.[NumberCarsOwned]
WHERE [Bike Buyer] = 1
AND PredictProbability([Bike Buyer]) >'.05'
Per impostazione predefinita, Analysis Services restituisce tabelle nidificate con l'etichetta di colonna Expression. È possibile modificare questa etichetta applicando un alias alla colonna restituita. In tal caso l'alias, in questo esempio Results, viene utilizzato sia come intestazione di colonna sia come valore nella tabella nidificata. Per visualizzare i risultati, è necessario espandere la tabella nidificata.
Risultati dell'esempio:
Bike Buyer |
Results |
---|---|
1 |
Results
Bike Buyer$SUPPORT$PROBABILITY$ADJUSTEDPROBABILITY$VARIANCE$STDEV
125400.6348492420456440.01356216828156200
014600.3649841745793770.0066133693255091500
00.0001665833749791770.00016658337497917700
|
Se il provider non supporta set di righe gerarchici, ad esempio i risultati illustrati in questo esempio, è possibile utilizzare la parola chiave FLATTENED nella query per restituire i risultati come tabella contenente valori Null al posto dei valori di colonna ripetuti. Per ulteriori informazioni, vedere Tabelle nidificate (Analysis Services - Data mining) o Informazioni sull'istruzione Select (DMX).
Torna all'inizio
Query di esempio 5: Stima di associazioni da un albero delle decisioni
Per utilizzare la query seguente, è possibile creare una copia del modello di associazione nell'esercitazione e modificare l'algoritmo in algoritmo Decision Trees. Per ulteriori informazioni, vedere Lezione 3: Creazione di uno scenario Market Basket (Esercitazione intermedia sul data mining).
La query di esempio seguente è una query singleton, che può essere creata facilmente in Business Intelligence Development Studio scegliendo i campi desiderati e quindi selezionando i valori per i campi in un elenco a discesa.
SELECT PredictAssociation([DT_Association].[v Assoc Seq Line Items],3)
FROM
[DT_Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Patch kit' AS [Model]) AS [v Assoc Seq Line Items]) AS t
Risultati previsti:
Model |
---|
Mountain-200 |
Mountain Tire Tube |
Touring Tire Tube |
I risultati indicano i tre prodotti migliori da consigliare ai clienti che hanno acquistato un prodotto Patch Kit. È inoltre possibile specificare più prodotti come input per i suggerimenti forniti, digitando i valori o utilizzando la finestra di dialogo Input query singleton e aggiungendo o rimuovendo valori. Nella query di esempio seguente viene illustrato il modo in cui vengono specificati più valori su cui basare la stima. I valori sono collegati da una clausola UNION nell'istruzione SELECT che definisce i valori di input.
SELECT PredictAssociation([DT_Association].[v Assoc Seq Line Items],3)
From
[DT_Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Racing Socks' AS [Model]
UNION SELECT 'Women''s Mountain Shorts' AS [Model]) AS [v Assoc Seq Line Items]) AS t
Risultati previsti:
Model |
---|
Long-Sleeve Logo Jersey |
Mountain-400-W |
Classic Vest |
Torna all'inizio
Elenco delle funzioni di stima
Tutti gli algoritmi Microsoft supportano un set comune di funzioni. L'algoritmo Microsoft Decision Trees supporta tuttavia funzioni aggiuntive, elencate nella tabella seguente.
Per un elenco delle funzioni comuni a tutti gli algoritmi Microsoft, vedere Mapping di funzioni a tipi di query (DMX). Per informazioni sulla sintassi di funzioni specifiche, vedere Guida di riferimento alle funzioni DMX (Data Mining Extensions).
Cronologia modifiche
Aggiornamento del contenuto |
---|
Aggiunta di collegamenti negli argomenti per semplificare la revisione degli esempi di query. |
Spostamento dell'esempio sui nodi di regressione nella sezione appropriata relativa alle query sul contenuto. |
Vedere anche