Condividi tramite


Lezione 5: Estensione del modello Time Series

In SQL Server 2014 Enterprise è possibile aggiungere nuovi dati a un modello time series e incorporare automaticamente i nuovi dati nel modello. È possibile aggiungere nuovi dati a un modello di data mining time series in uno dei due modi seguenti:

  • Usare un JOIN di previsione per unire i dati in un'origine esterna ai dati di addestramento.

  • Usare una query di predizione singleton per fornire dati una sezione alla volta.

Supponiamo, ad esempio, di aver addestrato il modello di data mining sui dati di vendita esistenti alcuni mesi fa. Quando si ottengono nuove vendite, è possibile aggiornare le stime delle vendite per incorporare i nuovi dati. È possibile eseguire questa operazione in un unico passaggio, fornendo le nuove cifre di vendita come dati di input e generando nuove stime in base al set di dati composito.

Esecuzione di stime con EXTEND_MODEL_CASES

Di seguito sono riportati esempi generici di una stima di serie temporali che usano EXTEND_MODEL_CASES. Il primo esempio consente di specificare il numero di previsioni a partire dall'ultimo passo temporale del modello originale.

SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n, EXTEND_MODEL_CASES)   
FROM <mining model>  
PREDICTION JOIN <source query>  
[WHERE <criteria>]  

Il secondo esempio consente di specificare il passaggio temporale in cui devono iniziare le stime e dove devono terminare. Questa opzione è importante quando si estendono i casi del modello perché, per impostazione predefinita, i passaggi temporali usati per le query di previsione iniziano sempre alla fine della serie originale.

SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n-start, n-end, EXTEND_MODEL_CASES)   
FROM <mining model>  
PREDICTION JOIN <source query>  
[WHERE <criteria>}  

In questa esercitazione verranno creati entrambi i tipi di query.

Per creare una query di previsione singola in un modello di serie temporale

  1. In Esplora oggetti fare clic con il pulsante destro del mouse sull'istanza di Analysis Services, scegliere Nuova query e quindi fare clic su DMX.

    L'editor di query viene aperto e contiene una nuova query vuota.

  2. Copiare l'esempio generico dell'istruzione singleton nella query non compilata.

  3. Sostituire quanto segue:

    SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n, EXTEND_MODEL_CASES)   
    

    con:

    SELECT [Model Region],  
    PredictTimeSeries([Quantity],6, EXTEND_MODEL_CASES) AS PredictQty  
    

    La prima riga recupera un valore dal modello che identifica la serie.

    La seconda riga contiene la funzione di stima, che ottiene 6 stime per Quantity. Un alias, PredictQty, viene assegnato alla colonna dei risultati della stima per semplificare la comprensione dei risultati.

  4. Sostituire quanto segue:

    FROM <mining model>  
    

    con:

    FROM [Forecasting_MIXED]  
    
  5. Sostituire quanto segue:

    PREDICTION JOIN <source query>  
    

    con:

    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  
    
  6. Sostituire quanto segue:

    [WHERE <criteria>]  
    

    con:

    WHERE [ModelRegion] = 'M200 Europe' OR  
    [ModelRegion] = 'M200 Pacific'  
    

    L'istruzione completa dovrebbe ora essere la seguente:

    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'  
    
  7. Scegliere Salva DMXQuery1.dmx con nome nel menu File.

  8. Nella finestra di dialogo Salva con nome passare alla cartella appropriata e assegnare al file Singleton_TimeSeries_Query.dmxil nome .

  9. Sulla barra degli strumenti fare clic sul pulsante Esegui .

    La query restituisce stime della quantità di vendite per la bicicletta M200 nelle aree Europa e Pacifico.

Comprendere l'avvio della predizione con EXTEND_MODEL_CASES

Ora che sono state create stime basate sul modello originale e con nuovi dati, è possibile confrontare i risultati per vedere come l'aggiornamento dei dati di vendita influisce sulle stime. Prima di eseguire questa operazione, esaminare il codice appena creato e notare quanto segue:

  • Sono stati forniti nuovi dati solo per l'area Europa.

  • Sono stati forniti solo due mesi di nuovi dati.

La tabella seguente illustra in che modo i nuovi valori forniti per M200 Europe influiscono sulle stime. Non sono stati forniti nuovi dati per il prodotto M200 nell'area Pacifico, ma questa serie viene presentata per il confronto:

Prodotto e area geografica: M200 Europe

