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

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 modèles (ou séquences) découverts au cours de l'analyse, ou créer une requête de prédiction, qui utilise les séquences du modèle pour effectuer des prédictions pour les nouvelles données. Par exemple, une requête de contenu pour un modèle d'arbre de décision peut fournir des statistiques sur le nombre de cas à chaque niveau de l'arbre, ou les règles qui font la différence entre des cas. En revanche, une requête de prédiction mappe le modèle à de nouvelles données pour générer des recommandations, des classifications, etc. Vous pouvez également extraire les métadonnées relatives au modèle en utilisant une requête.

Cette section explique comment créer des requêtes pour les modèles basés sur l'algorithme MDT (Microsoft Decision Trees).

  • Requêtes de contenu

    Récupération des paramètres du modèle à partir de l'ensemble de lignes de schéma d'exploration de données

    Retour de détails sur les arbres du modèle à l'aide de DMX

    Retour des nœuds de régression d'un modèle d'arbre de décision

  • Requêtes de prédiction

    Retour de prédictions et de probabilités

    Prédiction d'associations à partir d'un arbre de décision

Recherche d'informations sur un modèle d'arbre de décision

Pour créer des requêtes explicites sur le contenu d'un modèle d'arbre de décision, vous devez comprendre la structure du contenu du modèle et les types d'informations stockées dans les différents types de nœuds. Pour plus d'informations, consultez Contenu du modèle d'exploration de données pour les modèles d'arbre de décision (Analysis Services - Exploration de données).

Retour au début

Exemple de requête 1 : récupération des paramètres du modèle à partir de l'ensemble de lignes de schéma d'exploration de données

En interrogeant l'ensemble de lignes de schéma d'exploration de données, vous pouvez rechercher les métadonnées relatives au modèle, par exemple sa date de création, le moment où il a été traité pour la dernière fois, le nom de la structure d'exploration de données sur laquelle il est basé et le nom de la colonne utilisée comme attribut prévisible. Vous pouvez également retourner les paramètres qui ont été utilisés lors de la création du modèle.

select MINING_PARAMETERS 
from $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'TM_Decision Tree'

Exemples de résultats :

MINING_PARAMETERS

COMPLEXITY_PENALTY=0.5, MAXIMUM_INPUT_ATTRIBUTES=255,MAXIMUM_OUTPUT_ATTRIBUTES=255,MINIMUM_SUPPORT=10,SCORE_METHOD=4,SPLIT_METHOD=3,FORCE_REGRESSOR=

Retour au début

Exemple de requête 2 : retour de détails sur les arbres du modèle à l'aide de DMX

La requête suivante retourne des informations de base relatives au modèle d'arbre de décision que vous avez créé dans le Didacticiel sur l'exploration de données de base. Cette requête retourne tous les nœuds de type 2, lesquels sont les nœuds de niveau supérieur d'un arbre qui représente un attribut prévisible particulier. Étant donné que ce modèle contient un seul attribut prévisible, il n'y a qu'un seul nœud d'arbre. Toutefois, si vous créez un modèle d'association à l'aide de l'algorithme MDT, il peut y avoir des centaines d'arbres, un pour chaque produit.

[!REMARQUE]

La colonne, CHILDREN_CARDINALITY, doit être placée entre parenthèses afin de la distinguer du mot clé réservé MDX du même nom.

SELECT MODEL_NAME, NODE_NAME, NODE_CAPTION, 
NODE_SUPPORT, [CHILDREN_CARDINALITY]
FROM TM_DecisionTrees.CONTENT
WHERE NODE_TYPE = 2

Résultats de l'exemple :

MODEL_NAME

NODE_NAME

NODE_CAPTION

NODE_SUPPORT

CHILDREN_CARDINALITY

TM_DecisionTree

000000001

All

12939

5

