Partager via


Exemples de requêtes de modèle d’arbre de décision

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 découverts dans l’analyse, ou vous pouvez créer une requête de prédiction, qui utilise les modèles 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’arborescence ou les règles qui différencient les cas. Vous pouvez également appliquer le modèle à de nouvelles données pour générer des recommandations, des classifications, etc. Vous pouvez également récupérer des métadonnées sur le modèle à l’aide d’une requête.

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

Requêtes de contenu

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

Obtention de détails sur les arborescences dans le modèle à l’aide de DMX

Récupération des sous-arbres à partir du modèle

Requêtes de prédiction

Retour de prédictions avec des probabilités

Prédiction d’associations à partir d’un modèle d’arbre de décision

Récupération d’une formule de régression à partir d’un modèle d’arbre de décision

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

Pour créer des requêtes significatives 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 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 d’arbre de décision (Analysis Services - Exploration de données).

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

En interrogeant l’ensemble de lignes du schéma d’exploration de données, vous pouvez trouver des métadonnées sur le modèle, par exemple lors de sa création, lorsque le modèle a été traité pour la dernière fois, le nom de la structure d’exploration de données sur laquelle le modèle est basé et le nom de la colonne utilisée comme attribut prédictible. Vous pouvez également retourner les paramètres 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 :

PARAMÈTRES_MINIERS

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

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

La requête suivante retourne des informations de base sur les arbres de décision qui ont été créés lorsque vous avez créé le modèle dans le didacticiel d’exploration de données de base. Chaque structure arborescente est stockée dans son propre nœud. Étant donné que ce modèle contient un seul attribut prédictible, il n’existe qu’un seul nœud d’arborescence. Toutefois, si vous créez un modèle d’association à l’aide de l’algorithme Decision Trees, il peut y avoir des centaines d’arbres, un pour chaque produit.

Cette requête retourne tous les nœuds de type 2, qui sont les nœuds de niveau supérieur d’une arborescence qui représente un attribut prédictible particulier.

Remarque

La colonne doit CHILDREN_CARDINALITYêtre placée entre crochets pour 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 CARDINALITÉ_DES_ENFANTS
TM_DecisionTree 000000001 Tous 12939 5

Que vous disent ces résultats ? Dans un modèle d’arbres de décision, la cardinalité d’un nœud particulier vous indique le nombre d’enfants immédiats dont dispose ce nœud. La cardinalité de ce nœud est 5, ce qui signifie que le modèle a divisé la population cible des acheteurs potentiels de vélos en 5 sous-groupes.

La requête associée suivante retourne les enfants de ces cinq sous-groupes, ainsi que la distribution des attributs et des valeurs dans les nœuds enfants. Étant donné que les statistiques telles que la prise en charge, la probabilité et la variance sont stockées dans la table imbriquée, NODE_DISTRIBUTIONcet exemple utilise le FLATTENED mot clé pour générer les colonnes de la table imbriquée.

Remarque

La colonne de table imbriquée doit SUPPORTêtre placée entre crochets pour 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 SOUTIEN
00000000100 Nombre de voitures détenues = 0 Acheteur de vélo Manquant 0
00000000100 Nombre de voitures détenues = 0 Acheteur de vélo 0 1067
00000000100 Nombre de voitures détenues = 0 Acheteur de vélo 1 1875
00000000101 Nombre de voitures détenues = 3 Acheteur de vélo Manquant 0
00000000101 Nombre de voitures détenues = 3 Acheteur de vélo 0 678
00000000101 Nombre de voitures détenues = 3 Acheteur de vélo 1 473

À partir de ces résultats, vous pouvez dire que des clients qui ont acheté un vélo ([Bike Buyer] = 1), 1067 clients avaient 0 voitures et 473 clients avaient 3 voitures.

Exemple de requête 3 : Récupération des sous-arborescences à partir du modèle

Supposons que vous vouliez en savoir plus sur les clients qui ont acheté un vélo. Vous pouvez afficher des détails supplémentaires pour l’une des sous-arborescences à l’aide de la fonction IsDescendant (DMX) dans la requête, comme illustré dans l’exemple suivant. La requête retourne le nombre d’acheteurs de vélos en récupérant les nœuds feuilles (NODE_TYPE = 4) de l’arborescence qui contient les clients âgés de plus de 42 ans. La requête limite les lignes de la table imbriquée à celles où 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 Revenu >annuel = 26000 et < 42000 266
00000000100010100 Nombre total d’enfants = 3 75
0000000010001010100 Nombre d’enfants à la maison = 1 75

Effectuer des prédictions à l’aide d’un modèle d’arbre de décision

Étant donné que les arborescences de décision peuvent être utilisées 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 avez de nombreuses options à votre disposition. Vous devez comprendre l’objectif pour lequel le modèle a été créé pour comprendre les résultats de la prédiction. Les exemples de requête suivants illustrent trois scénarios différents :

  • Renvoi d’une prédiction pour un modèle de classification, ainsi que la probabilité de la prédiction correcte, puis filtrage des résultats par la probabilité ;

  • Création d’une requête singleton pour prédire des associations ;

  • Récupération 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.

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

