Riferimento tecnico per l'algoritmo Microsoft Sequence Clustering

Si applica a: SQL Server 2019 e versioni precedenti di Analysis Services Azure Analysis Services Fabric/Power BI Premium

Importante

Il data mining è stato deprecato in SQL Server 2017 Analysis Services e ora è stato interrotto in SQL Server 2022 Analysis Services. La documentazione non viene aggiornata per le funzionalità deprecate e non più disponibili. Per altre informazioni, vedere Compatibilità con le versioni precedenti di Analysis Services.

L'algoritmo Microsoft Sequence Clustering è un algoritmo ibrido in cui viene usata l'analisi delle catene di Markov per identificare le sequenze ordinate e consente di combinare i risultati di tale analisi con le tecniche di clustering per generare cluster in base alle sequenze e agli altri attributi del modello. In questo argomento viene illustrato come implementare e personalizzare l'algoritmo e vengono descritti requisiti speciali per i modelli Sequence Clustering.

Per informazioni più generali sull'algoritmo, che includono le modalità di esplorazione e di esecuzione di query sui modelli Sequence Clustering, vedere Microsoft Sequence Clustering Algorithm.

Implementazione dell'algoritmo Microsoft Sequence Clustering

Il modello Microsoft Sequence Clustering usano i modelli Markov per identificare le sequenze e determinare la probabilità delle sequenze. Un modello Markov è un grafico diretto che archivia le transizioni tra stati diversi. L'algoritmo Microsoft Sequence Clustering usano catene di Markov di ordine n, non un modello Markov nascosto.

Il numero di ordini di una catena Markov indica quanti stati vengono usati per determinare la probabilità degli stati correnti. In un modello Markov di primo ordine la probabilità dello stato corrente dipende solo dallo stato precedente. In una catena Markov di secondo ordine la probabilità di un stato dipende dai due stati precedenti e così via. Per ogni catena Markov una matrice della transizione archivia le transizioni per ogni combinazione di stati. Con l'aumentare della lunghezza della catena di Markov, aumenta anche la dimensione della matrice in modo esponenziale e la matrice diventa di tipo sparse. Anche il tempo di elaborazione aumenta proporzionalmente.

Potrebbe risultare utile visualizzare la catena usando l'esempio di analisi clickstream che analizza le visite alle pagine Web di un sito. Ogni utente crea una lunga sequenza di clic per ogni sessione. Quando si crea un modello per analizzare il comportamento dell'utente in un sito Web, il set di dati usato per il training è una sequenza di URL convertiti in un grafico che include il conteggio di tutte le istanze dello stesso percorso di clic. Nel grafico sono indicate ad esempio la probabilità che l'utente si sposti da pagina 1 a pagina 2 (10%), la probabilità che l'utente si sposti da pagina 1 a pagina 3 (20%) e così via. Unendo tutti i possibili percorsi e pezzi di percorso si ottiene un grafico che potrebbe essere molto più lungo e più complesso di qualsiasi singolo percorso osservato.

L'algoritmo Microsoft Sequence Clustering usano per impostazione predefinita il metodo di clustering Expectation Maximization (EM). Per altre informazioni, vedere Riferimento tecnico per l'algoritmo Microsoft Clustering.

Le destinazioni del clustering sono attributi sia sequenziali che non sequenziali. Ogni cluster viene selezionato casualmente mediante una distribuzione di probabilità. Ogni cluster ha una catena Markov, che rappresenta il set completo di percorsi, e una matrice, che contiene le probabilità e le transizioni degli stati di sequenza. In base alla distribuzione iniziale, viene usata la regola Bayes per calcolare la probabilità di un attributo, inclusa una sequenza, in un cluster specifico.

L'algoritmo Microsoft Sequence Clustering supporta l'aggiunta di attributi non sequenziali al modello. Ciò significa che questi attributi aggiuntivi vengono combinati con gli attributi di sequenza per creare cluster di case con attributi simili, come accade in un tipico modello di clustering.

Un modello Sequence Clustering tende a creare molti più cluster rispetto a un tipico modello di clustering. L'algoritmo Microsoft Sequence Clustering esegue pertanto la decomposizione del clusterper separare i cluster in base alle sequenze e ad altri attributi.

Caratteristica di selezione degli attributi in un modello Sequence Clustering

La caratteristica di selezione degli attributi non viene richiamata in caso di compilazione delle sequenze, tuttavia si applica in fase di clustering.

Tipo di modello Metodo relativo alla caratteristica di selezione degli attributi Commenti
Sequence Clustering Non usato La caratteristica di selezione degli attributi non viene richiamata. È tuttavia possibile controllare il comportamento dell'algoritmo impostando i valori dei parametri MINIMUM_SUPPORT e MINIMUM_PROBABILIITY.
Clustering Punteggio di interesse Anche se l'algoritmo Clustering può usare algoritmi discreti o discretizzati, il punteggio di ogni attributo viene calcolato come distanza ed è continuo. Viene pertanto usato il punteggio di interesse.

Per altre informazioni, vedere Feature Selection.

Ottimizzazione delle prestazioni

