Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando si crea una query su un modello di data mining, è possibile creare una query sul contenuto, che fornisce informazioni dettagliate sui modelli individuati nell'analisi oppure è possibile creare una query di stima, che usa i modelli nel modello per eseguire stime per i nuovi dati. Ad esempio, una query di contenuto per un modello ad albero delle decisioni può fornire statistiche sul numero di casi a ogni livello dell'albero o sulle regole che differenziano tra i casi. In alternativa, una query di stima esegue il mapping del modello ai nuovi dati per generare raccomandazioni, classificazioni e così via. È anche possibile recuperare i metadati relativi al modello usando una query.
Questa sezione illustra 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
Recupero di dettagli sugli alberi nel modello tramite DMX
Recupero di sottoalberi dal modello
Query di previsione
Restituzione di stime con probabilità
Stima delle associazioni da un modello ad albero delle decisioni
Recupero di una formula di regressione da un modello di alberi decisionali
Ricerca di informazioni su un modello decision trees
Per creare query significative sul contenuto di un modello di albero delle decisioni, è necessario comprendere la struttura del contenuto del modello e quali tipi di nodo archiviano il tipo di informazioni. Per altre informazioni, vedere Contenuto del modello di data mining per i modelli di albero delle decisioni (Analysis Services - Data mining).
Query di esempio 1: Recupero dei parametri del modello dal set di righe dello schema di data mining
Eseguendo una query sul set di righe dello schema di data mining, è possibile trovare metadati sul modello, ad esempio quando è stato creato, quando il modello è stato elaborato per l'ultima volta, il nome della struttura di data mining su cui si basa il modello e il nome della colonna utilizzata come attributo stimabile. È anche possibile restituire i parametri usati al momento della creazione del modello.
select MINING_PARAMETERS
from $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'TM_Decision Tree'
Risultati di esempio:
PARAMETRI_MINERARI
COMPLEXITY_PENALTY=0,5, MAXIMUM_INPUT_ATTRIBUTES=255,MAXIMUM_OUTPUT_ATTRIBUTES=255,MINIMUM_SUPPORT=10,SCORE_METHOD=4,SPLIT_METHOD=3,FORCE_REGRESSOR=
Esempio di query 2: restituzione di dettagli sul contenuto del modello tramite DMX
La query seguente restituisce alcune informazioni di base sugli alberi delle decisioni creati durante la compilazione del modello nell'esercitazione di base sul data mining. Ogni struttura ad albero viene archiviata nel proprio nodo. Poiché questo modello contiene un singolo attributo stimabile, è presente un solo nodo della struttura ad albero. Tuttavia, se si crea un modello di associazione usando l'algoritmo Decision Trees, potrebbero esserci centinaia di alberi, uno per ogni prodotto.
Questa query restituisce tutti i nodi di tipo 2, ovvero i nodi di primo livello di un albero che rappresenta un particolare attributo stimabile.
Annotazioni
La colonna, CHILDREN_CARDINALITY, deve essere racchiusa tra parentesi quadre 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 | NOME_DEL_NODO | NODE_CAPTION | NODE_SUPPORT | CARDINALITÀ_BAMBINI |
|---|---|---|---|---|
| TM_DecisionTree | 000000001 | Tutti | 12939 | 5 |
Cosa indicano questi risultati? In un modello di albero delle decisioni, la cardinalità di un determinato nodo indica quanti elementi figlio immediati hanno tale nodo. La cardinalità per questo nodo è 5, ovvero il modello divide la popolazione di potenziali acquirenti di biciclette in 5 sottogruppi.
La query correlata seguente restituisce i nodi figli per questi cinque sottogruppi, insieme alla distribuzione degli attributi e valori nei nodi figli. Poiché le statistiche come supporto, probabilità e varianza vengono archiviate nella tabella nidificata, NODE_DISTRIBUTIONin questo esempio viene usata la FLATTENED parola chiave per restituire le colonne della tabella nidificata.
Annotazioni
La colonna della tabella nidificata, SUPPORT, deve essere racchiusa tra parentesi quadre per distinguerla 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:
| NOME_DEL_NODO | NODE_CAPTION | T.ATTRIBUTE_NAME | T.ATTRIBUTE_VALUE | APPOGGIARE |
|---|---|---|---|---|
| 00000000100 | Numero automobili di proprietà = 0 | Acquirente di biciclette | Mancante | 0 |
| 00000000100 | Numero automobili di proprietà = 0 | Acquirente di biciclette | 0 | 1067 |
| 00000000100 | Numero automobili di proprietà = 0 | Acquirente di biciclette | 1 | 1875 |
| 00000000101 | Numero automobili di proprietà = 3 | Acquirente di biciclette | Mancante | 0 |
| 00000000101 | Numero automobili di proprietà = 3 | Acquirente di biciclette | 0 | 678 |
| 00000000101 | Numero automobili di proprietà = 3 | Acquirente di biciclette | 1 | 473 |
Da questi risultati, è possibile indicare che dei clienti che hanno acquistato una bicicletta ([Bike Buyer] = 1), 1067 clienti avevano 0 automobili e 473 clienti avevano 3 automobili.
Query di esempio 3: Recupero di sottoalberi dal modello
Si supponga di voler scoprire di più sui clienti che hanno acquistato una bicicletta. È possibile visualizzare dettagli aggiuntivi per qualsiasi sottoalbero usando la funzione IsDescendant (DMX) nella query, come illustrato nell'esempio seguente. La query restituisce il numero di acquirenti di biciclette recuperando nodi foglia (NODE_TYPE = 4) dall'albero che contiene clienti di età superiore ai 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:
| NOME_DEL_NODO | NODE_CAPTION | t.SUPPORT |
|---|---|---|
| 000000001000100 | Reddito annuale >= 26000 e < 42000 | 266 |
| 00000000100010100 | Totale figli = 3 | 75 |
| 0000000010001010100 | Numero bambini a casa = 1 | 75 |
Realizzazione di previsioni utilizzando un modello di alberi decisionali
Poiché gli alberi delle decisioni possono essere usati per varie attività, tra cui classificazione, regressione e persino associazione, quando si crea una query di stima in un modello di albero delle decisioni sono disponibili molte opzioni. È necessario comprendere lo scopo per cui è stato creato il modello per comprendere i risultati della stima. Gli esempi di query seguenti illustrano tre diversi scenari:
Restituzione di una stima per un modello di classificazione, insieme alla probabilità che la stima sia corretta e quindi filtrare i risultati in base alla probabilità;
Creazione di una query singleton per prevedere 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.
Query di esempio 4: Restituzione di stime con probabilità
La query di esempio seguente usa il modello di albero delle decisioni creato nell'esercitazione di base sul data mining. La query passa un nuovo set di dati di esempio, dalla tabella dbo. ProspectiveBuyers in AdventureWorks2012 DW, per stimare quale dei clienti nel nuovo set di dati acquisterà una bicicletta.
La query usa la funzione di stima PredictHistogram (DMX), che restituisce una tabella nidificata che contiene informazioni utili sulle probabilità individuate dal modello. La clausola WHERE finale della query filtra i risultati per restituire solo i clienti che sono previsti come probabili acquirenti di una bicicletta, con una probabilità maggiore di 0%.
SELECT
[TM_DecisionTree].[Bike Buyer],
PredictHistogram([Bike Buyer]) as Results
From
[TM_DecisionTree]
PREDICTION JOIN
OPENQUERY([Adventure Works DW Multidimensional 2012],
'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 utilizzando un alias per la colonna restituita. Se fai questo, l'alias (in questo caso Results) viene utilizzato sia come intestazione di colonna sia come valore nella tabella nidificata. Per visualizzare i risultati, devi espandere la tabella nidificata.
Risultati di esempio in cui Bike Buyer = 1:
| Acquirente di biciclette | $SUPPORT | $PROBABILITY | $ADJUSTEDPROBABILITY | $VARIANZA | $STDEV |
|---|---|---|---|---|---|
| 1 | 2540 | 0.634849242045644 | 0.013562168281562 | 0 | 0 |
| 0 | 1460 | 0.364984174579377 | 0.00661336932550915 | 0 | 0 |
| 0 | 0.000166583374979177 | 0.000166583374979177 | 0 | 0 |
Se il provider non supporta set di righe gerarchici, ad esempio quelli mostrati qui, è possibile usare 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 DMX Select.
Query di esempio 5: Predizione delle associazioni da un modello ad alberi decisionali
La query di esempio seguente si basa sulla struttura di data mining delle associazioni. Per seguire questo esempio, è possibile aggiungere un nuovo modello a questa struttura di data mining e selezionare Microsoft Decision Trees come algoritmo. Per altre informazioni su come creare la struttura di data mining delle associazioni, vedere Lezione 3: Costruzione di uno scenario Market Basket (Esercitazione intermedia sul data mining).
La query di esempio seguente è una query singleton, che è possibile creare facilmente in SQL Server Data Tools (SSDT) scegliendo i campi e quindi selezionando i valori per tali campi da 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:
| Modello |
|---|
| Mountain-200 |
| Mountain Tire Tube |
| Touring Tire Tube |
I risultati indicano i tre prodotti migliori da consigliare ai clienti che hanno acquistato il prodotto Patch Kit. È anche possibile fornire più prodotti come input quando si effettuano raccomandazioni, digitando i valori o usando la finestra di dialogo Input query Singleton e aggiungendo o rimuovendo valori. La query di esempio seguente mostra come vengono forniti più valori, su cui eseguire una stima. I valori sono connessi 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:
| Modello |
|---|
| Maglia con Logo Long-Sleeve |
| Mountain-400-W |
| Giubbotto classico |
Esempio di query 6: Recupero di una formula di regressione da un modello di alberi decisionali
Quando si crea un modello di albero delle decisioni che contiene una regressione su un attributo continuo, è possibile usare la formula di regressione per eseguire stime oppure estrarre informazioni sulla formula di regressione. Per altre informazioni sulle query sui modelli di regressione, vedere Esempi di query del modello di regressione lineare.
Se un modello di albero delle decisioni contiene una combinazione di nodi di regressione e nodi suddivisi in attributi o intervalli discreti, è possibile creare una query che restituisca solo il nodo di regressione. La tabella NODE_DISTRIBUTION contiene i dettagli della formula di regressione. In questo esempio le colonne vengono appiattite e la tabella NODE_DISTRIBUTION viene aliasata per una visualizzazione più semplice. In questo modello, tuttavia, non è stato trovato alcun regressore per correlare Income con altri attributi continui. In questi casi, Analysis Services restituisce il valore medio dell'attributo e la varianza totale nel modello per tale 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.ASSISTENZA | t.PROBABILITÀ | t.VARIANZA | t.VALUETYPE |
|---|---|---|---|---|---|
| Reddito annuale | Mancante | 0 | 0.000457142857142857 | 0 | 1 |
| Reddito annuale | 57220.8876687257 | 17484 | 0,999542857142857 | 1041275619.52776 | 3 |
| 57220.8876687257 | 0 | 0 | 1041216662.54387 | 11 |
Per altre informazioni sui tipi di valore e sulle statistiche usate nei modelli di regressione, vedere Contenuto del modello di data mining per modelli di regressione lineare (Analysis Services - Data mining).
Elenco di funzioni di stima
Tutti gli algoritmi Microsoft supportano un set comune di funzioni. Tuttavia, l'algoritmo Microsoft Decision Trees supporta le funzioni aggiuntive elencate nella tabella seguente.
| Funzione di Predizione | Uso |
| IsDescendant (DMX) | Determina se un nodo è figlio di un altro nodo nel modello. |
| IsInNode (DMX) | Indica se il nodo specificato contiene il caso corrente. |
| PredictAdjustedProbability (DMX) | Restituisce la probabilità ponderata. |
| PredictAssociation (DMX) | Stima l'appartenenza a un set di dati associativo. |
| PredictHistogram (DMX) | Restituisce una tabella di valori correlati al valore stimato corrente. |
| PredictNodeId (DMX) | Restituisce il Node_ID per ogni caso. |
| PredictProbability (DMX) | Restituisce la probabilità per il valore stimato. |
| PredictStdev (DMX) | Restituisce la deviazione standard stimata per la colonna specificata. |
| PredictSupport (DMX) | Restituisce il valore di supporto per uno stato specificato. |
| PredictVariance (DMX) | Restituisce la varianza di una colonna specificata. |
Per un elenco delle funzioni comuni a tutti gli algoritmi Microsoft, vedere Funzioni di stima generale (DMX). Per la sintassi di funzioni specifiche, vedere Informazioni di riferimento sulle funzioni DMX (Data Mining Extensions).
Vedere anche
Query di estrazione dei dati
Algoritmo degli Alberi Decisionali di Microsoft
Riferimento tecnico per l'algoritmo Microsoft Decision Trees
Contenuto del modello di data mining per i modelli di albero delle decisioni (Analysis Services - Data mining)