Condividi tramite


Esempi di query del modello di raggruppamento di sequenze

Quando si crea una query su un modello di data mining, è possibile creare una query sul contenuto, che fornisce informazioni dettagliate sulle informazioni archiviate nel modello oppure creare una query di stima, che usa i modelli nel modello per eseguire stime in base ai nuovi dati forniti. Per un modello di clustering di sequenza, le query sul contenuto in genere forniscono dettagli aggiuntivi sui cluster trovati o sulle transizioni all'interno di tali cluster. È anche possibile recuperare i metadati relativi al modello usando una query.

Le query di stima su un modello di clustering di sequenza in genere fanno raccomandazioni basate sulle sequenze e sulle transizioni, sugli attributi non di sequenza inclusi nel modello o su una combinazione di attributi di sequenza e non sequenza.

Questa sezione illustra come creare query per i modelli basati sull'algoritmo Microsoft Sequence Clustering. Per informazioni generali sulla creazione di query, vedere Query di data mining.

Query sul contenuto

Utilizzo del set di righe dello schema di data mining per restituire i parametri del modello

Recupero di un elenco di sequenze per uno stato

Utilizzo delle stored procedure di sistema

Query di previsione

Stimare lo stato o gli stati successivi

Ricerca di informazioni sul modello Sequence Clustering

Per creare query significative sul contenuto di un modello di data mining, è 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 sequence clustering (Analysis Services - Data mining) .

Esempio di query 1: Uso del set di righe dello schema di data mining per restituire i parametri del modello

Eseguendo una query sul set di righe dello schema di data mining, è possibile trovare vari tipi di informazioni sul modello, inclusi i metadati di base, la data e l'ora in cui è stato creato e elaborato il modello, il nome della struttura di data mining su cui si basa il modello e la colonna utilizzata come attributo stimabile.

La query seguente restituisce i parametri usati per compilare ed eseguire il training del modello, [Sequence Clustering]. È possibile creare questo modello nella lezione 5 dell'esercitazione di base sul data mining.

SELECT MINING_PARAMETERS   
from $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'Sequence Clustering'  

Risultati dell'esempio:

PARAMETRI_MINERARI
CLUSTER_COUNT=15,MINIMUM_SUPPORT=10,MAXIMUM_STATES=100,MAXIMUM_SEQUENCE_STATES=64

Si noti che questo modello è stato compilato usando il valore predefinito 10 per CLUSTER_COUNT. Quando si specifica un numero diverso da zero di cluster per CLUSTER_COUNT, l'algoritmo considera questo numero come suggerimento per il numero approssimativo di cluster da trovare. Tuttavia, durante il processo di analisi, l'algoritmo potrebbe trovare più o meno cluster. In questo caso, l'algoritmo ha rilevato che 15 cluster si adattano meglio ai dati di training. Di conseguenza, l'elenco dei valori dei parametri per il modello completato segnala il numero di cluster come determinato dall'algoritmo, non il valore passato durante la creazione del modello.

In che modo questo comportamento differisce da consentire all'algoritmo di determinare il numero migliore di cluster? Come esperimento, è possibile creare un altro modello di clustering che usa gli stessi dati, ma impostare CLUSTER_COUNT su 0. Quando si esegue questa operazione, l'algoritmo rileva 32 cluster. Pertanto, usando il valore predefinito 10 per CLUSTER_COUNT, si vincola il numero di risultati.

Il valore 10 viene usato per impostazione predefinita perché la riduzione del numero di cluster semplifica l'esplorazione e la comprensione dei raggruppamenti nei dati da parte della maggior parte delle persone. Tuttavia, ogni modello e set di dati è diverso. È possibile provare a usare diversi numeri di cluster per vedere quale valore del parametro restituisce il modello più accurato.

Query di esempio 2: Ottenere un elenco di sequenze per uno stato

