Valeurs manquantes (Analysis Services - Exploration de données)

Une valeur manquante dans vos données peut avoir plusieurs significations. Entre autres possibilités, le champ n'était pas applicable, l'événement n'a pas eu lieu ou bien les données n'étaient pas disponibles. Autre cas de figure, la personne ayant entré les données ne connaissait pas la bonne valeur ou ne s'est pas souciée de laisser un champ non renseigné. Par conséquent, Analysis Services propose deux mécanismes différents pour gérer et calculer ces valeurs manquantes, aussi appelées valeurs NULL.

Si la tâche que vous modélisez spécifie qu'une colonne ne doit jamais comporter de valeurs manquantes, vous devez utiliser l'indicateur de modélisation NOT_NULL lorsque vous définissez la structure d'exploration de données. De cette façon, le traitement échoue si un cas ne possède pas de valeur adéquate. Si une erreur se produit lors du traitement d'un modèle, vous pouvez alors enregistrer l'erreur et prendre des mesures pour corriger les données fournies au modèle. Divers outils sont à votre disposition pour inférer et remplir des valeurs adéquates, notamment la transformation de recherche et la tâche du profileur de données dans SQL Server Integration Services, ou bien l'outil Remplir à partir de l'exemple fourni dans les compléments d'exploration de données pour Excel.

Toutefois, il existe également de nombreux scénarios d'exploration de données dans lesquels des valeurs manquantes fournissent des informations importantes. Généralement, Analysis Services traite les valeurs manquantes comme des éléments informatifs et ajuste les probabilités afin d'incorporer les valeurs manquantes dans ses calculs. Ce faisant, vous pouvez vous assurer que les modèles sont équilibrés et qu'ils ne pèsent pas trop lourdement sur les cas. Cette section explique comment les valeurs sont définies et comptabilisées comme manquantes dans les modèles qui autorisent des valeurs NULL. Cette rubrique décrit également comment les algorithmes d'exploration de données traitent et utilisent ces valeurs Missing lors de la création d'un modèle.

[!REMARQUE]

Chaque algorithme, y compris les algorithmes personnalisés que vous avez pu obtenir d'un plug-in tiers, peut gérer les valeurs manquantes différemment.

Utilisation de valeurs manquantes dans des modèles

Pour l'algorithme d'exploration de données, les valeurs manquantes sont des éléments informatifs. Dans les tables de cas, Missing est un état valide comme tout autre état. De plus, un modèle d'exploration de données peut utiliser d'autres valeurs pour prédire si une valeur est manquante. En d'autres termes, le fait qu'une valeur est manquante n'est pas traité comme une erreur.

Lorsque vous créez un modèle d'exploration de données, un état Missing est ajouté automatiquement au modèle pour toutes les colonnes discrètes. Par exemple, si la colonne d'entrée pour Sexe contient deux valeurs possibles, Homme et Femme, une troisième valeur est ajoutée automatiquement pour représenter la valeur Missing, et l'histogramme qui affiche la distribution de toutes les valeurs pour la colonne indique toujours le nombre de cas avec les valeurs Missing. S'il ne manque aucune valeur dans la colonne Sexe, l'histogramme indique que l'état manquant est présent dans 0 cas.

L'inclusion de l'état Missing par défaut se justifie par le fait que vos données peuvent ne pas comporter des exemples de toutes les valeurs possibles. En effet, il est illogique qu'un modèle exclue une possibilité uniquement sur la base de l'absence d'un exemple dans les données. Par exemple, si les données de ventes d'un magasin indiquent que tous les clients ayant acheté un produit particulier sont des femmes, vous n'allez pas créer un modèle prédisant que seules les femmes sont susceptibles d'acheter le produit. À la place, Analysis Services ajoute un espace réservé pour la valeur inconnue supplémentaire, appelé Missing, comme un moyen de prendre en compte les autres états possibles.

Par exemple, le tableau suivant indique la distribution des valeurs pour le nœud (All) dans le modèle d'arbre de décision créé pour le didacticiel Bike Buyer. Dans le scénario de l'exemple, la colonne [Bike Buyer] est l'attribut prévisible, où 1 indique « Oui » et 0 « Non ».

Valeur

Cas

0

9296

1

9098

Missing

0

Cette distribution montre qu'environ la moitié des clients a acheté un vélo et que l'autre moitié n'en n'a pas acheté. Ce jeu de données particulier est très propre ; par conséquent, chaque cas a une valeur dans la colonne [Bike Buyer] et le nombre de valeurs Missing est de 0. Toutefois, si un cas comporte une valeur NULL dans la colonne [Bike Buyer], Analysis Services compte cette ligne comme un cas avec une valeur Missing.