Dans un modèle d'arbre de décision, la cardinalité d'un nœud particulier vous indique le nombre d'enfants immédiats de ce nœud. Par conséquent, la cardinalité du nœud retourné par la requête précédente vous indique que le modèle a divisé la population cible d'acheteurs de vélos potentiels en 5 sous-groupes. La requête associée suivante retourne les enfants de ces cinq sous-groupes, ainsi que la distribution d'attributs et de valeurs dans les nœuds enfants. Étant donné que des statistiques telles que la prise en charge, la probabilité et la variance sont stockées dans la table imbriquée, NODE_DISTRIBUTION, cet exemple utilise le mot clé FLATTENED pour produire les colonnes de la table imbriquée.

[!REMARQUE]

La colonne de table imbriquée, SUPPORT, doit être placée entre parenthèses afin de la distinguer du mot clé réservé du même nom.

SELECT FLATTENED NODE_NAME, NODE_CAPTION,
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE, [SUPPORT]
FROM NODE_DISTRIBUTION) AS t
FROM TM_DecisionTree.CONTENT
WHERE [PARENT_UNIQUE_NAME] = '000000001'

Résultats de l'exemple :

NODE_NAME

NODE_CAPTION

T.ATTRIBUTE_NAME

T.ATTRIBUTE_VALUE

SUPPORT

00000000100

Number Cars Owned = 0

Bike Buyer

Missing

0

00000000100

Number Cars Owned = 0

Bike Buyer

0

1067

00000000100

Number Cars Owned = 0

Bike Buyer

1

1875

00000000101

Number Cars Owned = 3

Bike Buyer

Missing

0

00000000101

Number Cars Owned = 3

Bike Buyer

0

678

00000000101

Number Cars Owned = 3

Bike Buyer

1

473

D'après ces résultats, vous pouvez indiquer que parmi les clients qui ont acheté un vélo ([Bike Buyer] = 1), 1067 clients n'avaient pas de voitures et 473 clients 3 voitures.

Imaginons que vous souhaitiez en savoir plus sur les clients qui ont acheté un vélo. Vous pouvez afficher des détails supplémentaires pour chacun des sous-arbres en utilisant la fonction IsDescendant (DMX) dans la requête, comme indiqué dans l'exemple suivant. La requête retourne le nombre d'acheteurs de vélos en extrayant les nœuds terminaux (NODE_TYPE = 4) de l'arbre qui contient les clients âgés de plus de 42 ans. La requête limite les lignes de la table imbriquée à ceux pour lesquels Bike Buyer = 1.

SELECT FLATTENED NODE_NAME, NODE_CAPTION,NODE_TYPE,
(
SELECT [SUPPORT] FROM NODE_DISTRIBUTION WHERE ATTRIBUTE_NAME = 'Bike Buyer' AND ATTRIBUTE_VALUE = '1'
) AS t
FROM TM_DecisionTree.CONTENT
WHERE ISDESCENDANT('0000000010001')
AND NODE_TYPE = 4

Résultats de l'exemple :

NODE_NAME

NODE_CAPTION

t.SUPPORT

000000001000100

Yearly Income >= 26000 et < 42000

266

00000000100010100

Total Children = 3

75

0000000010001010100

Number Children At Home = 1

75

Retour au début

Exemple de requête 3 : retour des nœuds de régression d'un modèle d'arbre de décision

Lorsque vous créez un modèle d'arbre de décision qui contient une régression sur un attribut continu, vous pouvez utiliser la formule de régression pour effectuer des prédictions, ou extraire des informations relatives à la formule de régression. Pour plus d'informations sur les requêtes sur les modèles de régression, consultez Interrogation d'un modèle de régression linéaire (Analysis Services - Exploration de données).

Si le modèle contient un mélange de nœuds de régression et de nœuds qui se divisent sur les plages ou les attributs discrets, vous pouvez créer une requête qui retourne uniquement le nœud de régression. La table NODE_DISTRIBUTION contient les détails de la formule de régression. Dans cet exemple, les colonnes sont aplaties et la table NODE_DISTRIBUTION a un alias afin de faciliter sa lecture. Toutefois, dans ce modèle, aucun régresseur n'a été trouvé pour lier le revenu (Income) à d'autres attributs continus. Dans ce cas-là, Analysis Services retourne la valeur moyenne de l'attribut et la variance totale dans le modèle pour cet attribut.

