Riferimento tecnico per l'algoritmo Microsoft ClusteringMicrosoft Clustering Algorithm Technical Reference

Si applica a: yesSQL Server Analysis Services alcunAzure Analysis ServicesAPPLIES TO: yesSQL Server Analysis Services noAzure Analysis Services

In questa sezione viene illustrata l'implementazione dell'algoritmo MicrosoftMicrosoft Clustering, inclusi i parametri che è possibile utilizzare per controllare il comportamento dei modelli di clustering.This section explains the implementation of the MicrosoftMicrosoft Clustering algorithm, including the parameters that you can use to control the behavior of clustering models. Vengono inoltre fornite istruzioni su come migliorare le prestazioni durante la creazione e l'elaborazione di modelli di clustering.It also provides guidance about how to improve performance when you create and process clustering models.

Per ulteriori informazioni sull'utilizzo dei modelli di clustering, vedere gli argomenti seguenti:For additional information about how to use clustering models, see the following topics:

Implementazione dell'algoritmo Microsoft ClusteringImplementation of the Microsoft Clustering Algorithm

L'algoritmo MicrosoftMicrosoft Clustering rende disponibili due metodi per la creazione di cluster e l'assegnazione di punti dati ai cluster.The MicrosoftMicrosoft Clustering algorithm provides two methods for creating clusters and assigning data points to the clusters. Il primo, l'algoritmo K-means , è un metodo di tipo hard clustering,The first, the K-means algorithm, is a hard clustering method. ovvero un punto dati può appartenere a un unico cluster e viene calcolata una singola probabilità per l'appartenenza di ogni punto dati a tale cluster.This means that a data point can belong to only one cluster, and that a single probability is calculated for the membership of each data point in that cluster. Il secondo, Expectation Maximization (EM), è un metodo di tipo soft clustering ,The second method, the Expectation Maximization (EM) method, is a soft clustering method. ovvero un punto dati appartiene sempre a più cluster e viene calcolata una probabilità per ogni combinazione di punto dati e cluster.This means that a data point always belongs to multiple clusters, and that a probability is calculated for each combination of data point and cluster.

È possibile scegliere l'algoritmo da usare impostando il parametro CLUSTERING_METHOD .You can choose which algorithm to use by setting the CLUSTERING_METHOD parameter. Il metodo predefinito per il clustering è EM scalabile.The default method for clustering is scalable EM.

Clustering EMEM Clustering

Nel clustering EM l'algoritmo perfeziona in modo iterativo un modello di cluster iniziale per il fit dei dati e determina la probabilità che un punto dati esista in un cluster.In EM clustering, the algorithm iteratively refines an initial cluster model to fit the data and determines the probability that a data point exists in a cluster. L'algoritmo termina il processo quando si ottiene il fit del modello probabilistico ai dati.The algorithm ends the process when the probabilistic model fits the data. La funzione utilizzata per determinare il fit è la probabilità in forma logaritmica dei dati, dato il modello.The function used to determine the fit is the log-likelihood of the data given the model.

Se durante il processo vengono generati cluster vuoti o se l'appartenenza di uno o più cluster è minore di una data soglia, i cluster con popolazioni basse vengono reinizializzati su nuovi punti e l'algoritmo EM viene rieseguito.If empty clusters are generated during the process, or if the membership of one or more of the clusters falls below a given threshold, the clusters with low populations are reseeded at new points and the EM algorithm is rerun.

I risultati del metodo di clustering EM sono probabilistici,The results of the EM clustering method are probabilistic. ovvero ogni punto dati appartiene a tutti i cluster, ma ogni assegnazione di un punto dati a un cluster presenta una probabilità diversa.This means that every data point belongs to all clusters, but each assignment of a data point to a cluster has a different probability. Poiché il metodo consente la sovrapposizione dei cluster, la somma degli elementi di tutti i cluster può essere maggiore del totale degli elementi del set di training.Because the method allows for clusters to overlap, the sum of items in all the clusters may exceed the total items in the training set. Nei risultati del modello di data mining i punteggi che indicano il supporto vengono adattati per tenere conto di questa situazione.In the mining model results, scores that indicate support are adjusted to account for this.

L'algoritmo EM è l'algoritmo predefinito utilizzato nei modelli di clustering Microsoft.The EM algorithm is the default algorithm used in Microsoft clustering models. Viene utilizzato come predefinito perché offre più vantaggi rispetto al clustering K-means:This algorithm is used as the default because it offers multiple advantages in comparison to k-means clustering:

  • Richiede al massimo un'analisi del database.Requires one database scan, at most.

  • Funziona anche se la quantità di memoria RAM è limitata.Will work despite limited memory (RAM).

  • Ha la possibilità di utilizzare un cursore forward-only.Has the ability to use a forward-only cursor.

  • Offre prestazioni più elevate rispetto agli approcci di campionamento.Outperforms sampling approaches.

