Interrogation d'un modèle de régression logistique (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 à l'aide de nouvelles données.

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

Requêtes de contenu

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

Recherche d'informations supplémentaires relatives au modèle à l'aide de DMX

Requêtes de prédiction

Élaboration de prédictions pour une valeur continue

Élaboration de prédictions pour une valeur discrète

Obtention d'informations sur le modèle de régression logistique

Les modèles de régression logistique sont créés en utilisant l'algorithme MNR (Microsoft Neural Network) avec un ensemble spécial de paramètres ; par conséquent, un modèle de régression logistique possède certaines informations identiques à un modèle de réseau neuronal, mais est moins complexe. Pour comprendre la structure du contenu du modèle et savoir quels types de nœud stockent quels types d'informations, consultez Contenu du modèle d'exploration de données pour les modèles de régression logistique (Analysis Services - Exploration de données).

Pour suivre les scénarios de requête, vous pouvez créer un modèle de régression logistique comme décrit dans la section suivante du Didacticiel intermédiaire sur l'exploration de données : Leçon 5 : Génération de modèles de réseau neuronal et de régression logistique (Didacticiel sur l'exploration de données intermédiaire).

Vous pouvez également utiliser la structure d'exploration de données Targeted Mailing du Didacticiel sur l'exploration de données de base.

ALTER MINING STRUCTURE [Targeted Mailing]
ADD MINING MODEL [TM_Logistic Regression]
([Customer Key],
[Age],
[Bike Buyer] PREDICT,
[Yearly Income] PREDICT,
[Commute Distance],
[English Education],
Gender,
[House Owner Flag],
[Marital Status],
[Number Cars Owned],
[Number Children At Home],
[Region],
[Total Children]
)
USING Microsoft_Logistic_Regression

Exemple de requête 1 : récupération des paramètres du modèle à l'aide 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édictible. L'exemple suivant retourne les paramètres utilisés lorsque le modèle a été créé, ainsi que le nom et le type du modèle et sa date de création.

SELECT MODEL_NAME, SERVICE_NAME, DATE_CREATED, MINING_PARAMETERS 
FROM $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'Call Center_LR'

Exemples de résultats :

MODEL_NAME

SERVICE_NAME

DATE_CREATED

MINING_PARAMETERS

Call Center_LR

Microsoft_Logistic_Regression

04/07/2009 20:38:33

HOLDOUT_PERCENTAGE=30, HOLDOUT_SEED=1, MAXIMUM_INPUT_ATTRIBUTES=255, MAXIMUM_OUTPUT_ATTRIBUTES=255, MAXIMUM_STATES=100, SAMPLE_SIZE=10000

Retour en haut

Exemple de requête 2 : recherche d'informations supplémentaires relatives au modèle à l'aide de DMX

La requête suivante retourne des informations de base relatives au modèle de régression logistique. Un modèle de régression logistique est à bien des égards semblable à un modèle de réseau neuronal, y compris en ce qui concerne la présence d'un nœud statistique marginal (NODE_TYPE = 24), qui décrit les valeurs utilisées comme entrées. Cet exemple de requête utilise le modèle de publipostage ciblé et obtient les valeurs de toutes les entrées en les récupérant de la table imbriquée, NODE_DISTRIBUTION.

SELECT FLATTENED NODE_DISTRIBUTION AS t
FROM [TM_Logistic Regression].CONTENT 

Résultats partiels :

t.ATTRIBUTE_NAME

t.ATTRIBUTE_VALUE

t.SUPPORT

t.PROBABILITY

t.VARIANCE

t.VALUETYPE

Age

Missing

0

0

0

1

Age

45.43491192

17484

1

126.9544114

3

Bike Buyer

Missing

0

0

0

1

Bike Buyer

0

8869

0.507263784

0

4

Bike Buyer

1

8615

0.492736216

0

4

Commute Distance

Missing

0

0

0

1

Commute Distance

5-10 Miles

3033

0.173472889

0

4

La requête réelle retourne beaucoup plus de lignes. Toutefois, cet exemple illustre le type d'informations fournies à propos des entrées. Pour les entrées discrètes, chaque valeur possible est répertoriée dans la table. Pour les entrées de valeur continue telles qu'Age, une liste complète est impossible, donc l'entrée est discrétisée comme une moyenne. Pour plus d'informations sur l'utilisation des informations du nœud de statistiques marginales, consultez Contenu du modèle d'exploration de données pour les modèles de régression logistique (Analysis Services - Exploration de données).

Notes

Les résultats ont été aplatis pour un affichage plus aisé, mais vous pouvez retourner la table imbriquée dans une colonne unique si votre fournisseur prend en charge des ensembles de lignes hiérarchiques. Pour plus d'informations, consultez Ensembles de lignes hiérarchiques (page éventuellement en anglais) dans le Guide de référence du programmeur OLE DB.

Retour en haut

Requêtes de prédiction sur un modèle de régression logistique

Vous pouvez utiliser la fonction Predict (DMX) avec n'importe quel modèle d'exploration de données pour fournir de nouvelles données au modèle et élaborer des prédictions basées sur les nouvelles valeurs. Vous pouvez aussi utiliser des fonctions pour retourner des informations supplémentaires sur la prédiction, comme la probabilité que la prédiction soit correcte. Cette section fournit des exemples de requêtes de prédiction sur un modèle de régression logistique.

Exemple de requête 3 : élaboration de prédictions pour une valeur continue

Il est facile de créer des modèles qui mettent en corrélation différents facteurs dans vos données, car la régression logistique prend en charge l'utilisation d'attributs continus à la fois pour les entrées et la prédiction. Vous pouvez utiliser des requêtes de prédiction pour explorer la relation entre ces facteurs.

