Condividi tramite


Esempi di query sul modello di associazione

Quando si crea una query su un modello di data mining, è possibile creare una query sul contenuto, tramite cui vengono forniti dettagli sulle regole e i set di elementi individuati durante l'analisi oppure una query di stima, in cui vengono utilizzate le associazioni individuate nei dati per eseguire stime. Per un modello di associazione, le stime sono in genere basate su regole e possono essere utilizzate per fornire indicazioni, mentre le query sul contenuto solitamente esplorano la relazione tra set di elementi. È anche possibile recuperare metadati relativi al modello.

Questa sezione illustra come creare questi tipi di query per i modelli basati sull'algoritmo Microsoft Association Rules.

Query sul contenuto

Recupero di dati dei metadati del modello tramite DMX

Recupero di metadati dal set di righe dello schema

Recupero dei parametri originali per il modello

Recupero di un elenco di set di elementi e prodotti

Restituzione dei primi 10 set di elementi

Query di stima

Stima degli elementi associati

Determinazione della confidenza per i set di elementi correlati

Ricerca di informazioni sul modello

In tutti i modelli di data mining viene esposto il contenuto appreso dall'algoritmo secondo uno schema standardizzato, definito set di righe dello schema del modello di data mining. È possibile creare query sul set di righe dello schema del modello di data mining usando istruzioni DMX (Data Mining Extensions) o tramite stored procedure di Analysis Services. In SQL Server 2014 è anche possibile eseguire query sui set di righe dello schema direttamente come tabelle di sistema usando una sintassi simile a SQL.

Esempio di query 1: Recupero di metadati del modello tramite DMX

Con la query seguente vengono restituiti i metadati relativi al modello di associazione Association, ad esempio il nome del modello, il database in cui è archiviato e il numero di nodi figlio del modello. Questa query utilizza una query contenuto DMX per recuperare i metadati dal nodo padre del modello:

SELECT MODEL_CATALOG, MODEL_NAME, NODE_CAPTION,   
NODE_SUPPORT, [CHILDREN_CARDINALITY], NODE_DESCRIPTION  
FROM Association.CONTENT  
WHERE NODE_TYPE = 1  

Nota

È necessario includere il nome della colonna CHILDREN_CARDINALITY tra parentesi quadre per distinguerlo dalla parola chiave riservata MDX con lo stesso nome.

Risultati dell'esempio:

MODEL_CATALOG Association Test
MODEL_NAME Association Rules
NODE_CAPTION Association Rules Model
NODE_SUPPORT 14879
CHILDREN_CARDINALITY 942
NODE_DESCRIPTION Association Rules Model; ITEMSET_COUNT=679; RULE_COUNT=263; MIN_SUPPORT=14; MAX_SUPPORT=4334; MIN_ITEMSET_SIZE=0; MAX_ITEMSET_SIZE=3; MIN_PROBABILITY=0.400390625; MAX_PROBABILITY=1; MIN_LIFT=0.14309369632511; MAX_LIFT=1.95758227647523

Per una definizione di ciò che significano queste colonne in un modello di associazione, vedere Contenuto del modello di data mining per i modelli di associazione (Analysis Services - Data mining).

Tornare all'inizio

Esempio di query 2: Recupero di metadati aggiuntivi dal set di righe dello schema

Se si esegue una query sul set di righe dello schema di data mining, è possibile trovare le stesse informazioni restituite in una query contenuto DMX. Tuttavia, il set di righe dello schema fornisce alcune colonne aggiuntive, ad esempio la data dell'ultima elaborazione del modello, la struttura di data mining e il nome della colonna utilizzata come attributo stimabile.

SELECT MODEL_CATALOG, MODEL_NAME, SERVICE_NAME, PREDICTION_ENTITY,   
MINING_STRUCTURE, LAST_PROCESSED  
FROM $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'Association'  

Risultati dell'esempio:

MODEL_CATALOG Adventure Works DW Multidimensional 2012
MODEL_NAME Association Rules
SERVICE_NAME Association Rules Model
PREDICTION_ENTITY v Assoc Seq Line Items
MINING_STRUCTURE Association Rules
LAST_PROCESSED 9/29/2007 10:21:24 PM

Tornare all'inizio

Esempio di query 3: Recupero dei parametri originali per il modello

Con la query seguente viene restituita una singola colonna contenente i dettagli sulle impostazioni dei parametri utilizzate durante la creazione del modello.

SELECT MINING_PARAMETERS   
from $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'Association'  