L'algoritmo Microsoft Sequence Clustering supporta varie modalità di ottimizzazione dell'elaborazione:

  • Controllo del numero di cluster generati mediante l'impostazione di un valore per il parametro CLUSTER_COUNT.

  • Riduzione del numero di sequenze incluse come attributi mediante l'aumento del valore del parametro MINIMUM_SUPPORT. Di conseguenza, le sequenze rare vengono eliminate.

  • Riduzione della complessità prima dell'elaborazione del modello mediante il raggruppamento degli attributi correlati.

In generale, è possibile ottimizzare le prestazioni di un modello di catene Markov di ordine n in diversi modi:

  • Controllando la lunghezza delle possibili sequenze.

  • Riducendo a livello di codice il valore di n.

  • Archiviando solo le probabilità che superano una soglia specificata.

Una descrizione esaustiva di questi metodi esula dall'ambito del presente argomento.

Personalizzazione dell'algoritmo Sequence Clustering

L'algoritmo Microsoft Sequence Clustering supporta parametri che influiscono sul comportamento, sulle prestazioni e sull'accuratezza del modello di data mining risultante. È inoltre possibile modificare il comportamento del modello completato impostando flag di modellazione che controllano la modalità di elaborazione dei dati di training da parte dell'algoritmo.

Impostazione dei parametri dell'algoritmo

Nella tabella seguente sono descritti i parametri che possono essere usati con l'algoritmo Microsoft Sequence Clustering.

CLUSTER_COUNT
Specifica il numero approssimativo di cluster che devono essere generati dall'algoritmo. Se i dati non consentono di generare il numero approssimativo di cluster, l'algoritmo compila il maggior numero di cluster possibile. Se si imposta su 0 il parametro CLUSTER_COUNT, l'algoritmo utilizzerà l'euristica per determinare con maggiore accuratezza il numero di cluster da compilare.

Il valore predefinito è 10.

Nota

La specifica di un numero diverso da zero funge da hint per l'algoritmo, che procede con l'obiettivo di individuare il numero specificato ma potrebbe individuarne un numero maggiore o minore.

MINIMUM_SUPPORT
Specifica il numero minimo di case richiesto come supporto per un attributo per la creazione di un cluster.

Il valore predefinito è 10.

MAXIMUM_SEQUENCE_STATES
Specifica il numero massimo di stati consentiti in una sequenza.

Se si imposta un valore numerico maggiore di 100, l'algoritmo potrebbe creare un modello che non fornisce informazioni significative.

Il valore predefinito è 64.

MAXIMUM_STATES
Specifica il numero massimo di stati per un attributo fuori sequenza supportato dall'algoritmo. Se il numero di stati per un attributo non sequenza è maggiore del numero massimo di stati, l'algoritmo usa gli stati più diffusi dell'attributo e considera gli stati rimanenti come Mancanti.

Il valore predefinito è 100.

Flag di modellazione

I flag di modellazione seguenti sono supportati per l'uso con l'algoritmo Microsoft Sequence Clustering.

NOT NULL
Indica che la colonna non può contenere un valore Null. Se Analysis Services rileva un valore Null durante il training del modello, viene generato un errore.

Si applica alla colonna della struttura di data mining.

MODEL_EXISTENCE_ONLY
Indica che la colonna verrà considerata come se presentasse due stati possibili: Missing e Existing. Un valore Null viene considerato come valore Missing .

Si applica alla colonna del modello di data mining.

Per altre informazioni sull'uso dei valori mancanti nei modelli di data mining e sul modo in cui i valori mancanti influiscono sui punteggi di probabilità, vedere Valori mancanti (Analysis Services - Data mining).

Requisiti

La tabella del case deve includere una colonna relativa agli ID e può contenere altre colonne che archiviano attributi sul case.

L'algoritmo Microsoft Sequence Clustering richiede informazioni sulla sequenza, archiviate come tabella nidificata. Nella tabella nidificata deve essere presente un'unica colonna Key Sequence. Una colonna Key Sequence può contenere qualsiasi tipo di dati che è possibile ordinare, inclusi tipi di dati string, ma deve contenere valori univoci per ogni case. Prima di elaborare il modello, è inoltre necessario assicurarsi che sia la tabella del case sia la tabella nidificata vengano ordinate in ordine crescente sulla chiave che correla le tabelle.

Nota

Se si crea un modello che usano l'algoritmo di Microsoft Sequence ma non usano una colonna Sequence, il modello risultante non conterrà alcuna sequenza, ma raggrupperà semplicemente i case in base ad altri attributi inclusi nel modello.

Colonne di input e stimabili

L'algoritmo Microsoft Sequence Clustering supporta le colonne di input specifiche e le colonne stimabili elencate nella tabella seguente. Per altre informazioni sui tipi di contenuto utilizzati in un modello di data mining, vedere Tipi di contenuto (data mining).

Colonna Tipi di contenuto
Attributo di input Continuous, Cyclical, Discrete, Discretized, Key, Key Sequence, Table e Ordered
Attributo stimabile Continuous, Cyclical, Discrete, Discretized, Table e Ordered

Commenti

Vedere anche

Algoritmo Microsoft Sequence Clustering
Sequence Clustering Model Query Examples
Contenuto dei modelli di data mining per i modelli Sequence Clustering (Analysis Services - Data mining)