Partager via


Exemples de requêtes pour le modèle de regroupement de séquences

Lorsque vous créez une requête sur un modèle d’exploration de données, vous pouvez créer une requête de contenu, qui fournit des détails sur les informations stockées dans le modèle, ou créer une requête de prédiction, qui utilise les modèles du modèle pour effectuer des prédictions basées sur de nouvelles données que vous fournissez. Pour un modèle de clustering de séquences, les requêtes de contenu fournissent généralement des détails supplémentaires sur les clusters trouvés ou les transitions au sein de ces clusters. Vous pouvez également récupérer des métadonnées sur le modèle à l’aide d’une requête.

Les requêtes de prédiction sur un modèle de clustering de séquences font généralement des recommandations basées sur les séquences et les transitions, sur les attributs non séquentiels inclus dans le modèle ou sur une combinaison d’attributs de séquence et de non-séquence.

Cette section explique comment créer des requêtes pour des modèles basés sur l’algorithme Microsoft Sequence Clustering. Pour obtenir des informations générales sur la création de requêtes, consultez Requêtes d’exploration de données.

Requêtes de contenu

Utilisation de l’ensemble de lignes de schéma d’exploration de données pour retourner les paramètres du modèle

Obtention d’une liste de séquences pour un état

Utilisation de procédures stockées système

Requêtes de prédiction

Prédire l’état ou les états suivants

Recherche d’informations sur le modèle de clustering de séquences

Pour créer des requêtes significatives sur le contenu d’un modèle d’exploration de données, vous devez comprendre la structure du contenu du modèle et les types de nœuds qui stockent le type d’informations. Pour plus d’informations, consultez Contenu du modèle d’exploration de données pour les modèles de clustering de séquence (Analysis Services - Exploration de données).

Exemple de requête 1 : Utilisation de l’ensemble de lignes de schéma d’exploration de données pour retourner les paramètres du modèle

En interrogeant l’ensemble de lignes du schéma d’exploration de données, vous pouvez trouver différents types d’informations sur le modèle, notamment les métadonnées de base, la date et l’heure à laquelle le modèle a été créé et le dernier traité, le nom de la structure d’exploration de données sur laquelle le modèle est basé et la colonne utilisée comme attribut prévisible.

La requête suivante retourne les paramètres utilisés pour générer et entraîner le modèle. [Sequence Clustering] Vous pouvez créer ce modèle dans la leçon 5 du didacticiel d’exploration de données de base.

SELECT MINING_PARAMETERS   
from $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'Sequence Clustering'  

Résultats de l'exemple :

PARAMÈTRES_MINIERS
CLUSTER_COUNT=15, MINIMUM_SUPPORT=10, MAXIMUM_STATES=100, MAXIMUM_SEQUENCE_STATES=64

Notez que ce modèle a été généré à l’aide de la valeur par défaut 10 pour CLUSTER_COUNT. Lorsque vous spécifiez un nombre non nul de clusters pour CLUSTER_COUNT, l’algorithme traite ce nombre comme un indicateur du nombre approximatif de clusters à rechercher. Toutefois, dans le processus d’analyse, l’algorithme peut trouver plus ou moins de clusters. Dans ce cas, l’algorithme a constaté que 15 clusters correspondent le mieux aux données d’entraînement. Par conséquent, la liste des valeurs de paramètre pour le modèle terminé signale le nombre de clusters déterminés par l’algorithme, et non la valeur passée lors de la création du modèle.

Comment ce comportement diffère-t-il de la façon dont l’algorithme détermine le meilleur nombre de clusters ? En tant qu’expérience, vous pouvez créer un autre modèle de clustering qui utilise ces mêmes données, mais définir CLUSTER_COUNT sur 0. Lorsque vous effectuez cette opération, l’algorithme détecte 32 clusters. Par conséquent, en utilisant la valeur par défaut 10 pour CLUSTER_COUNT, vous limitez le nombre de résultats.

La valeur 10 est utilisée par défaut, car la réduction du nombre de clusters facilite la navigation et la compréhension des regroupements dans les données. Toutefois, chaque modèle et chaque jeu de données est différent. Vous souhaiterez peut-être expérimenter différents nombres de clusters pour voir quelle valeur de paramètre génère le modèle le plus précis.

