Riferimento tecnico dell'algoritmo di clustering Microsoft

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 sospeso 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.

Questo articolo illustra l'implementazione dell'algoritmo Microsoft Clustering, inclusi i parametri che è possibile usare per controllare il comportamento dei modelli di clustering. L'articolo fornisce anche indicazioni su come migliorare le prestazioni quando si creano ed elaborano modelli di clustering.

Per altre informazioni sull'uso dei modelli di clustering, vedere gli articoli seguenti:

implementazione dell'algoritmo Microsoft clustering

L'algoritmo Microsoft Clustering fornisce due metodi per la creazione di cluster e l'assegnazione di punti dati ai cluster. K-means è un metodo di clustering rigido, ovvero un punto dati può appartenere a un solo cluster e l'algoritmo calcola una singola probabilità per l'appartenenza di ogni punto dati in tale cluster. L'ottimizzazione delle aspettative (EM) è un metodo soft clustering , ovvero un punto dati appartiene sempre a più cluster e l'algoritmo calcola una probabilità per ogni combinazione di punto dati e cluster.

Scegliere l'algoritmo da usare impostando il parametro CLUSTERING_METHOD . Il metodo predefinito per il clustering è em scalabile.

clustering EM

Nel clustering EM l'algoritmo affina in modo iterativo un modello cluster iniziale per adattare i dati e determina la probabilità che un punto dati esista in un cluster. L'algoritmo termina il processo quando il modello probabilistico si adatta ai dati. La funzione usata per determinare l'adattamento è la probabilità di log dei dati specificati dal modello.

Se il processo genera cluster vuoti, oppure se il numero di elementi assegnati a uno o più cluster scende al di sotto di una determinata soglia, l'algoritmo reinizializza i cluster con pochi elementi in nuovi punti iniziali e riesegue l'algoritmo EM.

I risultati del metodo di clustering EM sono probabilistici, ovvero ogni punto dati appartiene a tutti i cluster, ma ogni assegnazione di un punto dati a un cluster ha una probabilità diversa. Poiché il metodo consente la sovrapposizione dei cluster, la somma degli elementi in tutti i cluster può superare gli elementi totali nel set di training. Nei risultati del modello di data mining i punteggi che indicano il supporto vengono modificati in base a questa sovrapposizione.

L'algoritmo EM è l'algoritmo predefinito usato nei modelli di clustering Microsoft. Questo algoritmo è l'impostazione predefinita perché offre i vantaggi seguenti rispetto al clustering k-means:

  • Richiede al massimo un'analisi del database.

  • Funziona nonostante memoria limitata (RAM).

  • Può utilizzare un cursore di solo avanzamento.

  • Supera i metodi di campionamento.

L'implementazione di Microsoft offre due opzioni: EM scalabile e non scalabile. In EM scalabile, per impostazione predefinita, i primi 50.000 record alimentano la scansione iniziale. Se questo passaggio ha esito positivo, il modello usa solo questi dati. Se il modello non può adattarsi usando 50.000 record, l'algoritmo legge altri 50.000 record.

In EM non scalabile, l'algoritmo legge l'intero set di dati indipendentemente dalle dimensioni. Questo metodo potrebbe creare cluster più accurati, ma può avere requisiti di memoria significativi. Poiché EM scalabile opera su un buffer locale, l'iterazione dei dati è più veloce e l'algoritmo usa meglio la cache della memoria della CPU rispetto a EM non scalabile. EM scalabile è tre volte più veloce di EM non scalabile anche se tutti i dati stanno nella memoria principale. Nella maggior parte dei casi, il miglioramento delle prestazioni non comporta una qualità inferiore del modello completo.

Per un rapporto tecnico che descrive l'implementazione di EM nell'algoritmo di clustering Microsoft, vedere Scaling EM (Expectation Maximization) Clustering to Large Databases.

Clustering K-means

Il clustering K-means è un metodo noto per assegnare l'appartenenza al cluster riducendo al minimo le differenze tra gli elementi in un cluster, ottimizzando al contempo la distanza tra i cluster. Il termine "means" in k-means si riferisce al centroide del cluster, ossia a un punto dati scelto in modo arbitrario e poi perfezionato iterativamente fino a rappresentare la vera media di tutti i punti dati nel cluster. La "k" si riferisce a un numero arbitrario di punti che inizializzano il processo di clustering. L'algoritmo k-means calcola le distanze euclidee quadrate tra i record di dati in un cluster e il vettore che rappresenta la media del cluster e converge su un set finale di k cluster quando tale somma raggiunge il valore minimo.

