Partager via


Informations techniques de référence sur l’algorithme de clustering Microsoft

S’applique à : SQL Server 2019 et versions antérieures d’Analysis Services Azure Analysis Services Fabric/Power BI Premium

Important

L’exploration de données a été déconseillée dans SQL Server 2017 Analysis Services et a maintenant été abandonnée dans SQL Server 2022 Analysis Services. La documentation n’est pas mise à jour pour les fonctionnalités déconseillées et abandonnées. Pour en savoir plus, consultez la compatibilité descendante des Analysis Services.

Cette section explique l’implémentation de l’algorithme Microsoft Clustering, y compris les paramètres que vous pouvez utiliser pour contrôler le comportement des modèles de clustering. Il fournit également des conseils sur l’amélioration des performances lorsque vous créez et traitez des modèles de clustering.

Pour plus d’informations sur l’utilisation des modèles de clustering, consultez les rubriques suivantes :

Implémentation de l’algorithme de clustering Microsoft

L’algorithme Microsoft Clustering fournit deux méthodes pour créer des clusters et affecter des points de données aux clusters. Le premier, l’algorithme K-moyennes , est une méthode de clustering dur. Cela signifie qu’un point de données ne peut appartenir qu’à un seul cluster et qu’une probabilité unique est calculée pour l’appartenance de chaque point de données dans ce cluster. La deuxième méthode, la méthode d’optimisation des attentes (EM), est une méthode de clustering souple . Cela signifie qu’un point de données appartient toujours à plusieurs clusters et qu’une probabilité est calculée pour chaque combinaison de points de données et de cluster.

Vous pouvez choisir l’algorithme à utiliser en définissant le paramètre CLUSTERING_METHOD . La méthode par défaut pour le clustering est em scalable.

Algorithme de regroupement EM

Dans le clustering EM, l’algorithme affine de façon itérative un modèle de cluster initial pour s’adapter aux données et détermine la probabilité qu’un point de données existe dans un cluster. L’algorithme met fin au processus lorsque le modèle probabiliste correspond aux données. La fonction utilisée pour déterminer l’ajustement est la vraisemblance logarithmique des données étant donné le modèle.

Si des clusters vides sont générés pendant le processus, ou si l’appartenance à un ou plusieurs clusters tombe en dessous d’un seuil donné, les clusters avec des populations faibles sont réexécutés à de nouveaux points et l’algorithme EM est réexécuté.

Les résultats de la méthode de clustering EM sont probabilistes. Cela signifie que chaque point de données appartient à tous les clusters, mais chaque affectation d’un point de données à un cluster a une probabilité différente. Étant donné que la méthode permet aux clusters de se chevaucher, la somme des éléments de tous les clusters peut dépasser le nombre total d’éléments dans le jeu d’entraînement. Dans les résultats du modèle d’exploration de données, les scores qui indiquent un support sont ajustés pour en tenir compte.

L’algorithme EM est l’algorithme par défaut utilisé dans les modèles de clustering Microsoft. Cet algorithme est utilisé comme valeur par défaut car il offre plusieurs avantages par rapport au clustering des k-moyennes.

  • Nécessite une analyse de base de données, au plus.

  • Fonctionne malgré une mémoire limitée (RAM).

  • A la possibilité d’utiliser un curseur vers l’avant uniquement.

  • Surpasse les approches d’échantillonnage.

L’implémentation de Microsoft offre deux options : em scalable et non scalable. Par défaut, dans em scalable, les 50 000 premiers enregistrements sont utilisés pour amorçage de l’analyse initiale. Si cela réussit, le modèle utilise ces données uniquement. Si le modèle ne peut pas être adapté à l’aide de 50 000 enregistrements, 50 000 enregistrements supplémentaires sont lus. En EM non scalable, l’ensemble du jeu de données est lu indépendamment de sa taille. Cette méthode peut créer des clusters plus précis, mais les besoins en mémoire peuvent être significatifs. Étant donné que les em scalables fonctionnent sur une mémoire tampon locale, l’itération des données est beaucoup plus rapide et l’algorithme utilise beaucoup mieux le cache de mémoire processeur que les EM non évolutifs. De plus, l'EM scalable est trois fois plus rapide que l'EM non scalable, même si toutes les données tiennent dans la mémoire principale. Dans la majorité des cas, l’amélioration des performances ne conduit pas à une qualité inférieure du modèle complet.