Exemple de requête 2 : Obtention d’une liste de séquences pour un état

Le contenu du modèle d’exploration de données stocke les séquences trouvées dans les données d’entraînement sous la forme d’un premier état couplé à une liste de tous les deuxièmes états associés. Le premier état est utilisé comme étiquette pour la séquence, et les second états associés sont appelés transitions.

Par exemple, la requête suivante retourne la liste complète des premiers états dans le modèle, avant que les séquences ne soient regroupées en clusters. Vous pouvez obtenir cette liste en retournant la liste des séquences (NODE_TYPE = 13) qui ont le nœud racine du modèle en tant que parent (PARENT_UNIQUE_NAME = 0). Le mot clé FLATTENED facilite la lecture des résultats.

Remarque

Le nom des colonnes, PARENT_UNIQUE_NAME, Support et Probabilité doit être placé entre crochets pour les distinguer des mots clés réservés du même nom.

SELECT FLATTENED NODE_UNIQUE_NAME,  
(SELECT ATTRIBUTE_VALUE AS [Product 1],  
[Support] AS [Sequence Support],   
[Probability] AS [Sequence Probability]  
FROM NODE_DISTRIBUTION) AS t  
FROM [Sequence Clustering].CONTENT  
WHERE NODE_TYPE = 13  
AND [PARENT_UNIQUE_NAME] = 0  

Résultats partiels :

NODE_UNIQUE_NAME Produit 1 Prise en charge des séquences Probabilité de séquence
1081327 Manquant 0 #######
1081327 stand de vélo All-Purpose 17 0.00111
1081327 Lavage de vélo 64 0.00418
1081327 (lignes 4-36 omises)
1081327 Shorts de montagne féminins 506 0.03307

La liste des séquences dans le modèle est toujours triée par ordre alphabétique. L’ordre des séquences est important, car vous pouvez trouver les transitions associées en examinant le numéro d’ordre de la séquence. La valeur de Missing est toujours 0 pour la transition.

Par exemple, dans les résultats précédents, le produit « Women’s Mountain Shorts » est le numéro de séquence 37 dans le modèle. Vous pouvez utiliser ces informations pour afficher tous les produits qui ont été achetés après « Women’s Mountain Shorts ».

Pour ce faire, vous devez d’abord référencer la valeur retournée pour NODE_UNIQUE_NAME dans la requête précédente pour obtenir l’ID du nœud qui contient toutes les séquences du modèle. Vous transmettez cette valeur à la requête en tant qu'ID du nœud parent, pour obtenir uniquement les transitions incluses dans ce nœud, qui contient une liste de toutes les séquences pour le modèle. Toutefois, si vous souhaitez voir la liste des transitions pour un cluster spécifique, vous pouvez passer l’ID du nœud de cluster et voir uniquement les séquences associées à ce cluster.

SELECT NODE_UNIQUE_NAME  
FROM [Sequence Clustering].CONTENT  
WHERE NODE_DESCRIPTION = 'Transition row for sequence state 37'  
AND [PARENT_UNIQUE_NAME] = '1081327'  

Résultats de l'exemple :

NODE_UNIQUE_NAME
1081365

Le nœud représenté par cet ID contient une liste des séquences qui suivent le produit « Women’s Mountain Shorts », ainsi que les valeurs de support et de probabilité.

SELECT FLATTENED  
(SELECT ATTRIBUTE_VALUE AS Product2,  
[Support] AS [P2 Support],  
[Probability] AS [P2 Probability]  
FROM NODE_DISTRIBUTION) AS t  
FROM [Sequence Clustering].CONTENT  
WHERE NODE_UNIQUE_NAME = '1081365'  

Résultats de l'exemple :

t.Product2 Prise en charge t.P2 t.P2 Probabilité
Manquant 230.7419 0.456012
Vest classique 8.16129 0.016129
Cap de cyclisme 60.83871 0.120235
gants Half-Finger 30.41935 0.060117
Long-Sleeve Logo Maillot 86.80645 0.171554
Chaussettes de course 28.93548 0.057185
Short-Sleeve Jersey classique 60.09677 0.118768

