Lezione 4: Esecuzione delle stime relative a Market Basket

In questa lezione si utilizzerà l'istruzione DMX SELECT per creare stime sulla base dei modelli di associazione creati nella Lezione 2: Aggiunta di modelli di data mining alla struttura di data mining Market Basket. Una query della stima viene creata utilizzando l'istruzione DMX SELECT e aggiungendo una clausola PREDICTION JOIN Per ulteriori informazioni sulla sintassi di un'istruzione PREDICTION JOIN, vedere SELECT FROM <model> PREDICTION JOIN (DMX).

La forma SELECT FROM <model> PREDICTION JOIN dell'istruzione SELECT 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 la sintassi NATURAL PREDICTION JOIN 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 Business Intelligence Development Studio per creare query di stima. Per ulteriori informazioni, vedere Generazione di query di stima DMX.

Istruzione PREDICTION JOIN singleton

Il primo passaggio consiste nella creazione di una query singleton, utilizzando la sintassi SELECT FROM <model> PREDICTION JOIN 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 si digiteranno i nomi delle colonne in modo che corrispondano al modello, è possibile utilizzare la sintassi NATURAL PREDICTION JOIN. Tuttavia, se i nomi della colonna sono diversi, è necessario specificare i mapping tra le colonne nel modello e le colonne nei nuovi dati aggiungendo una clausola ON.

[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. Questa query verrà creata utilizzando il modello di data mining con il valore predefinito per 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 si basa su un modello diverso, in cui MINIMUM_PROBABILITY è stato impostato su 0,01. Poiché il valore predefinito di MINIMUM_PROBABILITY nei modelli di associazione è 0,3, la query in questo modello deve possibilmente restituire un numero maggiore di prodotti rispetto alla query nel 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 clic con il pulsante destro del mouse sull'istanza di Analysis Services, scegliere Nuova query, quindi fare clic su DMX per aprire l'editor di query.

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

  3. Sostituire quanto segue:

    <select list> 
    

    con:

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

    Sebbene sia possibile includere solo il nome della colonna [Products], utilizzando la funzione Predict (DMX) è possibile limitare a tre il numero di prodotti restituiti dall'algoritmo. È inoltre possibile utilizzare INCLUDE_STATISTICS, che restituisce il supporto, la probabilità e il valore della probabilità adattato per ciascun 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 l'istruzione UNION per specificare tre prodotti che devono essere inclusi nel carrello acquisti insieme ai prodotti stimati. La colonna Model nell'istruzione SELECT corrisponde alla colonna del modello presente 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. Scegliere Salva DMXQuery1.dmx con nome dal menu File.

  7. Nella finestra di dialogo Salva con nome individuare la cartella appropriata e assegnare al file il nome Association Prediction.dmx.

  8. Fare clic sul pulsante Esegui sulla barra degli strumenti.

    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 clic con il pulsante destro del mouse sull'istanza di Analysis Services, scegliere Nuova query, quindi fare clic su DMX per aprire l'editor di query.

  2. Copiare l'esempio generico dell'istruzione PREDICTION JOIN 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 l'istruzione UNION per specificare tre prodotti che devono essere inclusi nel carrello acquisti insieme ai prodotti stimati. La colonna [Model] nell'istruzione SELECT corrisponde alla colonna della 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. Scegliere Salva DMXQuery1.dmx con nome dal menu File.

  7. Nella finestra di dialogo Salva con nome individuare la cartella appropriata e assegnare al file il nome Modified Association Prediction.dmx.

  8. Fare clic sul pulsante Esegui sulla barra degli strumenti.

    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.

    I risultati di questa query dimostrano che il valore del parametro MINIMUM_PROBABILITY incide 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.