Share via


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 e utilizzare i dati di un'altra serie.

In questo scenario si utilizzerà REPLACE_MODEL_CASES. È tuttavia necessario configurare innanzitutto una vista origine dati che contenga solo i dati di sostituzione. I dati di sostituzione sono i dati utilizzati per ogni singola serie. Dopo avere creato la vista origine dati di sostituzione, è possibile creare 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 DW2008R2

    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, quindi 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 compilare 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 compilata 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. Fare clic su 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à compilata 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 compilare 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 il modello AllRegions dovrebbe essere già selezionato. 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, quindi selezionare AllRegions. Nella colonna Campo selezionare Region e nella colonna Alias digitare Model Used.

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

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

    In questo passaggio viene aggiunta ai risultati un'etichetta che consente di visualizzare le serie a cui si riferiscono le stime.

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

  11. Trascinare il campo AvgQty dal riquadro Modello di data mining e rilasciarlo nella colonna Criteri/Argomento mediante un'operazione di trascinamento.

  12. Nella colonna Criteri/Argomento digitare dopo il nome del campo 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 a quelli riportati nella tabella seguente:

Model Used

ModelRegion

Predicted Quantity

All Regions

T-1000 Pacific

$TIMEAvg Qty
7/25/2008 12:00:00 AM68
8/25/2008 12:00:00 AM52
9/25/2008 12:00:00 AM48
10/25/2008 12:00:00 AM56
11/25/2008 12:00:00 AM44

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 iniziare da capo l'intero processo, è 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 compilata:

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 DW2008R2],
    '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
7/25/2008 12:00:00 AM103
8/25/2008 12:00:00 AM84
9/25/2008 12:00:00 AM79
10/25/2008 12:00:00 AM85
11/25/2008 12:00:00 AM68