Partager via


Requêtes de contenu (exploration de données)

Une requête de contenu permet d’extraire des informations sur les statistiques internes et la structure du modèle d’exploration de données. Parfois, une requête de contenu peut fournir des détails qui ne sont pas facilement disponibles dans la visionneuse. Vous pouvez également utiliser les résultats d’une requête de contenu pour extraire des informations par programmation pour d’autres utilisations.

Cette section fournit des informations générales sur les types d’informations que vous pouvez récupérer à l’aide d’une requête de contenu et la syntaxe DMX générale pour les requêtes de contenu.

Requêtes de contenu de base

Exemples

Utilisation des résultats de la requête

Requêtes de contenu de base

Vous pouvez créer des requêtes de contenu à l’aide du Générateur de requêtes de prédiction, utiliser les modèles de requête de contenu DMX fournis dans SQL Server Management Studio ou écrire des requêtes directement dans DMX. Contrairement aux requêtes de prédiction, vous n’avez pas besoin de joindre des données externes, de sorte que les requêtes de contenu sont faciles à écrire.

Cette section fournit une vue d’ensemble des types de requêtes de contenu que vous pouvez créer.

  • Les requêtes sur la structure minière ou les données des cas vous permettent de consulter les données détaillées utilisées pour l'apprentissage.

  • Les requêtes sur le modèle peuvent retourner des modèles, des listes d’attributs, des formules, etc.

Requêtes sur les données de structure et de cas

DMX prend en charge les requêtes sur les données mises en cache utilisées pour générer des structures et des modèles d’exploration de données. Par défaut, ce cache est créé lorsque vous définissez la structure d’exploration de données et est rempli lorsque vous traitez la structure ou le modèle.

Avertissement

Ce cache ne peut pas être effacé ou supprimé si vous devez séparer les données en jeux d’entraînement et de test. Si le cache est effacé, vous ne pouvez pas interroger les données de cas.

Les exemples suivants montrent les modèles courants de création de requêtes sur les données de cas ou les requêtes sur les données de la structure d’exploration de données :

Obtenir tous les cas d’un modèle
SELECT FROM <model>.CASES

Utilisez cette instruction pour récupérer des colonnes spécifiées à partir des données de cas utilisées pour générer un modèle. Vous devez disposer d’autorisations d’extraction sur le modèle pour exécuter cette requête.

Afficher toutes les données incluses dans la structure
SELECT FROM <structure>.CASES

Utilisez cette instruction pour afficher toutes les données incluses dans la structure, y compris les colonnes qui ne sont pas incluses dans un modèle d’exploration de données particulier. Vous devez disposer d’autorisations de perforation sur le modèle de données, ainsi que sur la structure de données, pour récupérer des données de la structure d’exploration de données.

Obtenir la plage de valeurs
SELECT DISTINCT RangeMin(<column>), RangeMax(<column>) FROM <model>

Utilisez cette instruction pour rechercher la valeur minimale, la valeur maximale et la moyenne d’une colonne continue ou des compartiments d’une colonne DISCRÉTISÉE.

Obtenir des valeurs distinctes
SELECT DISTINCT <column>FROM <model>

Utilisez cette instruction pour récupérer toutes les valeurs d’une colonne DISCRETE. N’utilisez pas cette instruction pour les colonnes DISCRÉTISÉES ; utilisez plutôt les fonctions RangeMin et RangeMax.

Rechercher les cas utilisés pour entraîner un modèle ou une structure
SELECT FROM <mining structure.CASES WHERE IsTrainingCase()

Utilisez cette instruction pour obtenir l’ensemble complet de données utilisées dans un modèle d’apprentissage.

Rechercher les cas utilisés pour tester un modèle ou une structure
SELECT FROM <mining structure.CASES WHERE IsTestingCase()

Utilisez cette déclaration pour obtenir les données qui ont été mises de côté pour tester des modèles de datamining liés à une structure spécifique.

Extraction à partir d’un modèle de modèle spécifique vers les données de cas sous-jacentes
SELECT FROM <model>.CASESWHERE IsTrainingCase() AND IsInNode(<node>)