Il contenuto del modello di data mining archivia le sequenze presenti nei dati di training come primo stato abbinato a un elenco di tutti i secondi stati correlati. Il primo stato viene usato come etichetta per la sequenza e i secondi stati correlati vengono chiamati transizioni.

Ad esempio, la query seguente restituisce l'elenco completo dei primi stati nel modello, prima che le sequenze vengano raggruppate in cluster. È possibile ottenere questo elenco restituendo l'elenco di sequenze (NODE_TYPE = 13) con il nodo radice del modello come padre (PARENT_UNIQUE_NAME = 0). La parola chiave FLATTENED semplifica la lettura dei risultati.

Annotazioni

Il nome delle colonne, PARENT_UNIQUE_NAME, supporto e probabilità deve essere racchiuso tra parentesi quadre per distinguerle dalle parole chiave riservate con lo stesso nome.

SELECT FLATTENED NODE_UNIQUE_NAME,  
(SELECT ATTRIBUTE_VALUE AS [Product 1],  
[Support] AS [Sequence Support],   
[Probability] AS [Sequence Probability]  
FROM NODE_DISTRIBUTION) AS t  
FROM [Sequence Clustering].CONTENT  
WHERE NODE_TYPE = 13  
AND [PARENT_UNIQUE_NAME] = 0  

Risultati parziali:

NOME_UNICO_NODO Prodotto 1 Supporto sequenza Probabilità di sequenza
1081327 Mancante 0 #######
1081327 All-Purpose Supporto per biciclette 17 0.00111
1081327 Lavaggio biciclette 64 0.00418
1081327 (righe da 4 a 36 omesse)
1081327 Pantaloncini da montagna da donna 506 0.03307

L'elenco di sequenze nel modello viene sempre ordinato alfabeticamente in ordine crescente. L'ordinamento delle sequenze è importante perché è possibile trovare le transizioni correlate esaminando il numero di ordine della sequenza. Il Missing valore è sempre transizione 0.

Ad esempio, nei risultati precedenti, il prodotto "Women's Mountain Shorts" è il numero di sequenza 37 nel modello. È possibile utilizzare queste informazioni per visualizzare tutti i prodotti che sono stati acquistati dopo "Women's Mountain Shorts".

A tale scopo, fare riferimento al valore restituito per NODE_UNIQUE_NAME nella query precedente per ottenere l'ID del nodo che contiene tutte le sequenze per il modello. Questo valore viene passato alla query come ID del nodo padre per ottenere solo le transizioni incluse in questo nodo, che contiene un elenco di sequenze al per il modello. Tuttavia, se si vuole visualizzare l'elenco delle transizioni per un cluster specifico, è possibile passare l'ID del nodo del cluster e visualizzare solo le sequenze associate a tale cluster.

SELECT NODE_UNIQUE_NAME  
FROM [Sequence Clustering].CONTENT  
WHERE NODE_DESCRIPTION = 'Transition row for sequence state 37'  
AND [PARENT_UNIQUE_NAME] = '1081327'  

Risultati dell'esempio:

NOME_UNICO_NODO
1081365

Il nodo rappresentato da questo ID contiene un elenco delle sequenze che seguono il prodotto "Women's Mountain Shorts", insieme ai valori di supporto e probabilità.

SELECT FLATTENED  
(SELECT ATTRIBUTE_VALUE AS Product2,  
[Support] AS [P2 Support],  
[Probability] AS [P2 Probability]  
FROM NODE_DISTRIBUTION) AS t  
FROM [Sequence Clustering].CONTENT  
WHERE NODE_UNIQUE_NAME = '1081365'  

Risultati dell'esempio:

t.Product2 Supporto t.P2 t.P2 Probabilità
Mancante 230.7419 0.456012
Giubbotto classico 8.16129 0.016129
Berretto ciclistico 60.83871 0.120235
guanti Half-Finger 30.41935 0.060117
Maglia con Logo Long-Sleeve 86.80645 0.171554
Calzini da corsa 28.93548 0.057185
Short-Sleeve Jersey classico 60.09677 0.118768