Si l'entrée est une colonne continue, le modèle tabule deux états possibles pour l'attribut : Existing et Missing. En d'autres termes, soit la colonne contient une valeur d'un type de données numérique, soit elle ne contient aucune valeur. Pour les cas qui possèdent une valeur, le modèle calcule la moyenne, l'écart type et d'autres statistiques significatives. Pour les cas qui n'ont aucune valeur, le modèle indique le nombre des valeurs Missing et ajuste les prédictions en conséquence. La méthode d'ajustement de la prédiction, décrite dans la section suivante, diffère selon l'algorithme.

[!REMARQUE]

Pour les attributs dans une table imbriquée, les valeurs manquantes ne constituent pas des éléments informatifs. Par exemple, si un client n'a pas acheté de produit, la table Products imbriquée ne contient pas de ligne correspondant à ce produit, et le modèle d'exploration de données ne crée pas d'attribut pour le produit manquant. Toutefois, si vous vous intéressez aux clients qui n'ont pas acheté certains produits, vous pouvez créer un modèle filtré d'après l'inexistence des produits dans la table imbriquée en utilisant une instruction NOT EXISTS dans le filtre de modèle. Pour plus d'informations, consultez Procédure : appliquer un filtre à un modèle d'exploration de données.

Ajustement de la probabilité pour la valeur manquante

Outre le dénombrement des valeurs, Analysis Services calcule la probabilité d'une valeur quelconque dans le jeu de données. Il en va de même pour les valeurs Missing. Par exemple, le tableau suivant montre les probabilités pour les cas dans l'exemple précédent :

Valeur

Cas

Probabilité

0

9296

50.55%

1

9098

49.42%

Missing

0

0.03%

Il peut paraître étrange que la probabilité de la valeur Missing soit de 0,03 % avec un nombre de cas égal à 0. En fait, ce comportement est normal et représente un ajustement qui permet au modèle de gérer les valeurs inconnues correctement.

En général, la probabilité correspond au nombre de cas favorables divisé par tous les cas possibles. Dans cet exemple, l'algorithme calcule la somme des cas qui remplissent une condition particulière ([Bike Buyer] = 1 ou [Bike Buyer] = 0), puis divise ce nombre par le nombre total de lignes. Toutefois, pour tenir compte des cas Missing, la valeur 1 est ajoutée au nombre de cas possibles. Ainsi, la probabilité pour le cas inconnu n'est plus nulle, mais un nombre très petit indiquant que l'état est seulement improbable, mais pas impossible.

L'ajout de la petite valeur Missing ne change pas le résultat du prédicteur ; cela permet toutefois une meilleure modélisation dans les scénarios où les données historiques n’incluent pas tous les résultats possibles.

[!REMARQUE]

Les fournisseurs d'exploration de données diffèrent par la manière dont ils gèrent les valeurs manquantes. Par exemple, certains fournisseurs supposent que les données manquantes dans une colonne imbriquée constituent une représentation incomplète, mais que les données manquantes dans une colonne non imbriquée manquent de façon aléatoire.

Si vous êtes certain que tous les résultats sont spécifiés dans vos données et que vous souhaitez empêcher l'ajustement des probabilités, vous devez définir l'indicateur de modélisation NOT_NULL sur la colonne dans la structure d'exploration de données.

Gestion spéciale des valeurs manquantes dans les modèles d'arbre de décision

L'algorithme MDT (Microsoft Decision Trees) ne calcule pas les probabilités pour les valeurs manquantes de la même façon que les autres algorithmes. Au lieu d'ajouter simplement la valeur 1 au nombre total de cas, l'algorithme d'arbres de décision prend en compte les états manquants à l'aide d'une formule légèrement différente.

Dans un modèle d'arbres de décision, la probabilité de l'état manquant est calculé comme suit :

StateProbability = (NodePriorProbability) * (StateSupport + 1) / (NodeSupport + TotalStates)

Par ailleurs, dans SQL Server 2008 Analysis Services, l'algorithme MDT fournit un ajustement supplémentaire qui permet de compenser la présence de filtres sur le modèle, ce qui peut provoquer l'exclusion de nombreux états au cours de l'apprentissage.

Dans SQL Server 2008, si un état est présent pendant l'apprentissage mais que sa prise en charge est de 0 dans un certain nœud, l'ajustement standard est effectué. Cependant, si un état ne survient jamais au cours de l'apprentissage, l'algorithme définit la probabilité à 0. Cet ajustement s'applique non seulement à l'état manquant, mais aussi aux états qui existent dans les données d'apprentissage et qui ont une prise en charge de 0 à la suite du filtrage de modèle.

Cet ajustement supplémentaire se traduit par la formule suivante :

StateProbability = 0,0 si cet état a une prise en charge de 0 dans le jeu d'apprentissage

ELSE StateProbability = (NodePriorProbability) * (StateSupport + 1) / (NodeSupport + TotalStatesWithNonZeroSupport)

L'effet net de cet ajustement est de maintenir la stabilité de l'arbre.