Interrogation d'un modèle d'association (Analysis Services - Exploration de données)

Lorsque vous créez une requête sur un modèle d'exploration de données, vous pouvez soit créer une requête de contenu qui fournit des détails sur les règles et les jeux d'éléments découverts au cours de l'analyse, soit créer une requête de prédiction qui utilise les associations découvertes dans les données pour faire des prédictions. En général, pour un modèle d'association, les prédictions sont basées sur des règles et peuvent être utilisées pour faire des recommandations, tandis que les interrogations sur du contenu explorent la relation entre les jeux d'éléments. Vous pouvez aussi récupérer des métadonnées sur le modèle.

Cette section explique comment créer ces types de requêtes pour les modèles basés sur l'algorithme MAR (Microsoft Association Rules).

Requêtes de contenu

Obtention des données de métadonnées du modèle avec DMX

Obtention de métadonnées de l'ensemble de lignes de schéma

Récupération des paramètres d'origine pour le modèle

Récupération d'une liste de jeux d'éléments et de produits

Retour des 10 principaux jeux d'éléments

Requêtes de prédiction

Prédiction d'éléments associés

Identification de la confiance pour les jeux d'éléments connexes

Recherche d'informations sur le modèle

Tous les modèles d'exploration de données exposent le contenu appris par l'algorithme en fonction d'un schéma standardisé, appelé l'ensemble de lignes de schéma du modèle d'exploration de données. Vous pouvez créer des requêtes sur l'ensemble de lignes de schéma du modèle d'exploration de données en utilisant des instructions DMX (Data Mining Extensions) ou des procédures stockées Analysis Services. Dans SQL Server 2008, vous pouvez également interroger directement les ensemble de lignes de schéma en tant que tables système en utilisant une syntaxe de type SQL.

Exemple de requête 1 : obtention des métadonnées du modèle avec DMX

La requête suivante retourne les métadonnées de base sur le modèle d'association, Association, telles que le nom du modèle, la base de données où le modèle est stocké et le nombre de nœuds enfants dans le modèle. Cette requête utilise une requête de contenu DMX pour récupérer les métadonnées du nœud parent du modèle:

SELECT MODEL_CATALOG, MODEL_NAME, NODE_CAPTION, 
NODE_SUPPORT, [CHILDREN_CARDINALITY], NODE_DESCRIPTION
FROM Association.CONTENT
WHERE NODE_TYPE = 1

Notes

Vous devez mettre le nom de la colonne, CHILDREN_CARDINALITY, entre parenthèses pour le distinguer du mot clé réservé MDX du même nom.

Résultats de l'exemple :

MODEL_CATALOG

Association Test

MODEL_NAME

Association

NODE_CAPTION

Association Rules Model

NODE_SUPPORT

14879

CHILDREN_CARDINALITY

942

NODE_DESCRIPTION

Association Rules Model; ITEMSET_COUNT=679; RULE_COUNT=263; MIN_SUPPORT=14; MAX_SUPPORT=4334; MIN_ITEMSET_SIZE=0; MAX_ITEMSET_SIZE=3; MIN_PROBABILITY=0.400390625; MAX_PROBABILITY=1; MIN_LIFT=0.14309369632511; MAX_LIFT=1.95758227647523

Pour connaître la signification de ces colonnes dans un modèle d'association, consultez Contenu du modèle d'exploration de données pour les modèles d'association (Analysis Services - Exploration de données).

Retour en haut

Exemple de requête 2 : obtention de métadonnées supplémentaires à partir de l'ensemble de lignes de schéma

En interrogeant l'ensemble de lignes de schéma d'exploration de données, vous pouvez obtenir les mêmes informations que celles retournées par une requête de contenu DMX. Toutefois, l'ensemble de lignes de schéma fournit quelques colonnes supplémentaires, telles que la date à laquelle le modèle a été traité pour la dernière fois, la structure d'exploration de données et le nom de la colonne utilisée comme attribut prévisible.

SELECT MODEL_CATALOG, MODEL_NAME, SERVICE_NAME, PREDICTION_ENTITY, 
MINING_STRUCTURE, LAST_PROCESSED
FROM $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'Association'

Résultats de l'exemple :

MODEL_CATALOG

AdventureWorks DW

MODEL_NAME

Association