Si noti che il supporto per le varie sequenze correlate a Women's Mountain Shorts è 506 nel modello. I valori di supporto per le transizioni, sommati insieme, danno 506. Tuttavia, i numeri non sono numeri interi, che sembra un po 'strano se si prevede che il supporto rappresenti semplicemente un conteggio dei casi che contengono ogni transizione. Tuttavia, poiché il metodo per la creazione di cluster calcola l'appartenenza parziale, la probabilità di qualsiasi transizione all'interno di un cluster deve essere ponderata in base alla probabilità di appartenere a quel particolare cluster.

Ad esempio, se sono presenti quattro cluster, una particolare sequenza potrebbe avere 40% probabilità di appartenere al cluster 1, 30% possibilità di appartenere al cluster 2, 20% possibilità di appartenere al cluster 3 e 10% possibilità di appartenere al cluster 4. Dopo che l'algoritmo determina il cluster a cui è probabile che la transizione appartenga per lo più, valuta le probabilità all'interno del cluster in base alla probabilità precedente del cluster.

Esempio di query 3: Utilizzo di Stored Procedure di Sistema

È possibile osservare da questi esempi di query che le informazioni archiviate nel modello sono complesse e che potrebbe essere necessario creare più query per ottenere le informazioni necessarie. Tuttavia, il visualizzatore Microsoft Sequence Clustering offre un potente set di strumenti per esplorare graficamente le informazioni contenute in un modello sequence clustering ed è anche possibile usare il visualizzatore per eseguire query ed eseguire il drill-down nel modello.

Nella maggior parte dei casi, le informazioni presentate nel visualizzatore Microsoft Sequence Clustering vengono create usando le stored procedure di sistema di Analysis Services per eseguire query sul modello. È possibile scrivere query DMX (Data Mining Extensions) sul contenuto del modello per ottenere le medesime informazioni, ma le stored procedure di sistema all'interno di Analysis Services forniscono un collegamento pratico per l'esplorazione o per testare i modelli.

Annotazioni

Le stored procedure di sistema vengono utilizzate per l'elaborazione interna dal server e dai client forniti da Microsoft per interagire con il server Analysis Services. Pertanto, Microsoft si riserva il diritto di modificarli in qualsiasi momento. Anche se sono descritti qui per praticità, non è supportato l'uso in un ambiente di produzione. Per garantire stabilità e compatibilità in un ambiente di produzione, è consigliabile scrivere sempre query personalizzate usando DMX.

In questa sezione vengono forniti alcuni esempi di come usare le stored procedure di sistema per creare query su un modello sequence clustering:

Profili cluster e casi di esempio

La scheda Profili cluster mostra un elenco dei cluster nel modello, le dimensioni di ogni cluster e un istogramma che indica gli stati inclusi nel cluster. Esistono due procedure di archiviazione di sistema che si possono usare nelle query per recuperare informazioni simili.

  • GetClusterProfile restituisce le caratteristiche del cluster, con tutte le informazioni disponibili nella tabella NODE_DISTRIBUTION per il cluster.

  • GetNodeGraph restituisce nodi e archi che possono essere usati per costruire una rappresentazione matematica del grafo dei cluster, corrispondente a quanto visualizzato nella prima scheda della visualizzazione Sequence Clustering. I nodi sono cluster e i bordi rappresentano pesi o resistenza.

Nell'esempio seguente viene illustrato come usare la stored procedure di sistema, GetClusterProfiles, per restituire tutti i cluster nel modello, con i rispettivi profili. Questa procedura memorizzata esegue una serie di DMX istruzioni che restituiscono l'insieme completo di profili nel modello. Tuttavia, per utilizzare questa procedura memorizzata, è necessario conoscere l'indirizzo del modello.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterProfiles('Sequence Clustering', 2147483647, 0)

