Condividi tramite


Creazione di stime tramite il modello di previsione basato sulla media (Esercitazione intermedia sul data mining)

In un'attività precedente di questa lezione è stato utilizzato il generatore delle query di stima per creare una query che genera le stime predefinite per il modello di previsione. In questa attività verrà descritto come creare una query di stima che applica il modello delle vendite mondiali a una delle singole aree.

Utilizzo di dati di sostituzione in una stima basata su serie temporali

In SQL Server 2008 la funzione PredictTimeSeries (DMX) dispone di due nuovi parametri, EXTEND_MODEL_CASES e REPLACE_MODEL_CASES, che consentono di personalizzare le stime basate su serie temporali.

  • EXTEND_MODEL_CASES consente di aggiungere dati a un modello esistente e di eseguire stime sulla base dei nuovi dati.

  • REPLACE_MODEL_CASES consente di sostituire la serie di dati utilizzata per creare il modello con i dati di un'altra serie.

In questo scenario si utilizzerà REPLACE_MODEL_CASES. È tuttavia innanzitutto necessario configurare una vista origine dati che contenga solo i dati di sostituzione. Per dati di sostituzione si intendono i dati per ogni singola serie. Verrà quindi creata una query di stima che applica il modello generale ai dati di sostituzione.

Per creare la vista origine dati che contiene i dati di sostituzione

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse su Viste origine dati e scegliere Nuova vista origine dati.

  2. Nella Creazione guidata vista origine dati effettuare le selezioni seguenti:

    Origine dati: Adventure Works DW2008

    Selezione tabelle e viste: non selezionare alcuna tabella

    Nome: T1000 Pacific Region

  3. Scegliere Fine.

  4. Fare clic con il pulsante destro del mouse sull'area di progettazione vuota per T1000 Pacific Region.dsv e selezionare Nuova query denominata.

    Verrà visualizzata la finestra di dialogo Crea query denominata. Digitare nuovamente il nome e aggiungere la descrizione seguente:

    Nome: T1000 Pacific Region

    Descrizione: Filtro di vTimeSeries per area e modello

  5. Nel riquadro del testo digitare la query seguente:

    SELECT ReportingDate, ModelRegion, Quantity, Amount
    FROM dbo.vTimeSeries
    WHERE (ModelRegion = N'T1000 Pacific')
    

    [!NOTA]

    È anche possibile creare la query tramite Generatore query, ma è più veloce digitare il testo della query. Tuttavia, dopo avere digitato il testo della query, è possibile fare clic su un altro riquadro per vedere come viene analizzato il testo della query e come viene creata la query dalle tabelle di supporto. È inoltre possibile copiare il testo della query e salvarlo in un file di testo in modo da poterlo riutilizzare per un'altra serie di dati.

  6. Scegliere OK.

  7. Nell'area di progettazione della vista origine dati fare clic con il pulsante destro del mouse su T1000 Pacific e selezionare Esplora dati per verificare che i dati vengano filtrati correttamente.

A questo punto verrà creata come di consueto una query di stima basata su serie temporali, ma si aggiungerà il parametro REPLACE_MODEL_CASES per specificare che la serie di dati sulla quale è basata la stima deve essere sostituita con i nuovi dati che vengono forniti. È inoltre necessario specificare il mapping tra il modello di data mining e la tabella di input.