Notez que la prise en charge des différentes séquences liées à Women’s Mountain Shorts est de 506 dans le modèle. Les valeurs de support des transitions sont également équivalentes à 506. Toutefois, les nombres ne sont pas des nombres entiers, ce qui semble un peu étrange si vous attendez que le support représente simplement un nombre de cas qui contiennent chaque transition. Toutefois, étant donné que la méthode de création de clusters calcule l’appartenance partielle, la probabilité d’une transition au sein d’un cluster doit être pondérée par sa probabilité d’appartenance à ce cluster particulier.

Par exemple, s’il existe quatre clusters, une séquence particulière peut avoir 40% chance d’appartenir au cluster 1, une probabilité de 30% d’appartenance au cluster 2, une probabilité de 20% d’appartenance au cluster 3 et une chance de 10% d’appartenance au cluster 4. Une fois que l’algorithme détermine le cluster auquel la transition est principalement susceptible d’appartenir, il pondifie les probabilités au sein du cluster par la probabilité antérieure du cluster.

Exemple de requête 3 : utilisation de procédures stockées système

Vous pouvez voir à partir de ces exemples de requêtes que les informations stockées dans le modèle sont complexes et que vous devrez peut-être créer plusieurs requêtes pour obtenir les informations dont vous avez besoin. Toutefois, la visionneuse Microsoft Sequence Clustering fournit un ensemble puissant d’outils permettant de parcourir graphiquement les informations contenues dans un modèle de clustering de séquences, et vous pouvez également utiliser la visionneuse pour interroger et explorer le modèle.

Dans la plupart des cas, les informations présentées dans la visionneuse microsoft Sequence Clustering sont créées à l’aide de procédures stockées système Analysis Services pour interroger le modèle. Vous pouvez écrire des requêtes DMX (Data Mining Extensions) sur le contenu du modèle pour récupérer les mêmes informations, mais les procédures stockées système Analysis Services fournissent un raccourci pratique pour l’exploration ou pour les modèles de test.

Remarque

Les procédures stockées système sont utilisées pour le traitement interne par le serveur et par les clients fournis par Microsoft pour interagir avec le serveur Analysis Services. Par conséquent, Microsoft se réserve le droit de les modifier à tout moment. Bien qu’ils soient décrits ici pour votre commodité, nous ne prenons pas en charge leur utilisation dans un environnement de production. Pour garantir la stabilité et la compatibilité dans un environnement de production, vous devez toujours écrire vos propres requêtes à l’aide de DMX.

Cette section fournit des exemples d’utilisation des procédures stockées système pour créer des requêtes sur un modèle de clustering de séquences :

Profils de cluster et exemples de cas

L’onglet Profils de cluster affiche une liste des clusters dans le modèle, la taille de chaque cluster et un histogramme qui indique les états inclus dans le cluster. Il existe deux procédures stockées système que vous pouvez utiliser dans les requêtes pour récupérer des informations similaires :

  • GetClusterProfile retourne les caractéristiques du cluster, avec toutes les informations trouvées dans la table NODE_DISTRIBUTION du cluster.

  • GetNodeGraph retourne des nœuds et des arêtes qui peuvent être utilisés pour construire une représentation mathématique des graphiques des clusters, correspondant à ce que vous voyez sous le premier onglet de la vue Sequence Clustering. Les nœuds sont des clusters et les arêtes représentent des poids ou une force.

L’exemple suivant montre comment utiliser la procédure stockée système, GetClusterProfilespour retourner tous les clusters dans le modèle, avec leurs profils respectifs. Cette procédure stockée exécute une série d’instructions DMX qui retournent l’ensemble complet de profils dans le modèle. Toutefois, pour utiliser cette procédure stockée, vous devez connaître l’adresse du modèle.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterProfiles('Sequence Clustering', 2147483647, 0)

L’exemple suivant montre comment récupérer le profil d’un cluster spécifique, cluster 12, à l’aide de la procédure GetNodeGraphstockée système et en spécifiant l’ID de cluster, généralement identique au nombre dans le nom du cluster.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetNodeGraph('Sequence Clustering','12',0)  

Si vous omettez l’ID de cluster, comme indiqué dans la requête suivante, GetNodeGraph retourne une liste ordonnée et aplati de tous les profils de cluster :

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetNodeGraph('Sequence Clustering','',0)  