Nell'esempio seguente viene illustrato come recuperare il profilo per un cluster specifico, Cluster 12, usando la stored procedure GetNodeGraphdi sistema e specificando l'ID cluster, che in genere corrisponde al numero nel nome del cluster.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetNodeGraph('Sequence Clustering','12',0)  

Se si omette l'ID cluster, come illustrato nella query seguente, GetNodeGraph restituisce un elenco ordinato e bidimensionale di tutti i profili del cluster:

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetNodeGraph('Sequence Clustering','',0)  

La scheda Profilo cluster visualizza anche un istogramma dei casi campione del modello. Questi casi di esempio rappresentano i casi ideali per il modello. Questi casi non vengono archiviati nel modello nello stesso modo in cui i dati di training sono; è necessario utilizzare una sintassi speciale per recuperare i case di esempio per il modello.

SELECT * FROM [Sequence Clustering].SAMPLE_CASES WHERE IsInNode('12')  

Per ulteriori informazioni, vedere SELECT FROM <model>.SAMPLE_CASES (DMX).

Caratteristiche del Cluster e Discriminazione del Cluster

La scheda Caratteristiche cluster riepiloga gli attributi principali di ogni cluster, classificati in base alla probabilità. È possibile scoprire quanti casi appartengono a un cluster e qual è la distribuzione dei casi nel cluster: ogni caratteristica ha un determinato supporto. Per visualizzare le caratteristiche di un particolare cluster, è necessario conoscere l'ID del cluster.

Negli esempi seguenti viene usata la stored procedure di sistema, GetClusterCharacteristics, per restituire tutte le caratteristiche del cluster 12 con un punteggio di probabilità rispetto alla soglia specificata di 0,0005.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterCharacteristics('Sequence Clustering','12',0.0005)  

Per restituire le caratteristiche di tutti i cluster, è possibile lasciare vuoto l'ID cluster.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterCharacteristics('Sequence Clustering','',0.0005)  

L'esempio seguente chiama la stored procedure GetClusterDiscrimination di sistema per confrontare le caratteristiche del cluster 1 e del cluster 12.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterDiscrimination('Sequence Clustering','1','12',0.0005,true)  

Se si vuole scrivere una query personalizzata in DMX per confrontare due cluster o confrontare un cluster con il relativo complemento, è prima necessario recuperare un set di caratteristiche e quindi recuperare le caratteristiche per il cluster specifico a cui si è interessati e confrontare i due set. Questo scenario è più complesso e in genere richiede un'elaborazione client.

Stati e transizioni

La scheda Transizioni di stato di Microsoft Sequence Clustering esegue query complesse sul back-end per recuperare e confrontare le statistiche per cluster diversi. Per riprodurre questi risultati, è necessaria una query più complessa e un'elaborazione lato client.

Tuttavia, è possibile usare le query DMX descritte nell'esempio 2 della sezione Query contenuto per recuperare probabilità e stati per le sequenze o per le singole transizioni.

Uso del modello per eseguire stime

Le query di previsione in un modello di clustering delle sequenze possono usare molte delle funzioni di previsione usate con altri modelli di clustering. Inoltre, è possibile usare la funzione di stima speciale PredictSequence (DMX) per creare raccomandazioni o prevedere gli stati successivi.

Query di esempio 4: Predire lo stato o gli stati successivi

È possibile usare la funzione PredictSequence (DMX) per stimare lo stato più probabile successivo, dato un valore. È anche possibile prevedere più stati successivi: ad esempio, è possibile restituire un elenco dei primi tre prodotti che è probabile che un cliente acquisti, per presentare un elenco di raccomandazioni.

La query di esempio seguente è una query di previsione singola che restituisce le prime cinque previsioni, insieme alla loro probabilità. Poiché il modello include una tabella nidificata, è necessario usare la tabella nidificata, [v Assoc Seq Line Items], come riferimento di colonna quando si fanno previsioni. Inoltre, quando si specificano valori come input, è necessario unire sia la tabella dei casi sia le colonne della tabella nidificata, come illustrato dalle istruzioni SELECT annidate.