Pour obtenir un rapport technique décrivant l’implémentation d’EM dans l’algorithme Microsoft Clustering, consultez Adaptation du clustering EM (Maximisation de l'espérance) aux grandes bases de données.

Clustering k-moyennes

Le clustering K-moyennes est une méthode connue d’attribution d’appartenance au cluster en minimisant les différences entre les éléments d’un cluster tout en optimisant la distance entre les clusters. Le « moyen » dans k-moyennes fait référence au centroïde du cluster, qui est un point de données choisi arbitrairement, puis affiné de manière itérative jusqu’à ce qu’il représente la véritable moyenne de tous les points de données du cluster. Le « k » fait référence à un nombre arbitraire de points utilisés pour amorçage du processus de clustering. L’algorithme k-moyennes calcule les distances euclidees carrées entre les enregistrements de données d’un cluster et le vecteur qui représente la moyenne du cluster, et converge sur un ensemble final de clusters k lorsque cette somme atteint sa valeur minimale.

L’algorithme k-moyennes affecte chaque point de données à un seul cluster et n’autorise pas l’incertitude dans l’appartenance. L’appartenance à un cluster est exprimée sous la forme d’une distance par rapport au centroïde.

En règle générale, l’algorithme k-moyennes est utilisé pour créer des clusters d’attributs continus, où le calcul de la distance à une moyenne est simple. Toutefois, l’implémentation de Microsoft adapte la méthode k-moyennes aux attributs discrets de cluster en utilisant des probabilités. Pour les attributs discrets, la distance d’un point de données à partir d’un cluster particulier est calculée comme suit :

1 - P(point de données, cluster)

Note

L’algorithme de clustering Microsoft n’expose pas la fonction de distance utilisée dans le calcul de k-means et les mesures de distance ne sont pas disponibles dans le modèle terminé. Toutefois, vous pouvez utiliser une fonction de prédiction pour retourner une valeur qui correspond à la distance, où la distance est calculée comme la probabilité d’un point de données appartenant au cluster. Pour plus d’informations, consultez ClusterProbability (DMX).

L’algorithme k-moyennes fournit deux méthodes d’échantillonnage du jeu de données : K-moyennes non scalables, qui charge l’ensemble du jeu de données et effectue un passage de clustering, ou k-moyennes évolutif, où l’algorithme utilise les 50 000 premiers cas et lit plus de cas uniquement s’il a besoin de plus de données pour obtenir un bon ajustement du modèle aux données.

Mises à jour de l’algorithme de clustering Microsoft dans SQL Server 2008

Dans SQL Server 2008, la configuration par défaut de l’algorithme de clustering Microsoft a été modifiée pour utiliser le paramètre interne, NORMALIZATION = 1. La normalisation est effectuée à l’aide de statistiques z-score et suppose une distribution normale. L’intention de cette modification dans le comportement par défaut est de réduire l’effet des attributs susceptibles d’avoir de grandes grandeurs et de nombreuses valeurs hors norme. Toutefois, la normalisation z-score peut modifier les résultats de clustering sur les distributions qui ne sont pas normales (telles que les distributions uniformes). Pour empêcher la normalisation et obtenir le même comportement que l’algorithme de clustering K-moyennes dans SQL Server 2005, vous pouvez utiliser la boîte de dialogue Paramètres pour ajouter le paramètre personnalisé, NORMALIZATION et définir sa valeur sur 0.

Note

Le paramètre NORMALIZATION est une propriété interne de l’algorithme Microsoft Clustering et n’est pas pris en charge. En général, l’utilisation de la normalisation est recommandée dans les modèles de clustering pour améliorer les résultats du modèle.

Personnalisation de l’algorithme de clustering Microsoft

L’algorithme de clustering Microsoft prend en charge plusieurs paramètres qui influent sur le comportement, les performances et la précision du modèle de fouille de données résultant.

Définition des paramètres d’algorithme

Le tableau suivant décrit les paramètres qui peuvent être utilisés avec l’algorithme Microsoft Clustering. Ces paramètres affectent les performances et la précision du modèle de data mining résultant.

MÉTHODE DE CLUSTÉRISATION
Spécifie la méthode de clustering à utiliser pour l’algorithme. Les méthodes de clustering suivantes sont disponibles :

ID Méthode
1 Scalable EM
2 EM non évolutif
3 K-Moyennes scalables
4 K-Moyennes non évolutives.

La valeur par défaut est 1 (EM scalable).

CLUSTER_COUNT
Spécifie le nombre approximatif de clusters à générer par l’algorithme. Si le nombre approximatif de clusters ne peut pas être généré à partir des données, l’algorithme génère autant de clusters que possible. La définition de la CLUSTER_COUNT sur 0 entraîne l’utilisation de l’heuristique pour déterminer le nombre de clusters à générer.

La valeur par défaut est de 10.

CLUSTER_SEED
Spécifie le numéro de départ utilisé pour générer aléatoirement des clusters pour l’étape initiale de la génération de modèles.

En modifiant ce nombre, vous pouvez modifier la façon dont les clusters initiaux sont générés, puis comparer les modèles qui ont été créés à l’aide de différentes graines. Si la graine est modifiée, mais que les clusters trouvés ne changent pas considérablement, le modèle peut être considéré comme relativement stable.

La valeur par défaut est 0.

MINIMUM_SUPPORT
Spécifie le nombre minimal de cas requis pour générer un cluster. Si le nombre de cas dans le cluster est inférieur à ce nombre, le cluster est traité comme vide et ignoré.

Si vous définissez ce nombre trop élevé, vous risquez de manquer des clusters valides.

Note

Si vous utilisez EM, qui est la méthode de clustering par défaut, certains clusters peuvent avoir une valeur de prise en charge inférieure à la valeur spécifiée. Cela est dû au fait que chaque cas est évalué pour son appartenance à tous les clusters possibles, et pour certains clusters, il n’y a peut-être qu’une prise en charge minimale.

La valeur par défaut est 1.

MODÉLISATION_CARDINALITÉ
Spécifie le nombre d’exemples de modèles construits pendant le processus de clustering.

La réduction du nombre de modèles candidats peut améliorer les performances au risque de manquer certains bons modèles candidats.

La valeur par défaut est de 10.

TOLÉRANCE_D'ARRÊT
Spécifie la valeur utilisée pour déterminer quand la convergence est atteinte et que l’algorithme est terminé de générer le modèle. La convergence est atteinte lorsque la modification globale des probabilités de cluster est inférieure au ratio du paramètre STOPPING_TOLERANCE divisé par la taille du modèle.

La valeur par défaut est de 10.

TAILLE_ÉCHANTILLON
Spécifie le nombre de cas que l’algorithme utilise sur chaque passe si le paramètre CLUSTERING_METHOD est défini sur l’une des méthodes de clustering évolutives. La définition du paramètre SAMPLE_SIZE sur 0 entraîne le cluster de l’ensemble du jeu de données dans une seule passe. Le chargement de l’ensemble du jeu de données dans une seule passe peut entraîner des problèmes de mémoire et de performances.

La valeur par défaut est 50000.

ATTRIBUTS_D'ENTRÉE_MAXIMAUX
Spécifie le nombre maximal d’attributs d’entrée que l’algorithme peut gérer avant d’appeler la sélection des fonctionnalités. La définition de cette valeur sur 0 spécifie qu’il n’existe aucun nombre maximal d’attributs.

L’augmentation du nombre d’attributs peut dégrader considérablement les performances.

La valeur par défaut est 255.

ÉTATS_MAXIMUM
Spécifie le nombre maximal d’états d’attribut pris en charge par l’algorithme. Si un attribut a plus d’états que le maximum, l’algorithme utilise les états les plus populaires et ignore les états restants.

L’augmentation du nombre d’états peut dégrader considérablement les performances.

La valeur par défaut est 100.

Indicateurs de modélisation

L’algorithme prend en charge les indicateurs de modélisation suivants. Vous définissez des indicateurs de modélisation lorsque vous créez la structure d’exploration de données ou le modèle d’exploration de données. Les indicateurs de modélisation spécifient la façon dont les valeurs de chaque colonne sont gérées pendant l’analyse.

Indicateur de modélisation Descriptif
MODEL_EXISTENCE_ONLY La colonne sera traitée comme ayant deux états possibles : Manquant et Existant. Une valeur Null est manquante.

S’applique à la colonne du modèle d’exploration de données.
Non nul La colonne ne peut pas contenir de valeur Null. Une erreur se produit si Analysis Services rencontre une valeur Null pendant l’entraînement du modèle.

S’applique à la colonne de structure de données d'exploration.

Spécifications

Un modèle de clustering doit contenir une colonne clé et des colonnes d’entrée. Vous pouvez également définir des colonnes d’entrée comme prévisibles. Les colonnes définies sur Predict Only ne sont pas utilisées pour générer des clusters. La distribution de ces valeurs dans les clusters est calculée après la génération des clusters.

Colonnes d’entrée et prévisibles

L’algorithme de clustering Microsoft prend en charge les colonnes d’entrée spécifiques et les colonnes prédictives répertoriées dans le tableau suivant. Pour plus d’informations sur ce que signifient les types de contenu lorsqu’ils sont utilisés dans un modèle d’exploration de données, consultez Content Types (Exploration de données).

Colonne Types de contenu
Attribut d’entrée Continu, cyclique, discret, discrétisé, clé, table, ordonné
Attribut prédictible Continu, cyclique, discret, discrétisé, tableau, ordonné

Note

Les types de contenu cycliques et ordonnés sont pris en charge, mais l’algorithme les traite comme des valeurs discrètes et n’effectue pas de traitement spécial.

Voir aussi

Microsoft Clustering Algorithm
Exemples de requêtes de modèle de clustering
Contenu du modèle d’exploration de données pour les modèles de clustering (Analysis Services - Exploration de données)