L’onglet Profil de cluster affiche également un histogramme des exemples de cas de modèle. Ces exemples de cas représentent les cas idéalisés pour le modèle. Ces cas ne sont pas stockés dans le modèle de la même façon que les données d’entraînement ; vous devez utiliser une syntaxe spéciale pour récupérer les exemples de cas pour le modèle.

SELECT * FROM [Sequence Clustering].SAMPLE_CASES WHERE IsInNode('12')  

Pour plus d’informations, consultez SELECT FROM <model>.SAMPLE_CASES (DMX).

Caractéristiques du cluster et discrimination des clusters

L’onglet Caractéristiques du cluster récapitule les principaux attributs de chaque cluster, classés par probabilité. Vous pouvez déterminer combien de cas appartiennent à un cluster et quelle est la distribution des cas dans le cluster : chaque caractéristique a une certaine prise en charge. Pour afficher les caractéristiques d’un cluster particulier, vous devez connaître l’ID du cluster.

Les exemples suivants utilisent la procédure stockée système, GetClusterCharacteristicspour retourner toutes les caractéristiques du cluster 12 qui ont un score de probabilité sur le seuil spécifié de 0,0005.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterCharacteristics('Sequence Clustering','12',0.0005)  

Pour retourner les caractéristiques de tous les clusters, vous pouvez laisser l’ID de cluster vide.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterCharacteristics('Sequence Clustering','',0.0005)  

L’exemple suivant appelle la procédure GetClusterDiscrimination stockée système pour comparer les caractéristiques du cluster 1 et du cluster 12.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterDiscrimination('Sequence Clustering','1','12',0.0005,true)  

Si vous souhaitez écrire votre propre requête dans DMX pour comparer deux clusters ou comparer un cluster avec son complément, vous devez d’abord récupérer un ensemble de caractéristiques, puis récupérer les caractéristiques du cluster spécifique qui vous intéresse et comparer les deux ensembles. Ce scénario est plus compliqué et nécessite généralement un traitement client.

États et transitions

L’onglet Transitions d’état du clustering de séquences Microsoft effectue des requêtes complexes sur le serveur principal pour récupérer et comparer les statistiques pour différents clusters. Pour reproduire ces résultats, une requête plus complexe et un traitement client sont nécessaires.

Toutefois, vous pouvez utiliser les requêtes DMX décrites dans l’exemple 2 de la section, Requêtes de contenu, pour récupérer des probabilités et des états pour les séquences ou pour les transitions individuelles.

Utilisation du modèle pour effectuer des prédictions

Les requêtes de prédiction sur un modèle de clustering de séquence peuvent utiliser de nombreuses fonctions de prédiction utilisées avec d’autres modèles de clustering. En outre, vous pouvez utiliser la fonction de prédiction spéciale, PredictSequence (DMX) pour formuler des recommandations ou prédire les états suivants.

Exemple de requête 4 : Prédire l’état suivant ou les états

Vous pouvez utiliser la fonction PredictSequence (DMX) pour prédire l’état le plus probable suivant, en fonction d’une valeur. Vous pouvez également prédire plusieurs états suivants : par exemple, vous pouvez retourner une liste des trois principaux produits qu’un client est susceptible d’acheter, pour présenter une liste de recommandations.

L’exemple de requête suivant est une requête de prédiction singleton qui retourne les cinq premières prédictions, ainsi que leur probabilité. Étant donné que le modèle inclut une table imbriquée, vous devez utiliser la table imbriquée, [v Assoc Seq Line Items]comme référence de colonne lors d’une prédiction. En outre, lorsque vous fournissez des valeurs comme entrée, vous devez réaliser une jointure entre la table case et les colonnes de la table imbriquée, comme le montrent les instructions SELECT imbriquées.

SELECT FLATTENED PredictSequence([v Assoc Seq Line Items], 7)  
FROM [Sequence Clustering]  
NATURAL PREDICTION JOIN  
(SELECT  (SELECT 1 as [Line Number],  
   'All-Purpose Bike Stand' as [Model]) AS [v Assoc Seq Line Items])   
AS t  

Résultats de l'exemple :

