Lezione 4: Esecuzione delle stime relative a Market Basket

 

Si applica a: SQL Server 2016 Preview

In questa lezione si utilizzerà la DMX selezionare istruzione per creare stime in base all'associazione ai modelli creati in Lezione 2: aggiunta di modelli di Data Mining alla struttura di Data Mining Market Basket. Viene creata una query di stima tramite DMX selezionare istruzione e l'aggiunta di un PREDICTION JOIN clausola. Per ulteriori informazioni sulla sintassi di un prediction join, vedere modello selezionare da < > PREDICTION JOIN ( DMX ).

Il SELECT FROM PREDICTION JOIN costituito il selezionare istruzione contiene tre parti:

  • Un elenco di colonne e funzioni di stima del modello di data mining restituite nel set di risultati. Può includere anche le colonne di input dall'origine dei dati.

  • Una query di origine che definisce i dati utilizzati per la creazione di una stima, Ad esempio, se si stanno creando più stime in un batch, la query di origine è in grado di recuperare un elenco dei clienti.

  • Un mapping tra le colonne del modello di data mining e i dati di origine. Se i nomi delle colonne corrispondono, è possibile utilizzare il NATURAL PREDICTION JOIN sintassi e omettere i mapping delle colonne.

Per migliorare la query, è possibile utilizzare le funzioni di stima che forniscono informazioni aggiuntive, quali la probabilità che una stima sia confermata dai fatti o supporto per una stima nel set di dati di training. Per ulteriori informazioni sulle funzioni di stima, vedere funzioni ( DMX ).

È inoltre possibile utilizzare il generatore delle query di stima in SQL Server Data Tools (SSDT) per creare query di stima.

Istruzione PREDICTION JOIN singleton

Il primo passaggio consiste nel creare una query singleton, utilizzando il SELECT FROM PREDICTION JOIN sintassi e fornendo un solo set di valori come input. Di seguito è riportato un esempio generico dell'istruzione singleton:

SELECT <select list>  
    FROM [<mining model>]   
[NATURAL] PREDICTION JOIN  
(SELECT '<value>' AS [<column>],   
    (SELECT 'value' AS [<nested column>] UNION  
        SELECT 'value' AS [<nested column>] ...)   
    AS [<nested table>])  
AS [<input alias>]  

La prima riga del codice definisce le colonne del modello di data mining restituite dalla query e specifica il nome del modello di data mining utilizzato per generare la stima:

SELECT <select list> FROM [<mining model>]   

La riga successiva del codice indica l'operazione da eseguire. Perché si specificheranno valori per ognuna delle colonne e i nomi delle colonne digiteranno corrisponde al modello, è possibile utilizzare il NATURAL PREDICTION JOIN sintassi. Tuttavia, se i nomi di colonna sono diversi, è necessario specificare i mapping tra le colonne nel modello e le colonne nei nuovi dati aggiungendo un ON clausola.

[NATURAL] PREDICTION JOIN  

Le righe successive del codice definiscono i prodotti presenti nel carrello acquisti che verranno utilizzati per stimare i prodotti aggiuntivi che un cliente aggiungerà:

(SELECT '<value>' AS [<column>],   
    (SELECT 'value' AS [<nested column>] UNION  
        SELECT 'value' AS [<nested column>] ...)   
    AS [<nested table>])  

Argomenti della lezione

In questa lezione verranno eseguite le attività seguenti:

  • Creazione di una query che stima quali altri articoli è probabile che vengano acquistati da un cliente, sulla base degli articoli già inseriti nel carrello acquisti. Verrà creata questa query tramite il modello di data mining con il valore predefinito MINIMUM_PROBABILITY.

  • Creazione di una query che stima quali altri articoli è probabile che vengano acquistati da un cliente, sulla base degli articoli già inseriti nel carrello acquisti. Questa query è basata su un modello diverso, in cui MINIMUM_PROBABILITY è stato impostato su 0,01. Poiché il valore predefinito per MINIMUM_PROBABILITY nei modelli di associazione è 0,3, la query su questo modello deve restituire più di prodotti rispetto alla query sul modello predefinito.

Creazione di una stima utilizzando un modello con il valore predefinito per MINIMUM_PROBABILITY