SELECT FLATTENED NODE_DISTRIBUTION AS t
FROM DT_Predict. CONTENT
WHERE NODE_TYPE = 25

Résultats de l'exemple :

t.ATTRIBUTE_NAME

t.ATTRIBUTE_VALUE

t.SUPPORT

t.PROBABILITY

t.VARIANCE

t.VALUETYPE

Yearly Income

Missing

0

0.000457142857142857

0

1

Yearly Income

57220.8876687257

17484

0.999542857142857

1041275619.52776

3

  

57220.8876687257

0

0

1041216662.54387

11

Pour plus d'informations sur les types de valeurs et les statistiques utilisés dans les modèles de régression, consultez Contenu du modèle d'exploration de données pour les modèles de régression linéaire (Analysis Services - Exploration de données).

Retour au début

Élaboration de prédictions à l'aide du modèle

Étant donné que les arbres de décision peuvent être utilisés pour différentes tâches, notamment la classification, la régression et même l'association, lorsque vous créez une requête de prédiction sur un modèle d'arbre de décision, vous disposez de nombreuses options. Pour comprendre les résultats de la prédiction, vous devez comprendre le but pour lequel le modèle a été créé. Les exemples de requêtes suivants illustrent trois scénarios différents :

  • retour d'une prédiction pour un modèle de classification, ainsi que de la probabilité d'exactitude de la prédiction, puis filtrage des résultats en fonction de la probabilité ;

  • création d'une requête singleton pour prédire des associations ;

  • extraction de la formule de régression pour une partie d'un arbre de décision où la relation entre l'entrée et la sortie est linéaire.

Retour au début

Exemple de requête 4 : retour de prédictions et de probabilités

L'exemple de requête suivant utilise le modèle d'arbre de décision qui a été créé dans le Didacticiel sur l'exploration de données de base et passe l'exemple de table de données de AdventureWorks DW, dbo.ProspectiveBuyers, au modèle pour prédire quels clients, parmi ceux d'une liste, achèteront un vélo. La requête inclut la fonction de prédiction PredictHistogram (DMX), laquelle retourne une table imbriquée qui contient des informations utiles sur les probabilités découvertes par le modèle. Les prédictions sont filtrées, en ajoutant une clause WHERE, pour retourner uniquement les clients prédits comme acheteurs de vélos potentiels avec une probabilité supérieure à 50 %.

SELECT
  [TM_DecisionTree].[Bike Buyer],
  PredictHistogram([Bike Buyer]) as Results
FROM
  [TM_DecisionTree]
