Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La séparation des données en jeux d’apprentissage et de test est une partie importante de l’évaluation des modèles d’exploration de données. En règle générale, lorsque vous séparez un jeu de données en un jeu d’entraînement et un jeu de test, la plupart des données sont utilisées pour l’entraînement, et une partie plus petite des données est utilisée pour les tests. Analysis Services échantillonne de façon aléatoire les données pour vous assurer que les jeux de test et d’entraînement sont similaires. En utilisant des données similaires pour l’entraînement et le test, vous pouvez réduire les effets des écarts de données et mieux comprendre les caractéristiques du modèle.
Une fois qu’un modèle a été traité à l’aide du jeu d’entraînement, vous testez le modèle en effectuant des prédictions sur le jeu de tests. Étant donné que les données du jeu de test contiennent déjà des valeurs connues pour l’attribut que vous souhaitez prédire, il est facile de déterminer si les estimations du modèle sont correctes.
Création de jeux de test et d’entraînement pour les structures d’exploration de données
Dans SQL Server 2014, vous séparez le jeu de données d’origine au niveau de la structure d’exploration de données. Les informations sur la taille des jeux de données d’entraînement et de test, ainsi que la ligne qui appartient à ce jeu, sont stockées avec la structure, et tous les modèles basés sur cette structure peuvent utiliser les jeux pour l’entraînement et le test.
Vous pouvez définir un jeu de données de test sur une structure d’exploration de données de la manière suivante :
Utilisation de l’Assistant Exploration de données pour diviser la structure d’exploration de données lorsque vous la créez.
Modification des propriétés de la structure de données sous l’onglet Structure d’exploration de données du Concepteur d’exploration de données.
Création et modification de structures par programmation à l’aide d’AMO (Analysis Management Objects) ou DDL (XML Data Definition Language).
Utilisation de l’Assistant Exploration de données pour diviser une structure d’exploration de données
Par défaut, une fois que vous avez défini les sources de données d’une structure d’exploration de données, l’Assistant Exploration de données divise les données en deux ensembles : un avec 70 % des données sources, pour l’apprentissage du modèle et un avec 30 % des données sources, pour tester le modèle. Cette valeur par défaut a été choisie, car un ratio de 70 à 30 est souvent utilisé dans l’exploration de données, mais avec Analysis Services, vous pouvez modifier ce ratio en fonction de vos besoins.
Vous pouvez également configurer l’Assistant pour définir un nombre maximal de cas d’entraînement, ou combiner les limites pour autoriser un pourcentage maximal de cas jusqu’à un nombre maximal spécifié de cas. Lorsque vous spécifiez à la fois un pourcentage maximal de cas et un nombre maximal de cas, Analysis Services utilise la plus petite des deux limites comme taille du jeu de tests. Par exemple, si vous spécifiez un délai d’attente de 30 % pour les cas de test et que le nombre maximal de cas de test est de 1000, la taille du jeu de tests ne dépasse jamais 1 000 cas. Cela peut être utile si vous souhaitez vous assurer que la taille de votre jeu de tests reste cohérente même si d’autres données d’apprentissage sont ajoutées au modèle.
Si vous utilisez la même vue de source de données pour différentes structures d’exploration de données et que vous souhaitez vous assurer que les données sont divisées de façon à peu près similaire pour toutes les structures d’exploration de données et leurs modèles, vous devez spécifier la graine utilisée pour initialiser l’échantillonnage aléatoire. Lorsque vous spécifiez une valeur pour HoldoutSeed, Analysis Services utilise cette valeur pour commencer l’échantillonnage. Sinon, l’échantillonnage utilise un algorithme de hachage sur le nom de la structure de minage afin de générer la valeur d'amorce.
Remarque
Si vous créez une copie de la structure d’exploration de données à l’aide des instructions EXPORT et IMPORT, la nouvelle structure d’exploration de données aura les mêmes jeux de données d’entraînement et de test, car le processus d’exportation crée un nouvel ID mais utilise le même nom. Toutefois, si deux structures d'exploration de données utilisent la même source de données sous-jacente, mais ont des noms différents, les ensembles créés pour chaque structure d'exploration de données seront différents.
Modification des propriétés de structure pour créer un jeu de données de test
Si vous créez et traitez une structure d’exploration de données, puis décidez ultérieurement que vous souhaitez mettre de côté un jeu de données de test, vous pouvez modifier les propriétés de la structure d’exploration de données. Pour modifier la façon dont ces données sont partitionnés, modifiez les propriétés suivantes :
| Propriété | Descriptif |
|---|---|
HoldoutMaxCases |
Spécifie le nombre maximal de cas à inclure dans le jeu de tests. |
HoldoutMaxPercent |
Spécifie le nombre de cas à inclure dans le jeu de tests sous la forme d’un pourcentage du jeu de données complet. Pour ne pas avoir de jeu de données, vous spécifiez 0. |
HoldoutSeed |
Spécifie une valeur entière à utiliser comme valeur initiale lors de la sélection aléatoire de données pour les partitions. Cette valeur n’affecte pas le nombre de cas dans le jeu d’entraînement ; Au lieu de cela, elle garantit que la partition peut être répétée. |
Si vous ajoutez ou modifiez un jeu de données de test à une structure existante, vous devez retraiter la structure et tous les modèles associés. En outre, étant donné que la division des données sources entraîne l’apprentissage du modèle sur un sous-ensemble différent des données, vous pouvez voir des résultats différents de votre modèle.
Spécification d’un délai d’attente par programmation
Vous pouvez définir des jeux de données de test et d’apprentissage sur une structure d’exploration de données à l’aide d’instructions DMX, AMO ou DDL XML. L’instruction ALTER MINING STRUCTURE ne prend pas en charge l’utilisation des paramètres de blocage.
DMX Dans le langage DMX (Data Mining Extensions), l’instruction CREATE MINING STRUCTURE a été étendue pour inclure une clause WITH HOLDOUT.
ASSL Vous pouvez créer une structure d’exploration de données ou ajouter un jeu de données de test à une structure d’exploration de données existante à l’aide du langage de script Analysis Services (ASSL).
AMO Vous pouvez également afficher et modifier des jeux de données de retenue à l’aide d’AMO.
Vous pouvez afficher des informations sur le jeu de données d’attente dans une structure d’exploration de données existante en interrogeant l’ensemble de lignes du schéma d’exploration de données. Pour ce faire, vous pouvez effectuer un appel DISCOVER ROWSET ou utiliser une requête DMX.
Récupération d’informations sur les données de blocage
Par défaut, toutes les informations sur les jeux de données d’entraînement et de test sont mises en cache, afin que vous puissiez utiliser des données existantes pour entraîner, puis tester de nouveaux modèles. Vous pouvez également définir des filtres à appliquer aux données de blocage mises en cache afin de pouvoir évaluer le modèle sur les sous-ensembles des données.
La manière dont les cas sont divisés en ensembles de données d'apprentissage et de test dépend de la façon dont vous configurez l'échantillonnage de validation et des données que vous fournissez. Si vous souhaitez déterminer le nombre de cas utilisés pour l’entraînement ou pour les tests, ou si vous souhaitez trouver des détails supplémentaires sur les cas inclus dans les jeux d’entraînement et de test, vous pouvez interroger la structure du modèle en créant une requête DMX. Par exemple, la requête suivante retourne les cas utilisés dans le jeu d’entraînement du modèle.
SELECT * from <structure>.CASES WHERE IsTrainingCase()
Pour récupérer uniquement les cas de test et filtrer ces cas sur l’une des colonnes de la structure d’exploration de données, utilisez la syntaxe suivante :
SELECT * from <structure>.CASES WHERE IsTestCase() AND <structure column name> = '<value>'
Limitations relatives à l’utilisation des données d’attente
Pour utiliser le blocage, la propriété MiningStructureCacheMode de la structure d'exploration de données doit être définie sur la valeur par défaut,
KeepTrainingCases. Si vous changez la propriétéCacheModeenClearAfterProcessinget retraitez ensuite la structure d’exploration de données, la partition sera perdue.Vous ne pouvez pas supprimer les données d’un modèle de série chronologique ; par conséquent, vous ne pouvez pas séparer les données sources en jeux d’entraînement et de test. Si vous commencez à créer une structure et un modèle d’exploration de données et si vous choisissez l’algorithme Microsoft Time Series, l’option permettant de créer un jeu de données de validation est désactivée. L’utilisation des données de test est également désactivée si la structure d’exploration de données contient une colonne KEY TIME au niveau du cas ou de la table imbriquée.
Il est possible de configurer par inadvertance le jeu de données de retenue afin que le jeu de données complet soit utilisé pour les tests et qu’aucune donnée ne reste disponible pour l’entraînement. Toutefois, si vous le faites, Analysis Services génère une erreur afin que vous puissiez corriger le problème. Analysis Services vous avertit également lorsque la structure est traitée si plus de 50 % des données ont été conservées pour les tests.
Dans la plupart des cas, la valeur d’attente par défaut de 30 fournit un bon équilibre entre les données d’entraînement et de test. Il n’existe aucun moyen simple de déterminer quelle devrait être la taille du jeu de données pour fournir une formation suffisante, ou à quel point le jeu d’entraînement peut être clairsemé tout en évitant le surajustement. Toutefois, après avoir créé un modèle, vous pouvez utiliser la validation croisée pour évaluer le jeu de données par rapport à un modèle particulier.
Outre les propriétés répertoriées dans le tableau précédent, une propriété en lecture seule,
HoldoutActualSizeest fournie dans AMO et XML DDL. Toutefois, étant donné que la taille réelle d’une partition ne peut pas être déterminée avec précision tant que la structure n’a pas été traitée, vérifiez si le modèle a été traité avant de récupérer la valeur de laHoldoutActualSizepropriété.
Contenu associé
| Sujets | Liens |
|---|---|
| Décrit comment les filtres d’un modèle interagissent avec les jeux de données d’entraînement et de test. | Filtres pour les modèles d’exploration de données (Analysis Services - Exploration de données) |
| Décrit comment l’utilisation des données d’entraînement et de test affecte la validation croisée. | Validation croisée (Analysis Services - Exploration de données) |
| Fournit des informations sur les interfaces programmatiques pour l’utilisation des jeux d’apprentissage et de test dans une structure d’exploration de données. |
Concepts et modèle objet AMO Élément MiningStructure (ASSL) |
| Fournit la syntaxe DMX pour la génération d'ensembles de validation. | CREATE MINING STRUCTURE (DMX) |
| Récupérez des informations sur les cas dans les jeux d’entraînement et de test. |
Ensembles de lignes de schéma d’exploration de données Requête des ensembles de lignes de schéma d’exploration de données (Analysis Services - Exploration de données) |
Voir aussi
Outils d’exploration de données
Concepts d’exploration de données
Solutions d’exploration de données
Test et validation (exploration de données)