L'implementazione Microsoft prevede due opzioni: EM scalabile e non scalabile.The Microsoft implementation provides two options: scalable and non-scalable EM. Per impostazione predefinita, nell'algoritmo EM scalabile vengono utilizzati i primi 50.000 record per inizializzare l'analisi iniziale.By default, in scalable EM, the first 50,000 records are used to seed the initial scan. Se l'operazione riesce, il modello utilizza solo questi dati.If this is successful, the model uses this data only. Se non è possibile ottenere il fit del modello utilizzando 50.000 record, vengono letti altri 50.000 record.If the model cannot be fit using 50,000 records, an additional 50,000 records are read. Nell'algoritmo EM non scalabile viene letto l'intero set di dati, indipendentemente dalla dimensione.In non-scalable EM, the entire dataset is read regardless of its size. Con questo metodo è possibile creare cluster più accurati, ma i requisiti di memoria possono essere significativi.This method might create more accurate clusters, but the memory requirements can be significant. Poiché EM scalabile opera su un buffer locale, le iterazioni nei dati sono molto più veloci e l'algoritmo utilizza la memoria cache della CPU in modo molto più efficace rispetto a EM non scalabile.Because scalable EM operates on a local buffer, iterating through the data is much faster, and the algorithm makes much better use of the CPU memory cache than non-scalable EM. Inoltre, EM scalabile è tre volte più veloce di EM non scalabile, anche se tutti i dati possono rientrare nella memoria principale.Moreover, scalable EM is three times faster than non-scalable EM, even if all the data can fit in main memory. Nella maggior parte dei casi, il miglioramento delle prestazioni non implica una riduzione della qualità del modello completo.In the majority of cases, the performance improvement does not lead to lower quality of the complete model.

Per un report tecnico in cui viene descritta l'implementazione di EM nell'algoritmo MicrosoftMicrosoft Clustering, vedere Adattamento dell'algoritmo di clustering EM (Expectation Maximization) a database di grandi dimensioni.For a technical report that describes the implementation of EM in the MicrosoftMicrosoft Clustering algorithm, see Scaling EM (Expectation Maximization) Clustering to Large Databases.

Clustering K-meansK-Means Clustering

Il clustering K-means è un metodo noto che consiste nell'assegnare l'appartenenza a un cluster riducendo le differenze tra gli elementi di un cluster e massimizzando allo stesso tempo la distanza tra i cluster.K-means clustering is a well-known method of assigning cluster membership by minimizing the differences among items in a cluster while maximizing the distance between clusters. Il termine "means" in K-means fa riferimento al centroide del cluster, ovvero un punto dati scelto arbitrariamente e quindi perfezionato in modo iterativo finché non rappresenta la media reale di tutti i punti dati del cluster.The "means" in k-means refers to the centroid of the cluster, which is a data point that is chosen arbitrarily and then refined iteratively until it represents the true mean of all data points in the cluster. La lettera "K" fa riferimento a un numero arbitrario di punti utilizzati per inizializzare il processo di clustering.The "k" refers to an arbitrary number of points that are used to seed the clustering process. L'algoritmo K-means calcola le distanze euclidee al quadrato tra i record di dati in un cluster e il vettore che rappresenta la media del cluster, quindi converge su un set finale di K cluster quando la somma raggiunge il valore minimo.The k-means algorithm calculates the squared Euclidean distances between data records in a cluster and the vector that represents the cluster mean, and converges on a final set of k clusters when that sum reaches its minimum value.

L'algoritmo K-means assegna ogni punto dati esattamente a un unico cluster e non consente incertezze nell'appartenenza.The k-means algorithm assigns each data point to exactly one cluster, and does not allow for uncertainty in membership. L'appartenenza a un cluster è espressa come distanza dal centro.Membership in a cluster is expressed as a distance from the centroid.

In genere, l'algoritmo K-means viene utilizzato per la creazione di cluster di attributi continui, in cui il calcolo della distanza da una media è un processo diretto.Typically, the k-means algorithm is used for creating clusters of continuous attributes, where calculating distance to a mean is straightforward. Tuttavia, l'implementazione MicrosoftMicrosoft adatta il metodo K-means agli attributi discreti dei cluster, utilizzando le probabilità.However, the MicrosoftMicrosoft implementation adapts the k-means method to cluster discrete attributes, by using probabilities. Per gli attributi discreti, la distanza di un punto dati da un determinato cluster viene calcolata come segue:For discrete attributes, the distance of a data point from a particular cluster is calculated as follows:

