Leçon 5 : Extension du modèle de série chronologique
Dans SQL Server 2012 Enterprise, vous pouvez ajouter de nouvelles données à un modèle de série chronologique et les incorporer automatiquement au modèle. Vous ajoutez de nouvelles données à un modèle d'exploration de données de série chronologique de l'une des deux manières suivantes :
Utilisez une instruction PREDICTION JOIN pour joindre des données d'une source externe aux données d'apprentissage.
Utilisez une requête singleton de prédiction pour fournir les données un secteur à la fois.
Par exemple, supposons que vous avez effectué l'apprentissage du modèle d'exploration de données sur les données de ventes existantes il y a quelques mois. Lorsque vous effectuez de nouvelles ventes, vous pouvez avoir envie de mettre à jour les prédictions de ventes afin d'incorporer ces nouvelles données. Pour cela, il vous suffit de fournir les nouveaux chiffres de ventes en tant que données d'entrée et de générer de nouvelles prédictions basées sur le jeu de données composite.
Exécution de prédictions avec EXTEND_MODEL_CASES
Les exemples génériques suivants de prédiction de série chronologique utilisent EXTEND_MODEL_CASES. Le premier exemple vous permet de spécifier le nombre de prédictions commençant à partir de la dernière étape du modèle d'origine :
SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n, EXTEND_MODEL_CASES)
FROM <mining model>
PREDICTION JOIN <source query>
[WHERE <criteria>]
Le deuxième exemple vous permet de spécifier l'étape à laquelle les prédictions doivent démarrer et celle à laquelle elles doivent se terminer. Cette option est importante lorsque vous étendez les cas de modèles parce que, par défaut, les étapes utilisées pour les requêtes de prédiction démarrent toujours à la fin de la série d'origine.
SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n-start, n-end, EXTEND_MODEL_CASES)
FROM <mining model>
PREDICTION JOIN <source query>
[WHERE <criteria>}
Dans ce didacticiel, vous allez créer deux types de requêtes.
Pour créer une requête singleton de prédiction sur un modèle de série chronologique
Dans l'Explorateur d'objets, cliquez avec le bouton droit sur l'instance de Analysis Services, pointez sur Nouvelle requête, puis cliquez sur DMX.
L'Éditeur de requête s'ouvre et contient une nouvelle requête vide.
Copiez l'exemple générique de l'instruction singleton dans la requête vide.
Remplacez le code suivant :
SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n, EXTEND_MODEL_CASES)
par :
SELECT [Model Region], PredictTimeSeries([Quantity],6, EXTEND_MODEL_CASES) AS PredictQty
La première ligne extrait une valeur du modèle qui identifie la série.
La deuxième ligne contient la fonction de prédiction, qui reçoit 6 prédictions pour Quantity. Un alias, PredictQty, est affecté à la colonne des résultats de prédiction pour simplifier la compréhension des résultats.
Remplacez le code suivant :
FROM <mining model>
par :
FROM [Forecasting_MIXED]
Remplacez le code suivant :
PREDICTION JOIN <source query>
par :
NATURAL PREDICTION JOIN ( SELECT 1 AS [Reporting Date], '10' AS [Quantity], 'M200 Europe' AS [Model Region] UNION SELECT 2 AS [Reporting Date], 15 AS [Quantity]), 'M200 Europe' AS [Model Region] ) AS t
Remplacez le code suivant :
[WHERE <criteria>]
par :
WHERE [ModelRegion] = 'M200 Europe' OR [ModelRegion] = 'M200 Pacific'
L'instruction tout entière doit se présenter comme suit :
SELECT [Model Region], PredictTimeSeries([Quantity],6, EXTEND_MODEL_CASES) AS PredictQty FROM [Forecasting_MIXED] NATURAL PREDICTION JOIN SELECT 1 AS [ReportingDate], '10' AS [Quantity], 'M200 Europe' AS [ModelRegion] UNION SELECT 2 AS [ReportingDate], 15 AS [Quantity]), 'M200 Europe' AS [ModelRegion] ) AS t WHERE [ModelRegion] = 'M200 Europe' OR [ModelRegion] = 'M200 Pacific'
Dans le menu Fichier, cliquez sur Enregistrer DMXQuery1.dmx sous.
Dans la boîte de dialogue Enregistrer sous, accédez au dossier approprié et nommez le fichier Singleton_TimeSeries_Query.dmx.
Dans la barre d'outils, cliquez sur le bouton Exécuter.
La requête renvoie des prédictions de quantité de ventes pour le vélo M200 dans les régions Europe et Pacific.
Démarrage de prédiction avec EXTEND_MODEL_CASES
Maintenant que vous avez créé des prédictions basées sur le modèle d'origine, et avec de nouvelles données, vous pouvez comparer les résultats pour observer comment la mise à jour des données de ventes affecte les prédictions. Avant cela, examinez le code que vous venez de créer et remarquez ce qui suit :
Vous avez fourni de nouvelles données uniquement pour la région Europe.
Vous avez fourni des nouvelles données uniquement pour deux mois.
Le tableau suivant montre comment les nouvelles valeurs fournies pour M200 Europe affectent les prédictions. Vous n'avez pas fourni de nouvelles données pour le produit M200 dans la région Pacific, mais cette série est présentée à titre de comparaison :
Produit et région |
Modèle existant (PredictTimeSeries) |
Modèle avec les données de ventes (PredictTimeSeries mises à jour avec EXTEND_MODEL_CASES) |
||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
M200 Europe |
|
|
||||||||||||||||||||||||||||||||||||
M200 Pacific |
|
|
D'après ces résultats, vous pouvez conclure deux choses :
Les deux premières prédictions pour la série M200 Europe sont exactement les mêmes que les nouvelles données que vous avez fournies. Par sa conception, Analysis Services renvoie les nouveaux points de données réels au lieu d'élaborer une prédiction. Ceci est dû au fait que lorsque vous étendez les cas de modèles, les étapes utilisées pour les requêtes de prédiction démarrent toujours à la fin de la série d'origine. Par conséquent, si vous ajoutez deux nouveaux points de données, les deux premières prédictions renvoyées et les nouvelles données se chevauchent.
Après avoir utilisé tous les nouveaux points de données, Analysis Services élabore des prédictions selon le modèle mis à jour. Par conséquent, à compter de septembre 2005, vous pouvez observer la différence entre les prédictions pour M200 Europe depuis le modèle d'origine, dans la colonne gauche, et le modèle qui utilise EXTEND_MODEL_CASES, dans la colonne droite. Les prédictions sont différentes parce que le modèle a été mis à jour avec les nouvelles données.
Utilisation d'étapes de début et de fin pour contrôler des prédictions
Lorsque vous étendez un modèle, les nouvelles données sont toujours jointes à la fin de la série. Toutefois, à des fins de prédiction, les tranches de temps utilisées pour les requêtes de prédiction commencent toujours à la fin de la série d'origine. Si vous souhaitez obtenir uniquement les nouvelles prédictions lorsque vous ajoutez les nouvelles données, vous devez spécifier le point de départ sous la forme d'un nombre de tranches de temps. Par exemple, si vous ajoutez deux nouveaux points de données et souhaitez élaborer quatre nouvelles prédictions, vous devez procéder comme suit :
Créez une jointure PREDICTION JOIN sur un modèle de série chronologique et spécifiez deux mois de nouvelles données.
Demandez des prédictions pour quatre tranches de temps, dont le point de départ est la tranche de temps 3 et le point de terminaison la tranche de temps 6.
En d'autres termes, si vos nouvelles données contiennent n tranches horaires et que vous demandez des prédictions pour les étapes 1 à n, les prédictions coïncideront avec la même période que les nouvelles données. Pour obtenir de nouvelles prédictions pour des périodes non couvertes par vos données, vous devez commencer les prédictions à la tranche horaire n+1 après la nouvelle série de données ou vous assurer de demander des tranches de temps supplémentaires.
[!REMARQUE]
Vous ne pouvez pas effectuer de prédictions historiques lorsque vous ajoutez de nouvelles données.
L'exemple suivant présente l'instruction DMX qui vous permet d'obtenir uniquement les nouvelles prédictions pour les deux séries mentionnées dans l'exemple précédent.
SELECT [Model Region],
PredictTimeSeries([Quantity],3,6, EXTEND_MODEL_CASES) AS PredictQty
FROM
[Forecasting_MIXED]
NATURAL PREDICTION JOIN
SELECT 1 AS [ReportingDate],
'10' AS [Quantity],
'M200 Europe' AS [ModelRegion]
UNION SELECT
2 AS [ReportingDate],
15 AS [Quantity]),
'M200 Europe' AS [ModelRegion]
) AS t
WHERE [ModelRegion] = 'M200 Europe'
Les résultats de prédiction démarrent à la tranche de temps 3, qui se situe après les 2 mois de nouvelles données que vous avez fournis.
Produit et région |
Modèle avec les données mises à jour (PredictTimeSeries avec EXTEND_MODEL_CASES) |
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
M200 Europe |
|
Exécution de prédictions avec REPLACE_MODEL_CASES
Le remplacement des cas de modèles s'avère utile lorsque vous souhaitez effectuer l'apprentissage d'un modèle sur un ensemble de cas, puis appliquer ce modèle à une série de données différente. Une procédure pas à pas détaillée de ce scénario est présentée dans la Leçon 2 : génération d'un scénario de prévision (Didacticiel intermédiaire sur l'exploration de données).