Algoritmo Microsoft Clustering
L'algoritmo Microsoft Clustering è un algoritmo di segmentazione incluso in Microsoft SQL Server 2005 Analysis Services (SSAS). L'algoritmo utilizza tecniche iterative per raggruppare i case di un set di dati in cluster con caratteristiche simili. Tali raggruppamenti sono utili per l'esplorazione dei dati, l'identificazione delle relative anomalie e la creazione di stime.
I modelli di clustering identificano in un set di dati le relazioni che non è possibile derivare mediante l'osservazione casuale. Ad esempio, è possibile desumere per logica che le persone che si recano sul posto di lavoro in bicicletta in genere non abitano lontano. Tuttavia l'algoritmo può individuare altre caratteristiche non altrettanto ovvie sulle persone che si recano a lavoro in bicicletta. Nel diagramma seguente, il cluster A rappresenta i dati relativi alla persone che tendono a utilizzare l'automobile per recarsi a lavoro, mentre il cluster B rappresenta i dati relativi alle persone che tendono a recarsi a lavoro in bicicletta.
L'algoritmo di clustering si differenzia dagli altri algoritmi di data mining, ad esempio dall'algoritmo Microsoft Decision Trees, per il fatto che non è necessario designare una colonna stimabile per creare un modello di clustering. L'algoritmo di clustering esegue il training del modello rigorosamente in base alle relazioni esistenti tra i dati e ai cluster identificati.
Esempio
Si consideri un gruppo di persone con informazioni demografiche simili che acquistano prodotti analoghi dall'azienda Adventure Works. Tale gruppo di persone rappresenta un cluster di dati. Un database può contenere vari cluster di questo tipo. Se si osservano le colonne che costituiscono un cluster, è possibile individuare più chiaramente le relazioni reciproche esistenti tra i record di un set di dati.
Funzionamento dell'algoritmo
L'algoritmo Microsoft Clustering identifica innanzitutto le relazioni esistenti in un set di dati e genera una serie di cluster basati su tali relazioni. Un grafico a dispersione costituisce un metodo utile per rappresentare visivamente il modo in cui l'algoritmo raggruppa i dati, come illustrato nel diagramma seguente. Tale grafico rappresenta tutti i case del set di dati e ogni case corrisponde a un punto del grafico. I cluster corrispondono ai raggruppamenti dei punti nel grafico e illustrano le relazioni identificate dall'algoritmo.
Dopo aver definito i cluster, l'algoritmo calcola l'accuratezza con cui i cluster rappresentano i raggruppamenti dei punti e quindi tenta di ridefinire tali raggruppamenti per creare cluster in grado di rappresentare i dati con maggiore accuratezza. L'algoritmo esegue l'iterazione di questo processo fino a quando non è più possibile migliorare ulteriormente i risultati mediante la ridefinizione dei cluster.
L'algoritmo Microsoft Clustering offre due metodi per calcolare l'accuratezza con cui i punti vengono raggruppati nei cluster: EM (Expectation Maximization) e K-medie. Per il clustering EM, l'algoritmo utilizza un metodo probabilistico per determinare la probabilità che un cluster includa un determinato punto dati. For K-medie, l'algoritmo utilizza una misura di distanza per assegnare un punto dati al cluster più vicino.
Le colonne con un tipo di utilizzo impostato su PREDICT ONLY non vengono utilizzate per la creazione dei cluster. Le relative distribuzioni nei cluster vengono calcolate dopo la creazione dei cluster.
Per una descrizione più dettagliata del funzionamento dell'algoritmo Microsoft Clustering, vedere Adattamento dell'algoritmo di clustering EM (Expectation-Maximization) a database di grandi dimensioni.
Utilizzo dell'algoritmo
Un modello di clustering deve contenere una colonna chiave e le colonne di input. È inoltre possibile definire le colonne di input come stimabili.
L'algoritmo supporta tipi di contenuto specifici delle colonne di input, tipi di contenuto specifici delle colonne stimabili e flag di modellazione, elencati nella tabella seguente.
Tipi di contenuto delle colonne di input |
Continuous, Cyclical, Discrete, Discretized, Key, Table e Ordered |
Tipi di contenuto delle colonne stimabili |
Continuous, Cyclical, Discrete, Discretized, Table e Ordered |
Flag di modellazione |
MODEL_EXISTENCE_ONLY e NOT NULL |
Tutti gli algoritmi Microsoft supportano un set comune di funzioni. L'algoritmo Microsoft Clustering supporta tuttavia funzioni aggiuntive, elencate nella tabella seguente.
|
Per un elenco delle funzioni comuni a tutti gli algoritmi Microsoft, vedere Algoritmi di data mining. Per ulteriori informazioni sull'utilizzo di queste funzioni, vedere Guida di riferimento alle funzioni DMX (Data Mining Extensions).
L'algoritmo Microsoft Clustering supporta l'utilizzo dello standard PMML (Predictive Model Markup Language) per la creazione dei modelli di data mining.
L'algoritmo Microsoft Clustering supporta vari parametri che influiscono sulle prestazioni e sull'accuratezza del modello di data mining risultante. Nella tabella seguente viene descritto ogni parametro.
Parametro | Descrizione |
---|---|
CLUSTERING_METHOD |
Specifica il metodo di clustering utilizzato dall'algoritmo. I metodi di clustering disponibili sono: EM scalabile (1), EM non scalabile (2), K-medie scalabile (3) e K-medie non scalabile (4). Il valore predefinito è 1. |
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 genererà il maggior numero di cluster possibile. Se si imposta il parametro CLUSTER_COUNT su 0, l'algoritmo utilizzerà l'euristica per determinare con maggiore accuratezza il numero di cluster da generare. Il valore predefinito è 10. |
CLUSTER_SEED |
Specifica il numero di inizializzazione utilizzato per la generazione casuale dei cluster durante la fase iniziale di creazione del modello. Il valore predefinito è 0. |
MINIMUM_SUPPORT |
Specifica il numero minimo di case in ogni cluster. Il valore predefinito è 1. |
MODELLING_CARDINALITY |
Specifica il numero di modelli di esempio costruiti durante il processo di clustering. Il valore predefinito è 10. |
STOPPING_TOLERANCE |
Specifica il valore utilizzato per determinare quando viene raggiunta la convergenza e l'algoritmo ha completato la creazione del modello. La convergenza viene raggiunta quando la variazione complessiva nella probabilità del cluster è inferiore al rapporto tra il parametro STOPPING_TOLERANCE e le dimensioni del modello. Il valore predefinito è 10. |
SAMPLE_SIZE |
Specifica il numero di case utilizzati dall'algoritmo a ogni passaggio quando il parametro CLUSTERING_METHOD viene impostato su uno dei metodi di clustering scalabili seguenti. Se si imposta il parametro SAMPLE_SIZE su 0, l'intero set di dati verrà inserito nel cluster in un unico passaggio, causando possibili problemi di memoria e prestazioni. Il valore predefinito è 50000. |
MAXIMUM_INPUT_ATTRIBUTES |
Specifica il numero massimo di attributi di input che l'algoritmo è in grado di gestire prima di richiamare la funzionalità di selezione degli attributi. Se si imposta il valore 0, indica che non esiste un numero massimo di attributi. Il valore predefinito è 255. |
MAXIMUM_STATES |
Specifica il numero massimo di stati degli attributi supportati dall'algoritmo. Se il numero di stati di un attributo è maggiore del numero massimo, l'algoritmo utilizza gli stati più frequenti dell'attributo e ignora gli stati rimanenti. Il valore predefinito è 100. |
Vedere anche
Concetti
Algoritmi di data mining
Creazione guidata modello di data mining
Funzionalità di selezione degli attributi nel data mining
Utilizzo degli strumenti di data mining
Visualizzazione di un modello di data mining con il Visualizzatore Microsoft Clustering