Per creare una query di associazione

  1. In Esplora oggetti, fare doppio clic sull'istanza di Analysis Services, scegliere Nuova Query, quindi fare clic su DMX per aprire l'Editor di Query.

  2. Copiare l'esempio generico del PREDICTION JOIN istruzione nella query vuota.

  3. Sostituire quanto segue:

    <select list>   
    

    con:

    PREDICT([Default Association].[Products],INCLUDE_STATISTICS,3)  
    

    È possibile includere il nome della colonna [Products], ma utilizzando il Predict ( DMX ) funzione, è possibile limitare il numero di prodotti restituiti dall'algoritmo a tre. È inoltre possibile utilizzare INCLUDE_STATISTICS, che restituisce il supporto, probabilità e della probabilità adattato per ogni prodotto. Queste statistiche consentono di valutare l'accuratezza della stima.

  4. Sostituire quanto segue:

    [<mining model>]   
    

    con:

    [Default Association]  
    
  5. Sostituire quanto segue:

    (SELECT '<value>' AS [<column>],   
        (SELECT 'value' AS [<nested column>] UNION  
            SELECT 'value' AS [<nested column>] ...)   
        AS [<nested table>])  
    

    con:

    (SELECT (SELECT 'Mountain Bottle Cage' AS [Model]  
      UNION SELECT 'Mountain Tire Tube' AS [Model]  
      UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t  
    

    Questa istruzione utilizza il unione istruzione per specificare tre prodotti che devono essere inclusi nel carrello acquisti insieme ai prodotti stimati. La colonna del modello nel selezionare istruzione corrisponde alla colonna del modello contenuto nella tabella dei prodotti nidificata.

    L'istruzione completa dovrebbe risultare analoga alla seguente:

    SELECT  
      PREDICT([Default Association].[Products],INCLUDE_STATISTICS,3)  
    From  
      [Default Association]  
    NATURAL PREDICTION JOIN  
    (SELECT (SELECT 'Mountain Bottle Cage' AS [Model]  
      UNION SELECT 'Mountain Tire Tube' AS [Model]  
      UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t  
    
  6. Nel File menu, fare clic su Salva Dmxquery1.

  7. Nel Salva con nome la finestra di dialogo, individuare la cartella appropriata e denominare il file Association Prediction.

  8. Sulla barra degli strumenti, fare clic sui Execute pulsante.

    La query restituisce una tabella che contiene tre prodotti: HL Mountain Tire, Fender Set – Mountain e ML Mountain Tire. Nella tabella vengono elencati questi prodotti restituiti in ordine di probabilità. Il prodotto restituito con la maggiore probabilità di essere incluso nello stesso carrello acquisti dei tre prodotti specificati nella query viene visualizzato all'inizio della tabella. I due prodotti che seguono sono quelli con la seconda maggiore probabilità di essere inclusi nel carrello acquisti. La tabella contiene anche le statistiche che descrivono l'accuratezza della stima.

Creazione di una stima utilizzando un modello con il valore 0,01 per MINIMUM_PROBABILITY

Per creare una query di associazione

  1. In Esplora oggetti, fare doppio clic sull'istanza di Analysis Services, scegliere Nuova Query, quindi fare clic su DMXper aprire l'Editor di Query.

  2. Copiare l'esempio generico del PREDICTION JOIN istruzione nella query vuota.

  3. Sostituire quanto segue:

    <select list>   
    

    con:

    PREDICT([Modified Association].[Products],INCLUDE_STATISTICS,3)  
    
  4. Sostituire quanto segue:

    [<mining model>]   
    

    con:

    [Modified Association]  
    
  5. Sostituire quanto segue:

    (SELECT '<value>' AS [<column>],   
        (SELECT 'value' AS [<nested column>] UNION  
            SELECT 'value' AS [<nested column>] ...)   
        AS [<nested table>])  
    

    con:

    (SELECT (SELECT 'Mountain Bottle Cage' AS [Model]  
      UNION SELECT 'Mountain Tire Tube' AS [Model]  
      UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t  
    

    Questa istruzione utilizza il unione istruzione per specificare tre prodotti che devono essere inclusi nel carrello acquisti insieme ai prodotti stimati. Il [Model] colonna il selezionare istruzione corrisponde alla colonna nella tabella dei prodotti nidificata.

    L'istruzione completa dovrebbe risultare analoga alla seguente:

    SELECT  
      PREDICT([Modified Association].[Products],INCLUDE_STATISTICS,3)  
    From  
      [Modified Association]  
    NATURAL PREDICTION JOIN  
    (SELECT (SELECT 'Mountain Bottle Cage' AS [Model]  
      UNION SELECT 'Mountain Tire Tube' AS [Model]  
      UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t  
    
  6. Nel File menu, fare clic su Salva Dmxquery1.

  7. Nel Salva con nome la finestra di dialogo, individuare la cartella appropriata e denominare il file modificato Association Prediction.

  8. Sulla barra degli strumenti, fare clic sui Execute pulsante.

    La query restituisce una tabella che contiene tre prodotti: HL Mountain Tire, Water Bottle e Fender Set – Mountain. Nella tabella vengono elencati questi prodotti in ordine di probabilità. Il prodotto visualizzato nella parte superiore della tabella è il prodotto con la maggiore probabilità di essere incluso nello stesso carrello acquisti dei tre prodotti specificati nella query. I due prodotti rimanenti sono quelli con la seconda maggiore probabilità di essere inclusi nel carrello acquisti. La tabella contiene anche le statistiche che descrivono l'accuratezza della stima.

    Si può vedere i risultati della query che il valore di MINIMUM_PROBABILITY parametro ha effetto sui risultati restituiti dalla query.

Questo passaggio conclude l'esercitazione Market Basket. A questo punto si dispone di un set di modelli da utilizzare per stimare i prodotti che i clienti potrebbero acquistare contemporaneamente.

Per informazioni sull'utilizzo di DMX in un altro scenario predittivo, vedere esercitazione su DMX per Bike Buyer.

Vedere anche

Esempi di query sul modello di associazione
Strumenti query di data mining