L'algoritmo k-means assegna ogni punto dati a un solo cluster e non consente l'incertezza nell'appartenenza. Si esprime l'appartenenza a un cluster come distanza dal centroide.

In genere, si usa l'algoritmo k-means per la creazione di cluster di attributi continui, in cui il calcolo della distanza verso una media è semplice. Tuttavia, l'implementazione Microsoft adatta il metodo k-means agli attributi discreti del cluster usando probabilità. Per gli attributi discreti, la distanza di un punto dati da un determinato cluster viene calcolata come segue:

1 - P(punto dati, cluster)

Annotazioni

L'algoritmo Microsoft Clustering non espone la funzione di distanza usata nel calcolo k-means e le misure di distanza non sono disponibili nel modello completato. È tuttavia possibile usare una funzione di stima per restituire un valore che corrisponde alla distanza, dove la distanza viene calcolata come probabilità di un punto dati appartenente al cluster. Per altre informazioni, vedere ClusterProbability (DMX).

L'algoritmo k-means fornisce due metodi per campionare il set di dati: il k-means non scalabile, che carica l'intero set di dati ed esegue un unico passaggio di clustering, oppure il k-means scalabile, in cui l'algoritmo usa i primi 50.000 casi e legge altri casi solo se ha bisogno di più dati per ottenere un buon adattamento del modello ai dati.

Aggiornamenti dell'algoritmo Microsoft Clustering in SQL Server 2008

In SQL Server 2008, la configurazione predefinita dell'algoritmo Microsoft Clustering è stata modificata per usare il parametro internoNORMALIZATION = 1. L'algoritmo esegue la normalizzazione usando le statistiche z-score e presuppone una distribuzione normale. Lo scopo di questa modifica del comportamento predefinito è ridurre al minimo l'effetto degli attributi con grandi dimensioni e molti outlier. Tuttavia, la normalizzazione del punteggio z potrebbe modificare i risultati del clustering nelle distribuzioni che non sono normali, ad esempio distribuzioni uniformi. Per evitare la normalizzazione e ottenere lo stesso comportamento dell'algoritmo di clustering K-means in SQL Server 2005, usare la finestra di dialogo Impostazioni parametro per aggiungere il parametro personalizzato NORMALIZATION e impostarne il valore su 0.

Annotazioni

Il NORMALIZATION parametro è una proprietà interna dell'algoritmo Microsoft Clustering e non è supportato. In generale, usare la normalizzazione nei modelli di clustering per migliorare i risultati del modello.

Personalizzazione dell'algoritmo Microsoft Clustering

L'algoritmo Microsoft Clustering supporta diversi parametri che influiscono sul comportamento, sulle prestazioni e sull'accuratezza del modello di data mining risultante.

Parametri dell'algoritmo

Nella tabella seguente vengono descritti i parametri che è possibile usare con l'algoritmo di clustering Microsoft. Questi parametri influiscono sia sulle prestazioni che sull'accuratezza del modello di data mining risultante.

Metodo_di_Clustering
Specifica il metodo di clustering da usare per l'algoritmo. Sono disponibili i metodi di clustering seguenti:

Documento d'identità Metodo
1 EM scalabile
2 EM non scalabile
3 K-Means scalabile
4 K-Means non scalabile.

Il valore predefinito è 1 (EM scalabile).

CLUSTER_COUNT
Specifica il numero approssimativo di cluster da compilare dall'algoritmo. Se l'algoritmo non riesce a compilare il numero approssimativo di cluster dai dati, compila il maggior numero possibile di cluster. Se si imposta il CLUSTER_COUNT su 0, l'algoritmo usa l'euristica per determinare al meglio il numero di cluster da compilare.

Il valore predefinito è 10.

CLUSTER_SEED
Specifica il valore seed che l'algoritmo usa per generare casualmente i cluster nella fase iniziale della creazione del modello.

Modificando questo numero, è possibile modificare la modalità di compilazione dei cluster iniziali e quindi confrontare i modelli compilati usando semi diversi. Se si modifica il valore di inizializzazione ma i cluster rilevati dall'algoritmo non cambiano notevolmente, è possibile considerare il modello relativamente stabile.

