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.