Per creare la query di stima e fornire i dati di sostituzione

  1. Se il modello non è già aperto, fare doppio clic sulla struttura AllRegions e in Progettazione modelli di data mining fare clic sulla scheda Stima modello di data mining.

  2. Nel riquadro Modello di data mining dovrebbe essere già selezionato il modello AllRegions. In caso contrario, fare clic su Seleziona modello e selezionare il modello AllRegions.

  3. Nel riquadro Seleziona tabella/e di input fare clic su Seleziona tabella del case.

  4. Nella finestra di dialogo Seleziona tabella impostare l'origine dati su T1000 Pacific Region, quindi scegliere OK.

    La vista origine dati creata verrà visualizzata come una tabella con colonne. Alcune colonne potrebbero essere già mappate alle colonne del modello di data mining.

  5. Fare clic con il pulsante destro del mouse sulla linea di join tra il modello di data mining e i dati di input, quindi selezionare Modifica connessioni.

  6. Nella finestra di dialogo Modifica mapping verificare che la colonna ReportingDate nel modello di data mining sia mappata alla colonna ReportingDate nei dati di input.

  7. Nella finestra di dialogo Modifica mapping, nella riga per AvgQty, fare clic sotto Colonna tabella e selezionare T1000 Pacific.Quantity. Scegliere OK.

    In questo passaggio viene eseguito il mapping della colonna della quantità aggregata nel modello generale alla colonna della quantità nella serie di dati di sostituzione.

  8. Nella griglia fare clic sulla prima riga vuota sotto Origine e selezionare AllRegions. In Campo selezionare Region. In Alias digitare Model Used.

    In questo passaggio viene aggiunta ai risultati una colonna che consente di ricordare che le stime sono basate sul modello generale.

  9. Fare clic su una nuova riga vuota e, sotto Origine, selezionare Espressione personalizzata. In Alias digitare ModelRegion. In Criteri/Argomento digitare 'T1000 Pacific'.

    In questo passaggio viene aggiunta ai risultati un'etichetta che consente di ricordare a quale serie sono relative le stime.

  10. Fare clic su una nuova riga vuota e, sotto Origine, selezionare Funzione di stima. In Campo selezionare PredictTimeSeries. In Alias digitare Predicted Values.

  11. Trascinare il campo AvgQty dal riquadro Modello di data mining e rilasciarlo nella colonna Criteri/Argomento.

  12. Nella casella Criteri/Argomento dopo il nome del campo digitare il testo seguente: ,5, REPLACE_MODEL_CASES

    Il testo completo nella casella di testo Criteri/Argomento dovrebbe risultare analogo al seguente: [AllRegions].[AvgQty],5,REPLACE_MODEL_CASES

  13. Fare clic su Risultati.

Visualizzazione dei risultati

La query di stima restituirà risultati analoghi ai seguenti:

Model Used

ModelRegion

Predicted Quantity

All Regions

T-1000 Pacific

$TIMEAvg Qty
25/7/2004 12.00.0068
25/8/2004 12.00.0052
25/9/2004 12.00.0048
25/10/2004 12.00.0056
25/11/2004 12.00.0044

Per applicare il modello generale a una serie di dati differente, ad esempio il modello di prodotto T1000 nell'area dell'America del nord, è necessario creare una query diversa per ogni serie. Tuttavia, invece di eseguire l'intero processo di creazione di una vista origine dati, è possibile modificare l'istruzione DMX creata e filtrare gli input in modo diverso. Ad esempio, l'istruzione DMX seguente rappresenta la query che è stata appena creata:

SELECT
  ([All Regions].[Region]) as [Model Used],
  ( 'T-1000 Pacific') as [ModelRegion],
  (PredictTimeSeries([All Regions].[Avg Qty],5, REPLACE_MODEL_CASES)) as [Predicted Quantity]
FROM
  [All Regions]
PREDICTION JOIN
  OPENQUERY([Adventure Works DW2008],
    'SELECT
      [ReportingDate]
    FROM
      (SELECT        ReportingDate, ModelRegion, Quantity, Amount
FROM            dbo.vTimeSeries
WHERE        (ModelRegion = N''T1000 Pacific'')) as [T1000 Pacific]
    ') AS t
ON
  [All Regions].[Reporting Date] = t.[ReportingDate] AND
   [All Regions].[Avg Qty] = t.[Quantity]

Per applicare questo codice a un modello diverso, è sufficiente modificare l'istruzione della query in modo da sostituire la condizione di filtro e le etichette applicate a ogni risultato. Se ad esempio si modificano le condizioni di filtro e le etichette delle colonne sostituendo "Pacific" con "North America", si otterranno stime per il prodotto T1000 in America del nord, sulla base degli schemi nel modello generale.

Model Used

ModelRegion

Predicted Quantity

All Regions

T-1000 North America

$TIMEAvg Qty
25/7/2004 12.00.00103
25/8/2004 12.00.0084
25/9/2004 12.00.0079
25/10/2004 12.00.0085
25/11/2004 12.00.0068