1 - P (punto dati, cluster)1 - P(data point, cluster)

Nota

L'algoritmo MicrosoftMicrosoft Clustering non espone la funzione di distanza utilizzata nel calcolo di K-means e le misurazioni della distanza non sono disponibili nel modello completato.The MicrosoftMicrosoft Clustering algorithm does not expose the distance function used in computing k-means, and measures of distance are not available in the completed model. Tuttavia, è possibile utilizzare una funzione di stima per restituire un valore che corrisponde alla distanza, in cui la distanza viene calcolata come la probabilità che un punto dati appartenga al cluster.However, you can use a prediction function to return a value that corresponds to distance, where distance is computed as the probability of a data point belonging to the cluster. Per altre informazioni, vedere ClusterProbability (DMX).For more information, see ClusterProbability (DMX).

L'algoritmo K-means prevede due metodi di campionamento del set di dati: K-means non scalabile, che carica l'intero set di dati ed esegue un unico passaggio di clustering, oppure K-means scalabile, in cui l'algoritmo usa i primi 50.000 case e legge altri case solo se sono necessari più dati per ottenere un modello appropriato ai dati.The k-means algorithm provides two methods of sampling the data set: non-scalable K-means, which loads the entire data set and makes one clustering pass, or scalable k-means, where the algorithm uses the first 50,000 cases and reads more cases only if it needs more data to achieve a good fit of model to data.

Aggiornamenti all'algoritmo Microsoft Clustering in SQL Server 2008Updates to the Microsoft Clustering Algorithm in SQL Server 2008

In SQL Server 2008 la configurazione predefinita dell'algoritmo MicrosoftMicrosoft Clustering è stata modificata in modo da usare il parametro interno, NORMALIZATION = 1.In SQL Server 2008, the default configuration of the MicrosoftMicrosoft clustering algorithm was changed to use the internal parameter, NORMALIZATION = 1. La normalizzazione viene eseguita usando le statistiche z-score e presuppone una distribuzione normale.Normalization is performed using z-score statistics, and assumes normal distribution. Lo scopo di questa modifica apportata al comportamento predefinito è ridurre l'effetto di attributi che potrebbero avere grandezze eccessive e molti outlier.The intent of this change in the default behavior is to minimize the effect of attributes that might have large magnitudes and many outliers. Tuttavia, è possibile che la normalizzazione z-score alteri i risultati di clustering su distribuzioni che non sono normali (ad esempio, le distribuzioni uniformi).However, z-score normalization may alter the clustering results on distributions that are not normal (such as uniform distributions). Per impedire la normalizzazione e ottenere lo stesso comportamento dell'algoritmo di clustering K-means di SQL Server 2005, è possibile usare la finestra di dialogo di impostazione dei parametri per aggiungere il parametro personalizzato, NORMALIZATION, e impostare il valore corrispondente su 0.To prevent normalization and obtain the same behavior as the K-means clustering algorithm in SQL Server 2005, you can use the Parameter Settings dialog box to add the custom parameter, NORMALIZATION, and set its value to 0.

Nota

Il parametro NORMALIZATION è una proprietà interna dell'algoritmo MicrosoftMicrosoft Clustering e non è supportato.The NORMALIZATION parameter is an internal property of the MicrosoftMicrosoft Clustering algorithm and is not supported. In generale l'uso della normalizzazione è consigliato nei modelli di clustering per migliorare i risultati del modello.In general, the use of normalization is recommended in clustering models to improve model results.

Personalizzazione dell'algoritmo Microsoft ClusteringCustomizing the Microsoft Clustering Algorithm

L'algoritmo MicrosoftMicrosoft Clustering supporta vari parametri che influiscono sul comportamento, sulle prestazioni e sull'accuratezza del modello di data mining risultante.The MicrosoftMicrosoft Clustering algorithm supports several parameters that affect the behavior, performance, and accuracy of the resulting mining model.

Impostazione dei parametri dell'algoritmoSetting Algorithm Parameters

Nella tabella seguente sono descritti i parametri che possono essere utilizzati con l'algoritmo MicrosoftMicrosoft Clustering.The following table describes the parameters that can be used with the MicrosoftMicrosoft Clustering algorithm. Tali parametri influiscono sia sulle prestazioni che sull'accuratezza del modello di data mining risultante.These parameters affect both the performance and accuracy of the resulting mining model.