Expression.$Séquence Expression.Numéro de ligne Expression.Model
1 Cap de cyclisme
2 Cap de cyclisme
3 Sport-100
4 Maillot avec logo Long-Sleeve
5 gants Half-Finger
6 stand de vélo All-Purpose
7 stand de vélo All-Purpose

Il existe trois colonnes dans les résultats, même si vous ne pouvez vous attendre qu’à une seule colonne, car la requête retourne toujours une colonne pour la table de cas. Ici, les résultats sont aplatis ; sinon, la requête renverrait une colonne unique contenant deux colonnes de table imbriquées.

La colonne $sequence est une colonne retournée par défaut par la PredictSequence fonction pour classer les résultats de prédiction. La colonne, [Line Number], est nécessaire pour faire correspondre les clés de séquence dans le modèle, mais les clés ne sont pas générées.

Il est intéressant de noter que les premières séquences prédites après le All-Purpose Support de Vélo sont Casquette de Cyclisme et Casquette de Cyclisme. Il ne s'agit pas d'une erreur. Selon la façon dont les données sont présentées au client et la façon dont elles sont regroupées lors de l’entraînement du modèle, il est très possible d’avoir des séquences de ce type. Par exemple, un client peut acheter une casquette de cyclisme (rouge), puis une autre casquette de cyclisme (bleue), ou acheter deux de suite s'il n'était pas possible de spécifier la quantité.

Les valeurs des lignes 6 et 7 sont des valeurs de substitution. Lorsque vous atteignez la fin de la chaîne de transitions possibles, plutôt que de terminer les résultats de prédiction, la valeur passée en tant qu’entrée est ajoutée aux résultats. Par exemple, si vous avez augmenté le nombre de prédictions à 20, les valeurs des lignes 6 à 20 seraient toutes les mêmes, All-Purpose Bike Stand.

Liste des fonctions

Tous les algorithmes Microsoft prennent en charge un ensemble commun de fonctions. Toutefois, l’algorithme Microsoft Sequence Clustering prend en charge les fonctions supplémentaires répertoriées dans le tableau suivant.

Fonction de prédiction Utilisation
Cluster (DMX) Retourne le cluster qui est le plus susceptible de contenir le cas d’entrée
ClusterDistance (DMX) Retourne la distance du cas d’entrée du cluster spécifié ou, si aucun cluster n’est spécifié, la distance du cas d’entrée du cluster le plus probable.

Cette fonction peut être utilisée avec n’importe quel type de modèle de clustering (EM, K-Moyennes, etc.), mais les résultats diffèrent selon l’algorithme.
ClusterProbability (DMX) Retourne la probabilité que le cas d’entrée appartient au cluster spécifié.
IsInNode (DMX) Indique si le nœud spécifié contient le cas actuel.
PredictAdjustedProbability (DMX) Retourne la probabilité ajustée d’un état spécifié.
PredictAssociation (DMX) Prédit l’appartenance associative.
PredictCaseLikelihood (DMX) Retourne la probabilité qu’un cas d’entrée corresponde au modèle existant.
PredictHistogram (DMX) Retourne une table qui représente un histogramme pour la prédiction d’une colonne donnée.
PredictNodeId (DMX) Retourne la Node_ID du nœud auquel le cas est classé.
PredictProbability (DMX) Retourne la probabilité d’un état spécifié.
PredictSequence (DMX) Prédit les valeurs de séquence futures pour un ensemble spécifié de données de séquence.
PredictStdev (DMX) Retourne l’écart type prédit pour la colonne spécifiée.
PredictSupport (DMX) Retourne la valeur de prise en charge pour un état spécifié.
PredictVariance (DMX) Retourne la variance d’une colonne spécifiée.

Pour obtenir la liste des fonctions communes à tous les algorithmes Microsoft, consultez Fonctions de prédiction générales (DMX). Pour connaître la syntaxe des fonctions spécifiques, consultez La référence de fonction DMX (Data Mining Extensions).

Voir aussi

Requêtes d’exploration de données
Informations techniques de référence sur l’algorithme de clustering de séquences Microsoft
Algorithme de clustering de séquences Microsoft
Contenu du modèle d'exploration de données des modèles de clustering de séquences (Services d'analyse - Exploration de données)