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 séquences découvertes 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 de détails supplémentaires sur le 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

Recherche 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 jeu 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œuds 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 sur l'exploration de données intermédiaire : 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. Ajoutez ensuite un modèle de régression logistique en exécutant le script DMX suivant :

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évisible. 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 de détails supplémentaires sur le 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 possibles 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. Par exemple, chaque valeur possible pour une valeur discrète est répertoriée dans la table, alors que les entrées continues sont discrétisées. 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).

[!REMARQUE]

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 Hierarchical Rowsets (en anglais) dans le Guide de référence du programmeur OLE DB.

Retour en haut

Élaboration de prédictions à partir d'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 et élaborer des prédictions. 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 et crée une requête singleton qui prédit le niveau de service pour 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 :

Predicted Service Grade (Niveau de service prédit)

Résultats

0.102601830123659

Service Grade (Niveau de service)$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 support et d'écart type dans la table imbriquée NODE_DISTRIBUTION, 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 d'origine utilisé dans le Didacticiel intermédiaire prédise une valeur continue, Service Grade, 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ète. Vous pouvez également effectuer les prédictions à l'aide de valeurs continues, puis 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évisible est groupé. Pour ce faire, vous faites une copie de la structure d'exploration de données puis modifiez la méthode de discrétisation de la colonne cible. 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 des modèles et de la structure d'exploration de données de centre d'appels

  1. Dans l'Explorateur de solutions de Business Intelligence Development Studio, 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, puis 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, puis 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. Notez que les modèles d'exploration de données ont été également copiés, et qu'ils portent tous l'extension 1. Laissez les noms inchangés 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 en remplaçant sa valeur Continu par Discrétisé. Modifiez la propriété DiscretizationMethod en lui affectant la valeur Clusters. Pour DiscretizationBucketCount, tapez 3.

    [!REMARQUE]

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

  8. Dans le menu Modèle d'exploration de données, sélectionnez Traiter l'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 de la semaine spécifié, 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 (Niveau de service)$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é regroupés en trois catégories, comme spécifié ; toutefois, ces regroupements sont basés sur le clustering de valeurs réelles des données, et non sur des valeurs arbitraires que vous pouvez définir comme objectifs professionnels.

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 connaître la syntaxe de fonctions spécifiques, consultez Fonctions DMX (Data Mining Extensions).

[!REMARQUE]

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.