CLUSTERING_METHODCLUSTERING_METHOD
Specifica il metodo di clustering utilizzato dall'algoritmo.Specifies the clustering method for the algorithm to use. Sono disponibili i metodi di clustering seguenti:The following clustering methods are available:

IDID MetodoMethod
11 EM scalabileScalable EM
22 EM non scalabileNon-scalable EM
33 K-means scalabileScalable K-Means
44 K-means non scalabileNon-scalable K-Means.

Il valore predefinito è 1 (EM scalabile).The default is 1 (scalable EM).

CLUSTER_COUNTCLUSTER_COUNT
Specifica il numero approssimativo di cluster che devono essere generati dall'algoritmo.Specifies the approximate number of clusters to be built by the algorithm. Se i dati non consentono di generare il numero approssimativo di cluster, l'algoritmo compila il maggior numero di cluster possibile.If the approximate number of clusters cannot be built from the data, the algorithm builds as many clusters as possible. Se si imposta CLUSTER_COUNT su 0, l'algoritmo utilizzerà l'euristica per determinare con maggiore accuratezza il numero di cluster da compilare.Setting the CLUSTER_COUNT to 0 causes the algorithm to use heuristics to best determine the number of clusters to build.

Il valore predefinito è 10.The default is 10.

CLUSTER_SEEDCLUSTER_SEED
Specifica il numero di inizializzazione utilizzato per la generazione casuale dei cluster per la fase iniziale di compilazione del modello.Specifies the seed number that is used to randomly generate clusters for the initial stage of model building.

Modificando questo numero, è possibile cambiare il modo in cui vengono compilati i cluster iniziali, quindi confrontare i modelli compilati utilizzando valori di inizializzazione diversi.By changing this number, you can change the way that the initial clusters are built, and then compare models that have been built using different seeds. Se il valore di inizializzazione viene modificato ma i cluster trovati non cambiano di molto, il modello può essere considerato relativamente stabile.If the seed is changed but the clusters that are found do not change greatly , the model can be considered relatively stable.

Il valore predefinito è 0.The default is 0.

MINIMUM_SUPPORTMINIMUM_SUPPORT
Specifica il numero minimo di case necessari per compilare un cluster.Specifies the minimum number of cases that are required to build a cluster. Se il numero di case nel cluster è minore di questo numero, il cluster viene considerato vuoto e viene ignorato.If the number of cases in the cluster is lower than this number, the cluster is treated as empty and discarded.

Se si imposta un numero eccessivamente alto, è possibile che non vengano riscontrati cluster validi.If you set this number too high, you may miss valid clusters.

Nota

Se si utilizza EM, ovvero il metodo di clustering predefinito, alcuni cluster possono avere un valore di supporto minore di quello specificato.If you use EM, which is the default clustering method, some clusters may have a support value that is lower than the specified value. Ogni case viene infatti valutato per rilevarne l'appartenenza a tutti i cluster possibili e per alcuni cluster può essere disponibile solo un supporto minimo.This is because each case is evaluated for its membership in all possible clusters, and for some clusters there may be only minimal support.

Il valore predefinito è 1.The default is 1.

MODELLING_CARDINALITYMODELLING_CARDINALITY
Specifica il numero di modelli di esempio costruiti durante il processo di clustering.Specifies the number of sample models that are constructed during the clustering process.

Riducendo il numero di modelli candidati, è possibile migliorare le prestazioni rischiando però di non riscontrare alcuni modelli candidati validi.Reducing the number of candidate models can improve performance at the risk of missing some good candidate models.

Il valore predefinito è 10.The default is 10.

STOPPING_TOLERANCESTOPPING_TOLERANCE
Specifica il valore utilizzato per determinare quando viene raggiunta la convergenza e l'algoritmo ha completato la compilazione del modello.Specifies the value that is used to determine when convergence is reached and the algorithm is finished building the model. La convergenza viene raggiunta quando la variazione complessiva nelle probabilità del cluster è inferiore al rapporto tra il parametro STOPPING_TOLERANCE e la dimensione del modello.Convergence is reached when the overall change in cluster probabilities is less than the ratio of the STOPPING_TOLERANCE parameter divided by the size of the model.

Il valore predefinito è 10.The default is 10.

SAMPLE_SIZESAMPLE_SIZE
Specifica il numero di case utilizzati dall'algoritmo a ogni passaggio se il parametro CLUSTERING_METHOD è impostato su uno dei metodi di clustering scalabili.Specifies the number of cases that the algorithm uses on each pass if the CLUSTERING_METHOD parameter is set to one of the scalable clustering methods. Se si imposta il parametro SAMPLE_SIZE su 0, l'intero set di dati verrà inserito nel cluster in un unico passaggio.Setting the SAMPLE_SIZE parameter to 0 will cause the whole dataset to be clustered in a single pass. Il caricamento dell'intero set di dati in un unico passaggio può generare problemi di memoria e prestazioni.Loading the entire dataset in a single pass can cause memory and performance issues.