Utilisez cette instruction pour récupérer des données de cas détaillées à partir d’un modèle entraîné. Vous devez spécifier un nœud spécifique : par exemple, vous devez connaître l’ID de nœud du cluster, la branche spécifique de l’arbre de décision, etc. En outre, vous devez disposer d’autorisations d’extraction sur le modèle pour exécuter cette requête.

Requêtes sur les modèles de modèle, les statistiques et les attributs

Le contenu d’un modèle d’exploration de données est utile à de nombreuses fins. Avec une requête de contenu de modèle, vous pouvez :

  • Extrayez des formules ou des probabilités pour effectuer vos propres calculs.

  • Pour un modèle d’association, récupérez les règles utilisées pour générer une prédiction.

  • Récupérez les descriptions des règles spécifiques pour pouvoir utiliser les règles dans une application personnalisée.

  • Affichez les moyennes mobiles détectées par un modèle de série chronologique.

  • Obtenez la formule de régression pour certains segments de la courbe de tendance.

  • Récupérez des informations exploitables sur les clients identifiés comme faisant partie d’un cluster spécifique.

Les exemples suivants montrent quelques-uns des modèles courants de création de requêtes sur le contenu du modèle :

Obtenir des modèles à partir du modèle
SELECT FROM <model>.CONTENT

Utilisez cette instruction pour récupérer des informations détaillées sur des nœuds spécifiques dans le modèle. Selon le type d’algorithme, le nœud peut contenir des règles et des formules, des statistiques de support et de variance, etc.

Récupérer des attributs utilisés dans un modèle entraîné
CALL System.GetModelAttributes(<model>)

Utilisez cette procédure stockée pour récupérer la liste des attributs utilisés par un modèle. Ces informations sont utiles pour déterminer les attributs qui ont été éliminés à la suite de la sélection de fonctionnalités, par exemple.

Récupérer du contenu stocké dans une dimension d’exploration de données
SELECT FROM <model>.DIMENSIONCONTENT

Utilisez cette instruction pour récupérer les données d’une dimension d’exploration de données.

Ce type de requête est principalement destiné à une utilisation interne. Toutefois, tous les algorithmes ne prennent pas en charge cette fonctionnalité. La prise en charge est indiquée par un indicateur dans l’ensemble de lignes de schéma MINING_SERVICES.

Si vous développez votre propre algorithme plug-in, vous pouvez utiliser cette instruction pour vérifier le contenu de votre modèle à des fins de test.

Obtenir la représentation PMML d’un modèle
SELECT * FROM <model>.PMML

Obtient un document XML qui représente le modèle au format PMML. Tous les types de modèles ne sont pas pris en charge.

Exemples

Bien que certains contenus de modèle soient standard entre les algorithmes, certaines parties du contenu varient considérablement en fonction de l’algorithme que vous avez utilisé pour générer le modèle. Par conséquent, lorsque vous créez une requête de contenu, vous devez comprendre quelles informations du modèle sont les plus utiles pour votre modèle spécifique.

Quelques exemples sont fournis dans cette section pour illustrer la façon dont le choix d’algorithme affecte le type d’informations stockées dans le modèle. Pour plus d’informations sur le contenu du modèle d’exploration de données et le contenu spécifique à chaque type de modèle, consultez Contenu du modèle d’exploration de données (Analysis Services - Exploration de données).

Exemple 1 : Requête de contenu sur un modèle d’association

L’instruction, , SELECT FROM <model>.CONTENTretourne différents types d’informations, en fonction du type de modèle que vous interrogez. Pour un modèle d’association, un élément clé d’informations est le type de nœud. Les nœuds sont comme des conteneurs pour obtenir des informations dans le contenu du modèle. Dans un modèle d’association, les nœuds qui représentent des règles ont une valeur NODE_TYPE de 8, tandis que les nœuds qui représentent des ensembles d’éléments ont une valeur NODE_TYPE de 7.

Par conséquent, la requête suivante retourne les 10 premiers ensembles d’éléments, classés par prise en charge (classement par défaut).