SERVICE_NAME

Association Rules Model

PREDICTION_ENTITY

v Assoc Seq Line Items

MINING_STRUCTURE

Association

LAST_PROCESSED

9/29/2007 10:21:24 PM

Retour en haut

Exemple de requête 3 : récupération des paramètres d'origine pour le modèle

La requête suivante retourne une colonne unique qui contient des détails sur la configuration des paramètres utilisée au moment de la création du modèle.

SELECT MINING_PARAMETERS 
from $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'Association'

Résultats de l'exemple :

MAXIMUM_ITEMSET_COUNT=200000,MAXIMUM_ITEMSET_SIZE=3,MAXIMUM_SUPPORT=1,MINIMUM_SUPPORT=9.40923449156529E-04,MINIMUM_IMPORTANCE=-999999999,MINIMUM_ITEMSET_SIZE=0,MINIMUM_PROBABILITY=0.4

Retour en haut

Recherche d'informations sur les règles et les jeux d'éléments

En général, un modèle d'association sert à deux choses : découvrir des informations sur les jeux d'éléments fréquents et extraire des détails sur des règles et des jeux d'éléments particuliers. Par exemple, vous souhaitez peut-être récupérer une liste des règles dont le score indique qu'elles sont particulièrement intéressantes ou créer une liste des jeux d'éléments les plus courants. Vous récupérez de telles informations en utilisant une requête de contenu DMX. Vous pouvez aussi parcourir ces informations à l'aide de la Visionneuse d'associations Microsoft.

Exemple de requête 4 : récupération d'une liste de jeux d'éléments et de produits

La requête suivante récupère tous les jeux d'éléments, ainsi qu'une table imbriquée qui répertorie les produits inclus dans chaque jeu d'éléments. La colonne NODE_NAME contient l'ID unique du jeu d'éléments dans le modèle, tandis que la colonne NODE_CAPTION fournit une description textuelle des éléments. Dans cet exemple, la table imbriquée est aplatie, de telle sorte qu'un jeu d'éléments contenant deux produits génère deux lignes dans les résultats. Vous pouvez omettre le mot clé FLATTENED si votre client prend en charge des données hiérarchiques.

SELECT FLATTENED NODE_NAME, NODE_CAPTION,
NODE_PROBABILITY, NODE_SUPPORT,
(SELECT ATTRIBUTE_NAME FROM NODE_DISTRIBUTION) as PurchasedProducts
FROM Association.CONTENT
WHERE NODE_TYPE = 7

Résultats de l'exemple :

NODE_NAME

37

NODE_CAPTION

Sport-100 = Existing

NODE_PROBABILITY

0.291283016331743

NODE_SUPPORT

4334

PURCHASEDPRODUCTS.ATTRIBUTE_NAME

v Assoc Seq Line Items(Sport-100)

Retour en haut

Exemple de requête 5 : retour des 10 premiers jeux d'éléments

Cet exemple montre comment utiliser une partie des fonctions de regroupement et de classement fournies par défaut par DMX. La requête retourne les 10 premiers jeux d'éléments issus du classement selon la prise en charge pour chaque nœud. Notez que vous n'avez pas besoin de regrouper les résultats explicitement comme vous le feriez dans Transact-SQL ; toutefois, vous pouvez utiliser une seule fonction d'agrégation dans chaque requête.

SELECT TOP 10 (NODE_SUPPORT),NODE_NAME, NODE_CAPTION
FROM Association.CONTENT
WHERE NODE_TYPE = 7

Résultats de l'exemple :

NODE_SUPPORT

4334

NODE_NAME

37

NODE_CAPTION

Sport-100 = Existing

Retour en haut

Exécution de prédictions à l'aide du modèle

Un modèle de règles d'association est souvent utilisé pour générer recommandations qui sont basées sur les corrélations découvertes dans les jeux d'éléments. Par conséquent, lorsque vous créez une requête de prédiction basée sur un modèle de règles d'association, vous utilisez en général les règles dans le modèle pour faire des estimations basées sur les nouvelles données. PredictAssociation (DMX) est la fonction qui retourne des recommandations et possède plusieurs arguments que vous pouvez utiliser pour personnaliser les résultats de la requête.