Risultati dell'esempio:

MAXIMUM_ITEMSET_COUNT=200000,MAXIMUM_ITEMSET_SIZE=3,MAXIMUM_SUPPORT=1,MINIMUM_SUPPORT=9.40923449156529E-04,MINIMUM_IMPORTANCE=-999999999,MINIMUM_ITEMSET_SIZE=0,MINIMUM_PROBABILITY=0.4

Tornare all'inizio

Ricerca di informazioni su regole e set di elementi

Un modello di associazione viene utilizzato in genere per individuare informazioni sui set di elementi frequenti e per estrarre dettagli su regole e set di elementi specifici. Ad esempio, è possibile che si desideri estrarre un elenco di regole classificate come particolarmente interessanti o creare un elenco dei set di elementi più comuni. Tali informazioni vengono recuperate tramite una query sul contenuto DMX. È anche possibile esplorare queste informazioni usando il Visualizzatore Microsoft Association Rules.

Esempio di query 4: Recupero di un elenco di set di elementi e prodotti

Con la query seguente vengono recuperati tutti i set di elementi, insieme a una tabella nidificata in cui sono elencati i prodotti inclusi in ognuno di essi. La colonna NODE_NAME contiene l'ID univoco del set di elementi all'interno del modello, mentre NODE_CAPTION fornisce una descrizione di testo degli elementi. In questo esempio la tabella nidificata è bidimensionale, in modo che il set di elementi che contiene due prodotti genera due righe nei risultati. È possibile omettere la parola chiave FLATTENED se il client supporta dati gerarchici.

SELECT FLATTENED NODE_NAME, NODE_CAPTION,  
NODE_PROBABILITY, NODE_SUPPORT,  
(SELECT ATTRIBUTE_NAME FROM NODE_DISTRIBUTION) as PurchasedProducts  
FROM Association.CONTENT  
WHERE NODE_TYPE = 7  

Risultati dell'esempio:

NODE_NAME 37
NODE_CAPTION Sport-100 = Existing
NODE_PROBABILITY 0.291283016331743
NODE_SUPPORT 4334
PURCHASEDPRODUCTS.ATTRIBUTE_NAME v Assoc Seq Line Items(Sport-100)

Tornare all'inizio

Esempio di query 5: Recupero dei primi 10 set di elementi

In questo esempio viene illustrato come utilizzare alcune delle funzioni di raggruppamento e ordinamento disponibili per impostazione predefinita tramite DMX. La query restituisce i primi 10 set di elementi ordinati per supporto per ogni nodo. Si noti che non è necessario raggruppare in modo esplicito i risultati, come avviene invece in Transact-SQL; tuttavia, è possibile utilizzare un'unica funzione di aggregazione in ogni query.

SELECT TOP 10 (NODE_SUPPORT),NODE_NAME, NODE_CAPTION  
FROM Association.CONTENT  
WHERE NODE_TYPE = 7  

Risultati dell'esempio:

NODE_SUPPORT 4334
NODE_NAME 37
NODE_CAPTION Sport-100 = Existing

Tornare all'inizio

Esecuzione di stime tramite il modello

Un modello di regole di associazione viene spesso utilizzato per generare indicazioni basate sulle correlazioni individuate nei set di elementi. Pertanto, quando si crea una query di stima basata su un modello di regole di associazione, si utilizzano in genere le regole nel modello per fare supposizioni basate sui nuovi dati. PredictAssociation (DMX) è la funzione che restituisce raccomandazioni e include diversi argomenti che è possibile usare per personalizzare i risultati della query.

Le query su un modello di associazione possono anche risultare utili, ad esempio, per restituire la confidenza di varie regole e di vari set di elementi, in modo da confrontare l'efficacia di diverse strategie di cross-selling. Negli esempi seguenti viene illustrato come creare tali query.

Esempio di query 6: Stima degli elementi associati

In questo esempio viene usato il modello Association creato nell'Esercitazione intermedia sul data mining (Analysis Services - Data mining). Viene illustrato come creare una query di stima che indica quali prodotti consigliare a un cliente che ha acquistato un determinato prodotto. Questo tipo di query, in cui i valori vengono forniti al modello in un'istruzione SELECT...UNION, è denominata query singleton. Poiché la colonna del modello stimabile che corrisponde ai nuovi valori è una tabella nidificata, è necessario utilizzare una clausola SELECT per eseguire il mapping del nuovo valore alla colonna della tabella nidificata, [Model], e un'altra clausola SELECT per eseguire il mapping della colonna della tabella nidificata alla colonna a livello di case, [v Assoc Seq Line Items]. L'aggiunta della parola chiave INCLUDE-STATISTICS alla query consente di vedere la probabilità e il supporto per le indicazioni.