SELECT TOP 10 NODE_DESCRIPTION, NODE_PROBABILITY, SUPPORT  
FROM <model>.CONTENT WHERE NODE_TYPE = 7  

La requête suivante s’appuie sur ces informations. La requête retourne trois colonnes : l’ID du nœud, la règle complète et le produit du côté droit de l’ensemble d’éléments, c’est-à-dire le produit dont on prédit qu'il est associé à d’autres produits au sein d’un ensemble d’éléments.

SELECT FLATTENED NODE_UNIQUE_NAME, NODE_DESCRIPTION,  
     (SELECT RIGHT(ATTRIBUTE_NAME, (LEN(ATTRIBUTE_NAME)-LEN('Association model name')))   
FROM NODE_DISTRIBUTION  
WHERE LEN(ATTRIBUTE_NAME)>2  
)   
AS RightSideProduct  
FROM [<Association model name>].CONTENT  
WHERE NODE_TYPE = 8   
ORDER BY NODE_SUPPORT DESC  

Le mot clé FLATTENED indique que l’ensemble de lignes imbriquées doit être converti en table aplatie. L’attribut qui représente le produit sur le côté droit de la règle est contenu dans la table NODE_DISTRIBUTION ; Par conséquent, nous récupérons uniquement la ligne qui contient un nom d’attribut, en ajoutant une exigence indiquant que la longueur est supérieure à 2.

Une fonction de chaîne simple permet de supprimer le nom du modèle de la troisième colonne. (Généralement, le nom du modèle est préfixé aux valeurs des colonnes imbriquées.)

La clause WHERE spécifie que la valeur de NODE_TYPE doit être 8, pour récupérer uniquement les règles.

Pour plus d’exemples, consultez Exemples de requête de modèle d’association.

Exemple 2 : Requête de contenu sur un modèle d’arbre de décision

Un modèle d’arbre de décision peut être utilisé pour la prédiction et pour la classification. Cet exemple suppose que vous utilisez le modèle pour prédire un résultat, mais que vous souhaitez également déterminer quels facteurs ou règles peuvent être utilisés pour classifier le résultat.

Dans un modèle d’arbre de décision, les nœuds sont utilisés pour représenter à la fois les arbres et les nœuds terminaux. La légende de chaque nœud contient la description du chemin d’accès au résultat. Par conséquent, pour tracer le chemin pour un résultat particulier, vous devez identifier le nœud qui le contient et récupérer les détails de ce nœud.

Dans votre requête de prédiction, vous ajoutez la fonction de prédiction PredictNodeId (DMX) pour obtenir l’ID du nœud associé, comme illustré dans l’exemple suivant :

SELECT  Predict([Bike Buyer]), PredictNodeID([Bike Buyer])   
FROM [<decision tree model name>]  
PREDICTION JOIN   
<input rowset>   

Une fois que vous avez l’ID du nœud qui contient le résultat, vous pouvez récupérer la règle ou le chemin d’accès qui explique la prédiction en créant une requête de contenu qui inclut le NODE_CAPTION, comme suit :

SELECT NODE_CAPTION  
FROM [<decision tree model name>]   
WHERE NODE_UNIQUE_NAME= '<node id>'  

Pour plus d’exemples, consultez Exemples de requêtes de modèle d’arbre de décision.

Utilisation des résultats de la requête

Comme l’illustrent les exemples, les requêtes de contenu retournent principalement des ensembles de lignes tabulaires, mais peuvent également inclure des informations à partir de colonnes imbriquées. Vous pouvez aplatir l’ensemble de lignes retourné, mais cela peut rendre l’utilisation des résultats plus complexes. Le contenu du nœud NODE_DISTRIBUTION en particulier est imbriqué, mais contient des informations très intéressantes sur le modèle.

Pour plus d’informations sur l’utilisation des ensembles de lignes hiérarchiques, consultez la spécification OLEDB sur MSDN.

Voir aussi

Présentation de l’instruction DMX Select
Requêtes d’exploration de données