Les requêtes sur un modèle d'association peuvent aussi être utiles pour retourner par exemple la confiance pour des règles et des jeux d'éléments afin de comparer l'efficacité de différentes stratégies de ventes croisées. Les exemples suivants illustrent comment créer de telles requêtes.

Exemple de requête 6 : prédiction d'éléments associés

Cet exemple utilise le modèle d'association créé dans le Didacticiel sur l'exploration de données de base. Il montre comment créer une requête de prédiction qui indique les produits à recommander à un client ayant acheté un produit particulier. Ce type de requête, dans lequel vous fournissez des valeurs au modèle dans une instruction SELECT…UNION, est appelé « requête singleton ». La colonne du modèle prévisible qui correspond aux nouvelles valeurs étant une table imbriquée, vous devez utiliser une clause SELECT pour mapper la nouvelle valeur à la colonne de table imbriquée, [Model], et une autre clause SELECT pour mapper la colonne de table imbriquée à la colonne de niveau de cas, [v Assoc Seq Line Items]. L'ajout du mot clé INCLUDE-STATISTICS à la requête vous permet de voir la probabilité et la prise en charge pour les recommandations.

SELECT PredictAssociation([Association].[vAssocSeqLineItems],INCLUDE_STATISTICS, 3)
FROM [Association]
NATURAL PREDICTION JOIN 
(SELECT
(SELECT 'Classic Vest' as [Model])
AS [v Assoc Seq Line Items])
AS t

Résultats de l'exemple :

Modèle

$SUPPORT

$PROBABILITY

$ADJUSTEDPROBABILITY

Sport-100

4334

0.291283

0.252696

Water Bottle

2866

0.19262

0.175205

Patch kit

2113

0.142012

0.132389

Retour en haut

Exemple de requête 7 : identification de la confiance pour les jeux d'éléments connexes

Si les règles sont utiles pour générer des recommandations, les jeux d'éléments sont plus intéressants pour effectuer une analyse plus poussée des séquences dans le jeu de données. Par exemple, si vous n'êtes pas satisfait de la recommandation retournée par la requête de l'exemple précédent, vous pouvez examiner d'autres jeux d'éléments qui contiennent le produit A pour savoir avec plus de certitude si le produit A est un accessoire que les gens ont tendance à acheter avec tous les types de produits ou si le produit A est en forte corrélation avec les achats de produits particuliers. Le moyen le plus simple d'explorer ces relations consiste à filtrer les jeux d'éléments dans la Visionneuse d'associations Microsoft ; toutefois, vous pouvez récupérer les mêmes informations avec une requête.

L'exemple de requête suivant retourne tous les jeux d'éléments qui incluent l'élément Water Bottle, y compris l'élément unique Water Bottle.

SELECT TOP 100 FROM 
(
SELECT FLATTENED NODE_CAPTION, NODE_SUPPORT, 
(SELECT ATTRIBUTE_NAME from NODE_DISTRIBUTION
WHERE ATTRIBUTE_NAME = 'v Assoc Seq Line Items(Water Bottle)') as D
FROM Association.CONTENT
WHERE NODE_TYPE = 7
) AS Items
WHERE [D.ATTRIBUTE_NAME] <> NULL
ORDER BY NODE_SUPPORT DESC

Résultats de l'exemple :

NODE_CAPTION

NODE_SUPPORT

D.ATTRIBUTE_NAME

Water Bottle = Existing

2866

v Assoc Seq Line Items(Water Bottle)

Mountain Bottle Cage = Existing, Water Bottle = Existing

1136

v Assoc Seq Line Items(Water Bottle)

Road Bottle Cage = Existing, Water Bottle = Existing

1068

v Assoc Seq Line Items(Water Bottle)

Water Bottle = Existing, Sport-100 = Existing

734

v Assoc Seq Line Items(Water Bottle)

Cette requête retourne à la fois les lignes de la table imbriquée qui correspondent aux critères et toutes les lignes de l'extérieur ou de la table de cas. Par conséquent, vous devez ajouter une condition qui élimine les lignes de table de cas dont le nom d'attribut cible a la valeur Null.

Retour en haut

Liste de fonctions

Tous les algorithmes Microsoft prennent en charge un ensemble commun de fonctions. Toutefois, l'algorithme Microsoft Association prend en charge les fonctions supplémentaires répertoriées dans le tableau ci-dessous.