Il valore predefinito è 50000.The default is 50000.

MAXIMUM_INPUT_ATTRIBUTESMAXIMUM_INPUT_ATTRIBUTES
Specifica il numero massimo di attributi di input che l'algoritmo è in grado di gestire prima di richiamare la caratteristica di selezione degli attributi.Specifies the maximum number of input attributes that the algorithm can handle before it invokes feature selection. Se si imposta il valore 0, indica che non esiste un numero massimo di attributi.Setting this value to 0 specifies that there is no maximum number of attributes.

Se si aumenta il numero di attributi, si può verificare una riduzione significativa delle prestazioni.Increasing the number of attributes can significantly degrade performance.

Il valore predefinito è 255.The default is 255.

MAXIMUM_STATESMAXIMUM_STATES
Specifica il numero massimo di stati degli attributi supportati dall'algoritmo.Specifies the maximum number of attribute states that the algorithm supports. 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.If an attribute has more states than the maximum, the algorithm uses the most popular states and ignores the remaining states.

Se si aumenta il numero di stati, si può verificare una riduzione significativa delle prestazioni.Increasing the number of states can significantly degrade performance.

Il valore predefinito è 100.The default is 100.

Flag di modellazioneModeling Flags

L'algoritmo supporta i flag di modellazione seguenti.The algorithm supports the following modeling flags. I flag di modellazione, definiti durante la creazione della struttura o del modello di data mining,You define modeling flags when you create the mining structure or mining model. specificano la modalità di gestione dei valori in ogni colonna durante l'analisi.The modeling flags specify how values in each column are handled during analysis.

Flag di modellazioneModeling Flag DescriptionDescription
MODEL_EXISTENCE_ONLYMODEL_EXISTENCE_ONLY La colonna verrà considerata come se disponesse di due stati possibili: Missing ed Existing.The column will be treated as having two possible states: Missing and Existing. Un valore Null è un valore mancante.A null is a missing value.

Si applica alla colonna del modello di data mining.Applies to mining model column.
NOT NULLNOT NULL La colonna non può contenere un valore Null.The column cannot contain a null. Se Analysis Services rileva un valore Null durante il training del modello, viene generato un errore.An error will result if Analysis Services encounters a null during model training.

Si applica alla colonna della struttura di data mining.Applies to mining structure column.

RequisitiRequirements

Un modello di clustering deve contenere una colonna chiave e le colonne di input.A clustering model must contain a key column and input columns. È inoltre possibile definire le colonne di input come stimabili.You can also define input columns as being predictable. Le colonne impostate su Solo stima non vengono usate per la compilazione di cluster.Columns set to Predict Only are not used to build clusters. La distribuzione di questi valori nel cluster viene calcolata dopo la compilazione dei cluster.The distribution of these values in the clusters are calculated after the clusters are built.

Colonne di input e stimabiliInput and Predictable Columns

L'algoritmo MicrosoftMicrosoft Clustering supporta specifiche colonne di input e colonne stimabili, riportate nella tabella seguente.The MicrosoftMicrosoft Clustering algorithm supports the specific input columns and predictable columns that are listed in the following table. Per altre informazioni sul significato dei tipi di contenuto usati in un modello di data mining, vedere Tipi di contenuto (Data Mining).For more information about what the content types mean when used in a mining model, see Content Types (Data Mining).

ColonnaColumn Tipi di contenutoContent types
Attributo di inputInput attribute Continuous, Cyclical, Discrete, Discretized, Key, Table, OrderedContinuous, Cyclical, Discrete, Discretized, Key, Table, Ordered
Attributo stimabilePredictable attribute Continuous, Cyclical, Discrete, Discretized, Table, OrderedContinuous, Cyclical, Discrete, Discretized, Table, Ordered

Nota

Sono supportati i tipi di contenuto Cyclical e Ordered ma l'algoritmo li considera come valori discreti e non esegue un'elaborazione speciale.Cyclical and Ordered content types are supported, but the algorithm treats them as discrete values and does not perform special processing.

Vedere ancheSee Also

Algoritmo Microsoft Clustering Microsoft Clustering Algorithm
Esempi di Query sul modello di clustering Clustering Model Query Examples
Contenuto del modello di data mining per il Clustering modelli & #40; Analysis Services - Data Mining & #41;Mining Model Content for Clustering Models (Analysis Services - Data Mining)