Modello esistente (PredictTimeSeries) Modello con dati di vendita aggiornati (PredictTimeSeries con EXTEND_MODEL_CASES)
M200 Europe 25/7/2008 12:00:00 77 10
M200 Europe 25/8/2008 12:00:00 64 15
M200 Europe 25/9/2008 12:00:00 59 72
M200 Europe 25/10/2008 12:00:00 56 69
M200 Europe 25/11/2008 12:00:00 56 68
M200 Europe 25/12/2008 12:00:00 74 89

Prodotto e area geografica: M200 Pacifico

Modello esistente (PredictTimeSeries) Modello con dati di vendita aggiornati (PredictTimeSeries con EXTEND_MODEL_CASES)
M200 Pacifico 25/7/2008 12:00:00 41 41
M200 Pacifico 25/8/2008 12:00:00 44 44
M200 Pacifico 25/9/2008 12:00:00 38 38
M200 Pacifico 25/10/2008 12:00:00 41 41
M200 Pacifico 25/11/2008 12:00:00 36 36
M200 Pacifico 25/12/2008 12:00:00 39 39

Da questi risultati è possibile visualizzare due elementi:

  • Le prime due stime per la serie M200 Europe sono esattamente le stesse dei nuovi dati forniti. Per impostazione predefinita, Analysis Services restituisce i nuovi punti dati effettivi anziché eseguire una stima. Ciò è dovuto al fatto che, quando si estendono i casi di modellazione, gli step temporali utilizzati per le query di previsione iniziano sempre alla fine della serie originale. Pertanto, se si aggiungono due nuovi punti dati, le prime due stime restituite si sovrappongono ai nuovi dati.

  • Dopo aver usato tutti i nuovi punti dati, Analysis Services esegue stime in base al modello aggiornato. Pertanto, a partire da settembre 2005, è possibile vedere la differenza tra le stime per M200 Europe dal modello originale, nella colonna a sinistra e il modello che usa EXTEND_MODEL_CASES, nella colonna di destra. Le stime sono diverse perché il modello è stato aggiornato con i nuovi dati.

Utilizzo dei passaggi temporali di inizio e fine per controllare le previsioni

Quando si estende un modello, i nuovi dati vengono sempre collegati alla fine della serie. Ai fini della stima, tuttavia, le sezioni temporali usate per le query di stima iniziano alla fine della serie originale. Se si desidera ottenere solo le nuove stime quando si aggiungono i nuovi dati, è necessario specificare il punto di partenza come numero di intervalli di tempo. Ad esempio, se si aggiungono due nuovi punti dati e si vogliono eseguire quattro nuove stime, eseguire le operazioni seguenti:

  • Creare un'istruzione PREDICTION JOIN su un modello di serie temporali e includere nuovi dati per due mesi.

  • Richiedere stime per quattro sezioni temporali, in cui il punto iniziale è 3 e il punto finale è la sezione temporale 6.

In altre parole, se i nuovi dati contengono n intervalli di tempo e si richiedono stime per i passaggi temporali da 1 a n, le stime coincideranno con lo stesso periodo dei nuovi dati. Per ottenere nuove stime per un periodo di tempo non coperto dai dati, è necessario avviare le stime nella sezione temporale n+1 dopo la nuova serie di dati oppure assicurarsi di richiedere intervalli di tempo aggiuntivi.

Annotazioni

Non è possibile eseguire stime cronologiche quando si aggiungono nuovi dati.

Nell'esempio seguente viene illustrata l'istruzione DMX che consente di ottenere solo le nuove stime per le due serie dell'esempio precedente.

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'  

I risultati della stima iniziano alla sezione temporale 3, ovvero dopo i 2 mesi di nuovi dati forniti.

Prodotto e area geografica: M200 Europe

Modello con dati aggiornati (PredictTimeSeries con EXTEND_MODEL_CASES)

M200 Europe 25/9/2008 12:00:00 72
M200 Europe 25/10/2008 12:00:00 69
M200 Europe 25/11/2008 12:00:00 68
M200 Europe 25/12/2008 12:00:00 89

Esecuzione di stime con REPLACE_MODEL_CASES

La sostituzione dei casi del modello è utile quando si vuole addestrare un modello su un insieme di casi e quindi applicare tale modello a una diversa serie di dati. Una procedura dettagliata di questo scenario viene presentata nella lezione 2: Compilazione di uno scenario di previsione (esercitazione intermedia sul data mining).

Vedere anche

Esempi di query sul modello Time Series
PredictTimeSeries (DMX)