L’exemple de requête suivant utilise le modèle d’arbre de décision créé dans le didacticiel d’exploration de données de base. La requête fournit un nouvel ensemble d'échantillons de données, à partir de la table dbo.ProspectiveBuyers dans AdventureWorks2012 DW, pour prédire quels clients dans le nouveau jeu de données achèteront un vélo.

La requête utilise la fonction de prédiction PredictHistogram (DMX), qui retourne une table imbriquée qui contient des informations utiles sur les probabilités découvertes par le modèle. La clause WHERE finale de la requête filtre les résultats pour retourner uniquement les clients qui sont prédits comme susceptibles d’acheter un vélo, avec une probabilité supérieure à 0%.

SELECT  
  [TM_DecisionTree].[Bike Buyer],  
  PredictHistogram([Bike Buyer]) as Results  
From  
  [TM_DecisionTree]  
PREDICTION JOIN  
  OPENQUERY([Adventure Works DW Multidimensional 2012],  
    '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 retournée. Si vous procédez ainsi, l’alias (dans ce cas, Résultats) est utilisé comme en-tête de colonne et comme valeur dans la table imbriquée. Vous devez développer le tableau imbriqué pour voir les résultats.

Exemples de résultats où Bike Buyer = 1 :

Acheteur de vélo $SOUTIEN $PROBABILITY $ADJUSTEDPROBABILITY $VARIANCE $STDEV
1 2540 0.634849242045644 0.013562168281562 0 0
0 1460 0.364984174579377 0,00661336932550915 0 0
0 0.000166583374979177 0.000166583374979177 0 0

Si votre fournisseur ne prend pas en charge les ensembles de lignes hiérarchiques, tels que ceux présentés ici, vous pouvez utiliser le mot clé FLATTENED dans la requête pour retourner les résultats sous forme de table qui contient 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 DMX Select.

Exemple de requête 5 : Prédiction d’associations à partir d’un modèle d’arbres de décision

L’exemple de requête suivant est basé sur la structure d’exploration de données Association. Pour suivre cet exemple, vous pouvez ajouter un nouveau modèle à cette structure d’exploration de données, puis sélectionner Microsoft Decision Trees comme algorithme. Pour plus d’informations sur la création de la structure d'association, consultez la leçon 3 : Création d’une analyse de panier d'achat (didacticiel d’exploration de données de niveau intermédiaire)

L’exemple de requête suivant est une requête singleton, que vous pouvez créer facilement dans SQL Server Data Tools (SSDT) 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
Montagne-200
Mountain Tire Tube
Tube de pneus de tournée

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 effectuez des recommandations, soit en tapant des valeurs, soit en utilisant la boîte de dialogue Entrée de requête Singleton et en ajoutant ou supprimant des valeurs. L’exemple de requête suivant montre comment les valeurs multiples sont fournies, sur lesquelles effectuer une prédiction. 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 Maillot
Mountain-400-W
Vest classique

Exemple de requête 6 : Récupération d’une formule de régression à partir 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 sur la formule de régression. Pour plus d’informations sur les requêtes sur les modèles de régression, consultez Exemples de requêtes de modèle de régression linéaire.

Si un modèle d’arbre de décision contient un mélange de nœuds de régression et de nœuds fractionnés sur des attributs ou des plages 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 est renommée pour faciliter la visualisation. Toutefois, dans ce modèle, aucun régresseur n’a été trouvé pour lier Le revenu à d’autres attributs continus. Dans ce cas, 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.PROBABILITÉ t.VARIANCE t.VALUETYPE
Revenu annuel Manquant 0 0.000457142857142857 0 1
Revenu annuel 57220.8876687257 17484 0,999542857142857 1041275619.52776 3
57220.8876687257 0 0 1041216662.54387 11

Pour plus d’informations sur les types valeur et les statistiques utilisées 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).

Liste des fonctions de prédiction

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

Fonction de prédiction Utilisation
IsDescendant (DMX) Détermine si un nœud est un enfant d’un autre nœud dans le modèle.
IsInNode (DMX) Indique si le nœud spécifié contient le cas actuel.
PredictAdjustedProbability (DMX) Retourne la probabilité pondérée.
PredictAssociation (DMX) Prédit l’appartenance à un jeu de données associatif.
PredictHistogram (DMX) Retourne une table de valeurs associée à la valeur prédite actuelle.
PredictNodeId (DMX) Retourne la Node_ID pour chaque cas.
PredictProbability (DMX) Retourne la probabilité de la valeur prédite.
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
Algorithme d’arbres de décision Microsoft
Informations de référence techniques sur l’algorithme Arbres de décision Microsoft
Contenu du modèle d’exploration de données pour les modèles d’arbre de décision (Analysis Services - Exploration de données)