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. |
Voir aussi