L'exemple de requête suivant est basé sur le modèle Call Center (centre d'appels), du Didacticiel intermédiaire, et crée une requête singleton qui prédit le niveau de service de l'équipe du vendredi matin. La fonction PredictHistogram (DMX) retourne une table imbriquée, qui fournit des statistiques pertinentes pour comprendre la validité de la valeur prédite.

SELECT
  Predict([Call Center_LR].[Service Grade]) as Predicted ServiceGrade,
  PredictHistogram([Call Center_LR].[Service Grade]) as [Results],
FROM
  [Call Center_LR]
NATURAL PREDICTION JOIN
(SELECT 'Friday' AS [Day Of Week],
  'AM' AS [Shift]) AS t

Exemples de résultats :

Niveau de service (Service Grade) prédit

Résultats

0.102601830123659

Service Grade$SUPPORT$PROBABILITY$ADJUSTEDPROBABILITY$VARIANCE$STDEV
0.10260183012365983.02325581395350.98837209302325600.001205526606000870.034720694203902
0.9767441860465120.01162790697674420.011627906976744200

Pour plus d'informations sur les valeurs de probabilité, de prise en charge et d'écart type dans la table NODE_DISTRIBUTION imbriquée, consultez Contenu du modèle d'exploration de données pour les modèles de régression logistique (Analysis Services - Exploration de données).

Retour en haut

Exemple de requête 4 : élaboration de prédictions pour une valeur discrète

La régression logistique est généralement utilisée dans les scénarios où vous souhaitez analyser les facteurs qui contribuent à un résultat binaire. Bien que le modèle utilisé dans le didacticiel prédise une valeur continue, ServiceGrade, vous préfèrerez peut-être le définir, dans un scénario réel, pour qu'il prédise que le niveau de service va atteindre une valeur cible discrétisée. Vous pouvez également effectuer les prédictions à l'aide d'une valeur continue mais ultérieurement grouper les résultats prédits en Bon, Correct, ou Médiocre.

L'exemple suivant illustre comment modifier la manière dont l'attribut prédictible est groupé. Pour cela, vous créez une copie de la structure d'exploration de données, puis modifiez la méthode de discrétisation de la colonne cible afin que les valeurs soient groupées plutôt que continues.

La procédure suivante décrit comment modifier le regroupement des valeurs Service Grade dans les données du centre d'appels.

Pour créer une version discrétisée de la structure d'exploration de données et des modèles du centre d'appels

  1. Dans Business Intelligence Development Studio, dans l'Explorateur de solutions, développez Structures d'exploration de données.

  2. Cliquez avec le bouton droit sur Call Center.dmm et sélectionnez Copier.

  3. Cliquez avec le bouton droit sur Structures d'exploration de données et sélectionnez Coller. Une nouvelle structure d'exploration de données est ajoutée, nommée Call Center 1.

  4. Cliquez avec le bouton droit sur la nouvelle structure d'exploration de données et sélectionnez Renommer. Tapez le nouveau nom, Centre d'appels discrétisé.

  5. Double-cliquez sur la nouvelle structure d'exploration de données pour l'ouvrir dans le concepteur. Remarquez que tous les modèles d'exploration de données ont été également copiés et que tous ont l'extension 1. Laissez les noms tels quels pour le moment.

  6. Dans l'onglet Structure d'exploration de données, cliquez avec le bouton droit sur la colonne de Service Grade et sélectionnez Propriétés.

  7. Modifiez la propriété Content de Continu en Discrétisé. Modifiez la propriété DiscretizationMethod en Clusters. Pour DiscretizationBucketCount, tapez 3.

    Notes

    Ces paramètres sont utilisés juste pour illustrer le processus et ne produisent pas nécessairement de modèle valide.

  8. Dans le menu Modèle d'exploration de données, sélectionnez Traiter la structure d'exploration de données et tous les modèles.

L'exemple de requête suivant est basé sur ce modèle discrétisé et prédit le niveau de service pour le jour spécifié de la semaine, ainsi que les probabilités pour chaque résultat prédit.

SELECT
  (PredictHistogram([Call Center_LR 1].[Service Grade])) as [Predictions]
FROM
  [Call Center_LR 1]
NATURAL PREDICTION JOIN
(SELECT 'Saturday' AS [Day Of Week]) AS t  

Résultats attendus :

Prédictions

Service Grade$SUPPORT$PROBABILITY$ADJUSTEDPROBABILITY$VARIANCE$STDEV
0.1087271838312535.72465047706410.4252934580602870.017016836003029300
0.0585576923062531.70988808007030.3774986676198850.02088202006045400
0.17016949152515.61091598832020.1858442379561920.066138657138604900
0.9545454545454550.01136363636363640.011363636363636400

Notez que les résultats prédits ont été groupés en trois catégories, comme spécifié ; toutefois, ces regroupements sont basés sur le clustering de valeurs réelles dans les données, et non sur des valeurs arbitraires que vous pouvez définir comme objectifs stratégiques.

Retour en haut

Liste des fonctions de prédiction

Tous les algorithmes Microsoft prennent en charge un ensemble commun de fonctions. Toutefois, l'algorithme MLR (Microsoft Logistic Regression) prend en charge les fonctions supplémentaires qui sont décrites dans le tableau suivant.

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

Notes

Pour les modèles de réseau neuronal et de régression logistique, la fonction PredictSupport (DMX) retourne une valeur unique qui représente la taille du jeu d'apprentissage pour le modèle entier.