PREDICTION JOIN
  OPENQUERY([Adventure Works DW],
    'SELECT
      [FirstName],
      [LastName],
      [MaritalStatus],
      [Gender],
      [YearlyIncome],
      [TotalChildren],
      [NumberChildrenAtHome],
      [HouseOwnerFlag],
      [NumberCarsOwned]
    FROM
      [dbo].[ProspectiveBuyer]
    ') AS t
ON
  [TM_DecisionTree].[First Name] = t.[FirstName] AND
  [TM_DecisionTree].[Last Name] = t.[LastName] AND
  [TM_DecisionTree].[Marital Status] = t.[MaritalStatus] AND
  [TM_DecisionTree].[Gender] = t.[Gender] AND
  [TM_DecisionTree].[Yearly Income] = t.[YearlyIncome] AND
  [TM_DecisionTree].[Total Children] = t.[TotalChildren] AND
  [TM_DecisionTree].[Number Children At Home] = t.[NumberChildrenAtHome] AND
  [TM_DecisionTree].[House Owner Flag] = t.[HouseOwnerFlag] AND
  [TM_DecisionTree].[Number Cars Owned] = t.[NumberCarsOwned]
WHERE [Bike Buyer] = 1
AND PredictProbability([Bike Buyer]) >'.05'

Par défaut, Analysis Services retourne des tables imbriquées avec l'étiquette de colonne Expression. Vous pouvez modifier cette étiquette en utilisant un alias pour la colonne qui est retournée. En procédant ainsi, l'alias (dans le cas présent, Résultats) est utilisé à la fois comme l'en-tête de colonne et comme valeur dans la table imbriquée. Vous devez développer la table imbriquée pour afficher les résultats.

Résultats de l'exemple :

Bike Buyer

Résultats

1

Résultats

Bike Buyer$SUPPORT$PROBABILITY$ADJUSTEDPROBABILITY$VARIANCE$STDEV
125400.6348492420456440.01356216828156200
014600.3649841745793770.0066133693255091500
00.0001665833749791770.00016658337497917700

Si votre fournisseur ne prend pas en charge les ensembles de lignes hiérarchiques tels que les résultats présentés ici, vous pouvez utiliser le mot clé FLATTENED dans la requête pour retourner, sous forme de table, les résultats qui contiennent des valeurs Null à la place des valeurs de colonne répétées. Pour plus d'informations, consultez Tables imbriquées (Analysis Services - Exploration de données) ou Présentation de l'instruction Select (DMX).

Retour au début

Exemple de requête 5 : prédiction d'associations à partir d'un arbre de décision

Pour utiliser la requête suivante, vous pouvez créer une copie du modèle d'association dans le didacticiel, puis remplacer l'algorithme par l'algorithme MDT. Pour plus d'informations, consultez Leçon 3 : Génération d'un scénario de panier d'achat (Didacticiel sur l'exploration de données intermédiaire).

L'exemple de requête suivant est une requête singleton que vous pouvez facilement créer dans Business Intelligence Development Studio en choisissant des champs, puis en sélectionnant des valeurs pour ces champs dans une liste déroulante.

SELECT PredictAssociation([DT_Association].[v Assoc Seq Line Items],3)
FROM
  [DT_Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Patch kit' AS [Model]) AS [v Assoc Seq Line Items]) AS t

Résultats attendus :

Modèle

Mountain-200 (VTT-200)

Mountain Tire Tube (Chambre à air VTT)

Touring Tire Tube (Pneu pour vélo de tourisme)

Les résultats vous indiquent les trois meilleurs produits à recommander aux clients qui ont acheté le produit Patch Kit. Vous pouvez également fournir plusieurs produits comme entrée lorsque vous faites des recommandations, soit en entrant des valeurs, soit en ajoutant ou en supprimant des valeurs à l'aide de la boîte de dialogue Entrée de requête singleton. L'exemple de requête suivant montre comment les valeurs multiples sur lesquelles faire une prédiction sont fournies. Les valeurs sont connectées par une clause UNION dans l'instruction SELECT qui définit les valeurs d'entrée.

SELECT PredictAssociation([DT_Association].[v Assoc Seq Line Items],3)
From
  [DT_Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Racing Socks' AS [Model]
  UNION SELECT 'Women''s Mountain Shorts' AS [Model]) AS [v Assoc Seq Line Items]) AS t

Résultats attendus :

Modèle

Long-Sleeve Logo Jersey

Mountain-400-W

Classic Vest

Retour au début

Liste des fonctions de prédiction

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

Pour obtenir la liste des fonctions communes à tous les algorithmes Microsoft, consultez Mappage des fonctions sur les type de requêtes (DMX). Pour connaître la syntaxe de fonctions spécifiques, consultez Fonctions DMX (Data Mining Extensions).

Historique des modifications

Mise à jour du contenu

Ajout de liens internes à la rubrique afin de faciliter la consultation des exemples de requêtes.

Déplacement de l'exemple de nœuds de régression vers la section appropriée, dans les requêtes de contenu.