Il valore predefinito è 0.

SUPPORTO_MINIMO
Specifica il numero minimo di case necessari per compilare un cluster. Se il numero di case nel cluster è inferiore a questo numero, l'algoritmo considera il cluster come vuoto e lo rimuove. Se si imposta questo numero troppo in alto, si rischia di non individuare cluster validi.

Annotazioni

Se si usa il metodo di clustering EM predefinito, alcuni cluster potrebbero avere un valore di supporto inferiore al valore specificato. Questa condizione esiste perché l'algoritmo valuta ogni caso per l'appartenenza a tutti i cluster possibili e per alcuni cluster potrebbe essere disponibile solo un supporto minimo.

Il valore predefinito è 1.

MODELLING_CARDINALITY
Specifica il numero di modelli di esempio che l'algoritmo costruisce durante il processo di clustering.

La riduzione del numero di modelli candidati può migliorare le prestazioni a rischio di mancanza di alcuni modelli candidati validi.

Il valore predefinito è 10.

TOLLERANZA_DI_ARRESTO
Specifica il valore utilizzato dall'algoritmo per determinare quando viene raggiunta la convergenza e l'algoritmo termina la compilazione del modello. La convergenza viene raggiunta quando la variazione complessiva delle probabilità del cluster è inferiore al rapporto tra il parametro STOPPING_TOLERANCE diviso per le dimensioni del modello.

Il valore predefinito è 10.

SAMPLE_SIZE
Specifica il numero di case utilizzati dall'algoritmo in ogni passaggio se il parametro CLUSTERING_METHOD è impostato su uno dei metodi di clustering scalabili. L'impostazione del parametro SAMPLE_SIZE su 0 determina il clustering dell'intero set di dati in un singolo passaggio, che può causare problemi di memoria e prestazioni.

Il valore predefinito è 50000.

MAXIMUM_INPUT_ATTRIBUTES
Specifica il numero massimo di attributi di input che l'algoritmo può gestire prima di richiamare la selezione delle funzionalità. L'impostazione di questo valore su 0 specifica che non esiste un numero massimo di attributi.

L'aumento del numero di attributi può ridurre significativamente le prestazioni.

Il valore predefinito è 255.

STATI_MASSIMI
Specifica il numero massimo di stati dell'attributo supportati dall'algoritmo. Se un attributo ha più stati del valore massimo, l'algoritmo usa gli stati più diffusi e ignora gli stati rimanenti.

L'aumento del numero di stati può ridurre significativamente le prestazioni.

L'impostazione predefinita è 100.

Flag di modellazione

L'algoritmo supporta i flag di modellazione seguenti. Definire i flag di modellazione quando si crea la struttura di data mining o il modello di data mining. I flag di modellazione specificano la modalità di gestione dei valori in ogni colonna durante l'analisi.

Indicatore di modellazione Description
MODEL_EXISTENCE_ONLY La colonna ha due possibili stati: Mancante ed Esistente. Un valore Null è un valore mancante.

Si applica alla colonna del modello di data mining.
NON NULLO La colonna non può contenere un valore Null. Si verifica un errore se Analysis Services rileva un valore Null durante il training del modello.

Si applica alla colonna della struttura di data mining.

Requisiti

Un modello di clustering deve contenere una colonna chiave e colonne di input. È anche possibile definire colonne di input come prevedibili. Le colonne impostate su Predict Only non vengono usate per compilare cluster. La distribuzione di questi valori nei cluster viene calcolata dopo la compilazione dei cluster.

Colonne di input e prevedibili

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

colonna Tipi di contenuto
Attributo di input Continuo, Ciclico, Discreto, Discretizzato, Chiave, Tabella, Ordinato
Attributo prevedibile Continuo, Ciclico, Discreto, Discretizzato, Tabella, Ordinato

Annotazioni

I tipi di contenuto ciclici e ordinati sono supportati, ma l'algoritmo li considera come valori discreti e non esegue un'elaborazione speciale.

Vedere anche

Algoritmo Microsoft Clustering
Esempi di query del modello di clustering
Contenuto del modello di data mining per i modelli di clustering (Analysis Services - Data Mining)