SELECT PredictAssociation([Association].[vAssocSeqLineItems],INCLUDE_STATISTICS, 3)  
FROM [Association]  
NATURAL PREDICTION JOIN   
(SELECT  
(SELECT 'Classic Vest' as [Model])  
AS [v Assoc Seq Line Items])  
AS t  

Risultati dell'esempio:

Modellare $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
Sport-100 4334 0.291283 0.252696
Water Bottle 2866 0.19262 0.175205
Patch kit 2113 0.142012 0.132389

Torna all'inizio

Esempio di query 7: Determinazione della confidenza per i set di elementi correlati

Mentre le regole sono utili per generare indicazioni, i set di elementi sono più interessanti per un'analisi più approfondita dei modelli nel set di dati. Se ad esempio le indicazioni restituiti con la query dell'esempio precedente non sono soddisfacenti, è possibile esaminare altri set di elementi che contengono il Prodotto A per valutare in modo più efficace se il Prodotto A è un accessorio che i clienti tendono ad acquistare con tutti i tipi di prodotti o se è strettamente correlato all'acquisto di determinati prodotti. Il modo più semplice per esplorare queste relazioni consiste nel filtrare i set di elementi in Microsoft Association Viewer; Tuttavia, è possibile recuperare le stesse informazioni con una query.

Con la query di esempio seguente vengono restituiti tutti i set di elementi che includono l'articolo Water Bottle, incluso il singolo articolo Water Bottle.

SELECT TOP 100 FROM   
(  
SELECT FLATTENED NODE_CAPTION, NODE_SUPPORT,   
(SELECT ATTRIBUTE_NAME from NODE_DISTRIBUTION  
WHERE ATTRIBUTE_NAME = 'v Assoc Seq Line Items(Water Bottle)') as D  
FROM Association.CONTENT  
WHERE NODE_TYPE = 7  
) AS Items  
WHERE [D.ATTRIBUTE_NAME] <> NULL  
ORDER BY NODE_SUPPORT DESC  

Risultati dell'esempio:

NODE_CAPTION NODE_SUPPORT D.ATTRIBUTE_NAME
Water Bottle = Existing 2866 v Assoc Seq Line Items(Water Bottle)
Mountain Bottle Cage = Existing, Water Bottle = Existing 1136 v Assoc Seq Line Items(Water Bottle)
Road Bottle Cage = Existing, Water Bottle = Existing 1068 v Assoc Seq Line Items(Water Bottle)
Water Bottle = Existing, Sport-100 = Existing 734 v Assoc Seq Line Items(Water Bottle)

Tramite questa query vengono restituite le righe della tabella nidificata che corrispondono ai criteri e tutte le righe della tabella esterna o del case. Pertanto, è necessario aggiungere una condizione che consente di eliminare le righe della tabella del case contenenti valori Null per il nome dell'attributo di destinazione.

Torna all'inizio

Elenco di funzioni

Tutti gli algoritmi Microsoft supportano un set comune di funzioni. Tuttavia, l'algoritmo Microsoft Association supporta le funzioni aggiuntive elencate nella tabella seguente.

Funzione di stima Utilizzo
IsDescendant (DMX) Viene determinato se un nodo è figlio di un altro nodo nel grafico della rete neurale.
IsInNode (DMX) Indica se il nodo specificato contiene o meno il case corrente.
PredictAdjustedProbability (DMX) Viene restituita la probabilità ponderata.
PredictAssociation (DMX) Viene stimata l'appartenenza a un set di dati associativo.
PredictHistogram (DMX) Viene restituita una tabella di valori correlati ai valori stimati correnti.
PredictNodeId (DMX) Viene restituito l'oggetto Node_ID per ogni case.
PredictProbability (DMX) Viene restituita la probabilità per il valore stimato.
PredictSupport (DMX) Viene restituito il valore di supporto per uno stato specificato.
PredictVariance (DMX) Viene restituita la varianza per il valore stimato.

Vedere anche

Algoritmo Microsoft Association Rules
Riferimento tecnico per l'algoritmo Microsoft Association Rules
Contenuto dei modelli di data mining per i modelli di associazione (Analysis Services - Data mining)