Validation croisée (Analysis Services - Exploration de données)
Outil standard dans le domaine de l'analyse, la validation croisée est une fonction importante dans le développement et l'optimisation de modèles d'exploration de données. Vous recourez à la validation croisée après avoir créé une structure d'exploration de données et des modèles d'exploration de données connexes dans le but d'établir la validité du modèle. Les applications de la validation croisée sont les suivantes :
Validation de la robustesse d'un modèle d'exploration de données particulier
Évaluation de plusieurs modèles à partir d'une instruction unique
Génération de plusieurs modèles et identification du meilleur modèle sur la base de statistiques
Cette section décrit comment utiliser les fonctions de validation croisée fournies dans SQL Server 2008. Elle explique aussi comment interpréter les résultats de la validation croisée pour un modèle ou jeu de données particulier. Vous pouvez exécuter la validation croisée sous forme d'un jeu de procédures stockées. Vous pouvez également utiliser la validation croisée à partir du Concepteur d'exploration de données dans Business Intelligence Development Studio.
Vue d'ensemble du processus de validation croisée
La validation croisée comprend deux phases, l'apprentissage et la génération des résultats, qui incluent les étapes suivantes :
Sélection d'une structure d'exploration de données cible.
Spécification des modèles à tester.
Spécification du nombre de replis dans lesquels partitionner les données de structure.
Analysis Services crée autant de modèles qu'il y a de replis et effectue l'apprentissage des modèles.
Pour générer des résultats, vous devez spécifier des paramètres pour tester les modèles ayant fait l'objet d'un apprentissage.
Spécification de la source des données de test (cette fonctionnalité est uniquement disponible lorsque vous utilisez les procédures stockées).
Spécification de l'attribut prédictible, de la valeur prédite et du seuil de précision.
Analysis Services retourne ensuite un jeu de mesures de précision pour chaque repli dans chaque modèle. Vous pouvez aussi retourner des mesures de précision pour l'ensemble du jeu de données.
Utilisation de la validation croisée dans le Concepteur d'exploration de données
Si vous effectuez une validation croisée à l'aide de l'onglet Validation croisée de la vue Graphique d'analyse de précision de l'exploration de données dans Business Intelligence Development Studio, vous pouvez configurer les paramètres d'apprentissage et des résultats de précision dans un formulaire unique. Cela simplifie la configuration et l'affichage des résultats. Vous pouvez mesurer la précision de tous les modèles d'exploration de données qui sont liés à une structure d'exploration de données unique et consulter aussitôt les résultats dans un rapport HTML.
Pour plus d'informations sur le format du rapport et les mesures de précision fournies par la validation croisée, consultez Rapport de validation croisée (Analysis Services - Exploration de données).
Pour plus d'informations sur la configuration des paramètres de validation croisée dans Business Intelligence Development Studio, consultez Onglet Validation croisée (vue Graphique d'analyse de précision de l'exploration de données).
Utilisation des procédures stockées de validation croisée
Pour les utilisateurs expérimentés, la validation croisée est également disponible sous la forme de quatre procédures stockées système. Vous pouvez exécuter les procédures stockées en vous connectant à une instance d'Analysis Services 2008 depuis SQL Server Management Studio ou à partir de n'importe quelle application de code managé.
Les procédures stockées sont regroupées par type de modèle d'exploration de données. La première paire de procédures fonctionne uniquement avec les modèle de clustering. La seconde fonctionne avec les autres modèles d'exploration de données.
Notes
La validation croisée ne peut pas être utilisée avec un modèle contenant une colonne KEY TIME ou KEY SEQUENCE.
Il existe, pour chaque type de modèle d'exploration de données, deux procédures stockées. La première crée le nombre de partitions que vous spécifiez dans le jeu de données, et retourne des résultats de précision pour chaque partition. Pour chaque mesure, Analysis Services calcule la moyenne et l'écart type pour les partitions.
La deuxième procédure stockée ne partitionne pas le jeu de données, mais génère des résultats de précision pour l'ensemble du jeu de données spécifié. Vous pouvez également utiliser la deuxième procédure stockée si la structure d'exploration de données et ses modèles ont déjà été partitionnés et traités.
Partitionner des données et générer des mesures pour des partitions
SystemGetCrossValidationResults (Analysis Services - Exploration de données)
SystemGetClusterCrossValidationResults (Analysis Services - Exploration de données)
Générer des mesures pour un jeu de données entier
SystemGetAccuracyResults (Analysis Services - Exploration de données)
SystemGetClusterAccuracyResults (Analysis Services - Exploration de données)
Configuration de la validation croisée
Vous pouvez personnaliser la façon dont la validation croisée fonctionne pour contrôler le nombre de sections croisées, les modèles testés et la barre de précision pour les prédictions. Si vous utilisez les procédures stockées de validation croisée, vous pouvez également spécifier le jeu de données utilisé pour valider les modèles. Grâce à cette multitude de choix, vous pouvez facilement produire de nombreux jeux de résultats différents qui devront ensuite être comparés et analysés.
Cette section fournit des informations pour vous aider à configurer la validation croisée de façon appropriée.
Définition du nombre de partitions
Lorsque vous spécifiez le nombre de partitions, vous déterminez le nombre de modèles temporaires qui seront créés. Pour chaque partition, une section croisée des données est marquée d'un indicateur pour une utilisation en tant que jeu de test, et un nouveau modèle est créé par apprentissage sur les données restantes qui ne figurent pas dans la partition. Ce processus est répété jusqu'à ce qu'Analysis Services ait créé et testé le nombre spécifié de modèles. Les données que vous avez spécifiées comme étant disponibles pour la validation croisée sont réparties uniformément entre toutes les partitions.
L'exemple dans le diagramme illustre l'utilisation des données si trois replis sont spécifiés.
Dans le scénario du diagramme, la structure d'exploration de données contient un jeu de données d'exclusion utilisé pour le test, mais le jeu de données de test n'a pas été inclus pour la validation croisée. En conséquence, toutes les données dans le jeu de données d'apprentissage, 70 pour cent des données dans la structure d'exploration de données, sont utilisées pour la validation croisée. Le rapport de validation croisée affiche le nombre total de cas utilisés dans chaque partition.
Vous pouvez également spécifier la quantité de données qui sont utilisées au cours de la validation croisée en spécifiant le nombre total de cas à utiliser. Les cas sont répartis uniformément entre tous les replis.
Si la structure d'exploration de données est stockée dans une instance de SQL Server Analysis Services, la valeur maximale que vous pouvez définir pour le nombre de replis est 256 ou le nombre de cas (la valeur la plus petite étant retenue). Si vous utilisez une structure d'exploration de données de session, le nombre maximal de replis est 10.
Notes
Lorsque vous augmentez le nombre de replis, le temps nécessaire pour effectuer la validation croisée s'accroît en conséquence, car un modèle doit être généré et testé pour chaque repli. Vous risquez d'être confronté à des problèmes de performances si le nombre de replis est trop élevé.
Définition des données de test
Lorsque vous exécutez les procédures stockées qui calculent la précision, SystemGetAccuracyResults (Analysis Services - Exploration de données) ou SystemGetClusterAccuracyResults (Analysis Services - Exploration de données), vous pouvez spécifier la source des données utilisée pour le test au cours de la validation croisée en combinant les options suivantes :
Utiliser uniquement les données d'apprentissage
Inclure un jeu de données de test existant
Utiliser uniquement le jeu de données de test
Appliquer des filtres existants à chaque modèle
Toute combinaison du jeu d'apprentissage, du jeu de test et des filtres de modèle
Vous contrôlez la composition du jeu de données de test en fournissant une valeur pour le paramètre DataSet.
Si vous effectuez une validation croisée à l'aide du rapport Validation croisée dans le Concepteur d'exploration de données, vous ne pouvez pas modifier le jeu de données utilisé. Par défaut, les cas d'apprentissage pour chaque modèle sont utilisés. Si un filtre est associé à un modèle, le filtre est appliqué.
Validation croisée de modèles d'exploration de données filtrés
Si vous testez plusieurs modèles d'exploration de données et que les modèles ont des filtres, chaque modèle est filtré séparément. Vous ne pouvez pas ajouter de filtre à un modèle ni modifier le filtre pour un modèle pendant la validation croisée.
Étant donné que la validation croisée teste par défaut tous les modèles d'exploration de données associés à une structure, vous pouvez recevoir des résultats incohérents si certains modèles ont un filtre et que d'autres n'en n'ont pas. Pour vous assurer que la comparaison porte uniquement sur les modèles ayant le même filtre, vous devez utiliser les procédures stockées et spécifier une liste de modèles d'exploration de données. Ou bien, utilisez uniquement le jeu de test de la structure d'exploration de données sans filtre pour faire en sorte qu'un jeu de données cohérent soit utilisé pour tous les modèles.
Définition du seuil de précision
Le seuil d'état vous permet de définir la barre de précision pour les prédictions. Pour chaque cas, le modèle calcule une probabilité, appelée probabilité de prédiction, selon laquelle l'état prédit est correct. Si la probabilité de prédiction excède la barre de précision, la prédiction est comptabilisée comme étant correcte ; dans le cas contraire, la prédiction est comptabilisée comme étant incorrecte. Vous contrôlez cette valeur en attribuant au Seuil d'état une valeur comprise entre 0,0 et 1,0. Les valeurs proches de 1 indiquent un niveau de confiance élevé dans les prédictions, tandis que les valeurs proches de 0 indiquent qu'il est peu probable que la prédiction se réalise. La valeur par défaut pour le seuil d'état est NULL, ce qui signifie que l'état prédit avec la probabilité la plus élevée est considéré comme la valeur cible.
Notes
Vous pouvez définir une valeur de 0,0, mais cela n'a pas de sens car chaque prédiction sera comptabilisée comme étant correcte, même une prédiction avec une probabilité nulle. Faites attention de ne pas attribuer par erreur la valeur 0,0 au Seuil d'état.
Par exemple, vous avez trois modèles qui prédisent la colonne [Bike Buyer], et la valeur que vous souhaitez prédire est 1, c'est-à-dire « oui, va acheter ». Les trois modèles retournent des prédictions avec les probabilités de prédiction 0,05, 0,15 et 0,8. Si vous attribuez au seuil d'état la valeur 0,10, deux prédictions sont alors comptabilisées comme étant correctes. Si vous attribuez au seuil d'état la valeur 0,5, un seul modèle est comptabilisé comme ayant retourné une prédiction correcte. Si vous utilisez la valeur par défaut (null), la prédiction la plus probable est comptabilisée comme étant correcte. Dans ce cas, les trois prédictions sont comptabilisées comme étant correctes.
Mesures utilisées dans la validation croisée
Différentes mesures de précision sont générées en fonction du type particulier de modèle d'exploration de données, du type de données de l'attribut prédictible et, le cas échéant, de la valeur de l'attribut prédictible. Cette section définit les meures principales à titre de référence. Pour obtenir une liste des mesures de précision qui sont retournées dans le rapport pour chaque modèle, regroupées par type, consultez Rapport de validation croisée (Analysis Services - Exploration de données).
Mesure |
S'applique à |
Implémentation |
---|---|---|
Classification : vrai positif, faux positif, vrai négatif, faux négatif |
Attribut discret, valeur spécifiée |
Nombre de lignes ou valeurs dans la partition où la probabilité de prédiction est supérieure au seuil de l'état et où l'état prédit correspond à l'état cible. |
Classification : réussite/échec |
Attribut discret, cible non spécifiée |
Nombre de lignes ou valeurs dans la partition où l'état prédit correspond à l'état cible et où la valeur de la probabilité de prédiction est supérieure à 0. |
Lift |
Attribut discret. La valeur cible peut être spécifiée, mais elle n'est pas requise. |
Vraisemblance moyenne du journal pour toutes les lignes avec des valeurs pour l'attribut cible, où la vraisemblance de journal de chaque cas est calculée en tant que Log(ActualProbability/MarginalProbability). Pour calculer la moyenne, la somme des valeurs de la vraisemblance du journal est divisée par le nombre de lignes du dataset d'entrée, à l'exclusion des lignes dont la valeur de l'attribut cible est manquante. Lift peut être une valeur positive ou négative. Une valeur positive signifie un modèle efficace qui dépasse l'estimation aléatoire. |
Score du journal |
Attribut discret. La valeur cible peut être spécifiée, mais elle n'est pas requise. |
Journal de la probabilité réelle de chaque cas, additionnée, puis divisée par le nombre de lignes du dataset d'entrée, à l'exclusion des lignes dont la valeur de l'attribut cible est manquante. Étant donné que la probabilité est représentée comme une fraction décimale, les scores du journal sont toujours des nombres négatifs. |
Vraisemblance de cas |
Cluster |
Somme des scores de vraisemblance du cluster de tous les cas, divisée par le nombre de cas dans la partition, à l'exclusion des lignes dont la valeur de l'attribut cible est manquante. |
Erreur d'absolue moyenne |
Attribut continu |
Somme des erreurs absolues de tous les cas de la partition, divisée par le nombre de cas de la partition, à l'exception des cas dont des valeurs sont manquantes. |
Erreur du carré moyen racine |
Attribut continu |
Racine carrée de l'erreur du carré moyen racine pour la partition. |
Erreur du carré moyen racine |
Attribut discret. La valeur cible peut être spécifiée, mais elle n'est pas requise. |
Racine carrée de la moyenne des carrés du complément du score de probabilité, divisée par le nombre de cas de la partition, à l'exclusion des lignes dont la valeur de l'attribut cible est manquante. |
Erreur du carré moyen racine |
Attribut discret, cible non spécifiée |
Racine carrée de la moyenne des carrés du complément du score de probabilité, divisée par le nombre de cas de la partition, à l'exclusion des cas où la valeur de l'attribut cible est manquante. |