SELECT FLATTENED PredictSequence([v Assoc Seq Line Items], 7)  
FROM [Sequence Clustering]  
NATURAL PREDICTION JOIN  
(SELECT  (SELECT 1 as [Line Number],  
   'All-Purpose Bike Stand' as [Model]) AS [v Assoc Seq Line Items])   
AS t  

Risultati dell'esempio:

Expression.Sequenza Numero di riga dell'espressione Expression.Model
1 Berretto ciclistico
2 Berretto ciclistico
3 Sport-100
4 Long-Sleeve Logo Maglia
5 guanti Half-Finger
6 All-Purpose Portabici
7 All-Purpose portabiciclette

Nei risultati sono presenti tre colonne, anche se è possibile prevedere solo una colonna, perché la query restituisce sempre una colonna per la tabella case. Qui, i risultati sono appiattiti; altrimenti, la query restituirebbe una singola colonna che include due colonne di tabelle nidificate.

La colonna $sequence è una colonna restituita per impostazione predefinita dalla PredictSequence funzione per ordinare i risultati della stima. La colonna , [Line Number], è necessaria per trovare la corrispondenza con le chiavi di sequenza nel modello, ma le chiavi non vengono restituite.

È interessante notare che le sequenze più predette dopo All-Purpose Bike Stand sono Berretto da ciclismo e Berretto da ciclismo. Non si tratta di un errore. A seconda del modo in cui i dati vengono presentati al cliente e di come vengono raggruppati durante il training del modello, è molto possibile avere sequenze di questo tipo. Ad esempio, un cliente potrebbe acquistare un berretto di ciclismo (rosso) e quindi un altro capo ciclico (blu) o acquistare due in una riga se non c'era modo di specificare la quantità.

I valori nelle righe 6 e 7 sono segnaposto. Quando si raggiunge la fine della catena di possibili transizioni, anziché terminare i risultati della stima, il valore passato come input viene aggiunto ai risultati. Ad esempio, se è stato aumentato il numero di stime a 20, i valori per le righe da 6 a 20 saranno tutti uguali, All-Purpose Bike Stand.

Elenco funzioni

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

Funzione di Predizione Uso
Cluster (DMX) Restituisce il cluster che è più probabile che contenga il caso di input
ClusterDistance (DMX) Restituisce la distanza del case di input dal cluster specificato o, se non viene specificato alcun cluster, la distanza del case di input dal cluster più probabile.

Questa funzione può essere usata con qualsiasi tipo di modello di clustering (EM, K-Means e così via), ma i risultati variano a seconda dell'algoritmo.
ClusterProbability (DMX) Restituisce la probabilità che il case di input appartenga al cluster specificato.
IsInNode (DMX) Indica se il nodo specificato contiene il caso corrente.
PredictAdjustedProbability (DMX) Restituisce la probabilità modificata di uno stato specificato.
PredictAssociation (DMX) Stima l'appartenenza associativa.
PredictCaseLikelihood (DMX) Restituisce la probabilità che un case di input si adatti al modello esistente.
PredictHistogram (DMX) Restituisce una tabella che rappresenta un istogramma per la stima di una determinata colonna.
PredictNodeId (DMX) Restituisce il Node_ID del nodo a cui viene classificato il case.
PredictProbability (DMX) Restituisce la probabilità per uno stato specificato.
PredictSequence (DMX) Stima i valori di sequenza futuri per un set specificato di dati di sequenza.
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
Riferimento tecnico per l'algoritmo Microsoft Sequence Clustering
Algoritmo di Clusterizzazione Sequenziale di Microsoft
Contenuto del modello di data mining per i modelli di clustering di sequenze (Analysis Services - Data mining)