Esecuzione di query su un modello Decision Trees (Analysis Services - Data mining)
Quando si crea una query su un modello di data mining, è possibile creare una query contenuto, che fornisce dettagli sui criteri individuati durante l'analisi, oppure una query di stima, che utilizza i criteri presenti nel modello di data mining per eseguire stime relative a nuovi dati. Una query sul contenuto per un modello Decision Trees, 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 contenuto
Recupero di parametri di modello dal set di righe dello schema di data mining
Recupero di dettagli sugli alberi nel modello tramite DMX
Recupero di sottoalberi dal modello
Query di stima
Restituzione di stime con probabilità
Stima di associazioni da un modello di albero delle decisioni
Recupero di una formula di regressione da un modello di albero delle decisioni
Ricerca di informazioni su un modello di albero delle decisioni
Per creare query significative sul contenuto di un modello Decision Trees, è 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).
Esempio di query 1: Recupero di parametri di modello dal 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
Esempio di query 2: Restituzione di dettagli sul contenuto del modello tramite DMX
La query seguente restituisce alcune informazioni di base sull'albero delle decisioni creato al momento della compilazione del modello in Esercitazione di base sul data mining. Ogni albero viene archiviato nel proprio nodo. 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.
La query restituisce tutti i nodi di tipo 2, ovvero i nodi di livello superiore di un albero che rappresenta un attributo stimabile specifico.
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 |
Tutte |
12939 |
5 |
Che cosa indicano questi risultati? In un modello Decision Trees la cardinalità di un nodo specifico indica il numero di figli immediati del nodo. La cardinalità per questo nodo è 5, pertanto 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), 1.067 clienti possiedono 0 automobili e 473 clienti possiedono 3 automobili.
Torna all'inizio
Esempio di query 3: Recupero di sottoalberi dal modello
Si supponga di voler individuare 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
Esecuzione di stime tramite un modello di albero delle decisioni
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 Decision Trees, 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.
Esempio di query 4: Restituzione di stime con probabilità
Nella query di esempio seguente viene utilizzato il modello di albero delle decisioni creato in Esercitazione di base sul data mining. La query passa un nuovo set di dati di esempio, dalla tabella dbo.ProspectiveBuyers in AdventureWorks2008R2 DW, per individuare quali clienti nel nuovo set di dati acquisteranno una bicicletta.
La query utilizza la funzione di stima PredictHistogram (DMX) che restituisce una tabella nidificata contenente informazioni utili sulle probabilità individuate dal modello. La clausola WHERE finale della query filtra i risultati per restituire solo i clienti stimati come probabili acquirenti di una bicicletta per oltre lo 0%.
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 quelli 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
Esempio di query 5: Stima di associazioni da un modello di albero delle decisioni
La query di esempio seguente si basa sulla struttura di data mining Association. Per proseguire con l'esempio, è possibile aggiungere un nuovo modello a questa struttura di data mining e selezionare Microsoft Decision Trees come algoritmo. Per ulteriori informazioni sulla creazione della struttura di data mining Association, 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
Esempio di query 6: Recupero di una formula di regressione da un modello di albero delle decisioni
Quando si crea un modello Decision Trees 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 Linear Regression (Analysis Services - Data mining).
Se un modello di albero delle decisioni 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
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).
Vedere anche