Leçon 4 : Exécution de prédictions Market Basket

 

S’applique à : SQL Server 2016 Preview

Dans cette leçon, vous allez utiliser l’instruction DMX Sélectionnez pour créer des prédictions basées sur l’association de modèles vous avez créé dans leçon 2 : ajout de modèles d’exploration de données à la Structure d’exploration de données Market Basket. Une requête de prédiction est créée à l’aide de l’instruction DMX Sélectionnez instruction et en ajoutant un PREDICTION JOIN clause. Pour plus d’informations sur la syntaxe d’une jointure de prédiction, consultez SELECT FROM &#60 ; modèle &#62 ; JOINTURE de prédiction &#40 ; DMX &#41 ;.

Le SELECT FROM PREDICTION JOIN formulaire de la Sélectionnez instruction contient trois parties :

  • Liste des colonnes du modèle d'exploration de données et des fonctions de prédiction renvoyées dans l'ensemble de résultats. Cette liste peut également contenir les colonnes d'entrée issues des données source.

  • Requête source qui définit les données utilisées pour créer une prédiction. Par exemple, si vous créez de nombreuses prédictions dans un lot, la requête source pourrait extraire une liste de clients.

  • Mappage entre les colonnes du modèle d'exploration de données et les données source. Si les noms de colonnes correspondent, vous pouvez utiliser la NATURAL PREDICTION JOIN syntaxe et omettre les mappages de colonnes.

Vous pouvez affiner la requête à l'aide de fonctions de prédiction. Les fonctions de prédiction fournissent des informations supplémentaires, notamment la probabilité d'une prédiction, ou offrent la prise en charge d'une prédiction dans le dataset d'apprentissage. Pour plus d’informations sur les fonctions de prédiction, consultez fonctions &#40 ; DMX &#41 ;.

Vous pouvez également faire appel au générateur de requêtes de prédiction disponible dans Outils de données SQL Server (SSDT) pour créer des requêtes de prédiction.

Instruction singleton PREDICTION JOIN

La première étape consiste à créer une requête singleton, à l’aide de la SELECT FROM PREDICTION JOIN syntaxe et en fournissant un ensemble unique de valeurs comme entrée. L'exemple générique suivant utilise l'instruction 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 première ligne du code définit les colonnes du modèle d'exploration de données que retourne la requête et spécifie le nom du modèle d'exploration utilisé pour générer la prédiction :

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

La ligne suivante du code indique l'opération à effectuer. Étant donné que vous allez spécifier des valeurs pour chacune des colonnes et tapez les noms de colonnes exactement afin de correspondre au modèle, vous pouvez utiliser la NATURAL PREDICTION JOIN syntaxe. Toutefois, si les noms de colonne étaient différents, vous devrez spécifier les mappages entre les colonnes dans le modèle et les colonnes dans les nouvelles données en ajoutant un ON clause.

[NATURAL] PREDICTION JOIN  

Les lignes suivantes du code définissent les produits du panier d'achat à utiliser pour prédire d'autres produits ajoutés par un client :

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

Tâches de la leçon

Vous allez effectuer les tâches suivantes dans cette leçon :

  • Créer une requête pour prédire quels autres articles un client est susceptible d’acheter, en fonction des éléments déjà présents dans son panier d’achat. Vous allez créer cette requête à l’aide du modèle d’exploration de données avec la valeur par défaut MINIMUM_PROBABILITY.

  • créer une requête pour prédire quels autres articles un client est susceptible d'acheter, en vous basant sur des articles déjà présents dans son panier d'achat. Cette requête est basée sur un modèle différent, dans lequel MINIMUM_PROBABILITY a été défini sur 0.01. Étant donné que la valeur par défaut MINIMUM_PROBABILITY dans les modèles d’association est 0.3, la requête sur ce modèle doit retourner davantage d’éléments possibles que la requête sur le modèle par défaut.

Création d'une prédiction à l'aide d'un modèle avec le paramètre MINIMUM_PROBABILITY par défaut

Pour créer une requête Association

  1. Dans Explorateur d’objets, cliquez sur l’instance de Analysis Services, pointez sur nouvelle requête, puis cliquez sur DMX pour ouvrir l’éditeur de requête.

  2. Copiez l’exemple générique de le PREDICTION JOIN instruction dans la requête vide.

  3. Remplacez le code suivant :

    <select list>   
    

    par :

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

    Vous pouvez simplement inclure le nom de colonne [Products], mais en utilisant la Predict &#40 ; DMX &#41 ; (fonction), vous pouvez limiter le nombre de produits qui sont retournées par l’algorithme à trois. Vous pouvez également utiliser INCLUDE_STATISTICS, qui retourne la probabilité ajustée pour chaque produit, la probabilité et la prise en charge. Ces statistiques vous aident à évaluer la précision de la prédiction.

  4. Remplacez le code suivant :

    [<mining model>]   
    

    par :

    [Default Association]  
    
  5. Remplacez le code suivant :

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

    par :

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

    Cette instruction utilise le UNION pour spécifier trois produits qui doivent être inclus dans le panier d’achat avec les produits prédits. La colonne du modèle dans le Sélectionnez instruction correspond à la colonne de modèle qui est contenue dans la table imbriquée des produits.

    L'instruction tout entière doit se présenter comme suit :

    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. Sur le fichier menu, cliquez sur Enregistrer DMXQuery1.dmx sous.

  7. Dans la Enregistrer sous boîte de dialogue, recherchez le dossier approprié et nommez le fichier Association Prediction.dmx.

  8. Dans la barre d’outils, cliquez sur le Execute bouton.

    La requête retourne une table qui contient trois produits : HL Mountain Tire, Fender Set – Mountain et ML Mountain Tire. La table répertorie ces produits retournés par ordre de probabilité. Le produit retourné le plus susceptible d'être inclus dans le même panier d'achat que les trois produits spécifiés dans la requête apparaît en haut de la table. Les deux produits qui suivent sont les produits suivants les plus susceptibles d'être inclus dans le panier d'achat. La table renferme également des statistiques indiquant la précision de la prédiction.

Création d'une prédiction à l'aide d'un modèle avec un paramètre MINIMUM_PROBABILITY de 0.01

Pour créer une requête Association

  1. Dans Explorateur d’objets, cliquez sur l’instance de Analysis Services, pointez sur nouvelle requête, puis cliquez sur DMXpour ouvrir l’éditeur de requête.

  2. Copiez l’exemple générique de le PREDICTION JOIN instruction dans la requête vide.

  3. Remplacez le code suivant :

    <select list>   
    

    par :

    PREDICT([Modified Association].[Products],INCLUDE_STATISTICS,3)  
    
  4. Remplacez le code suivant :

    [<mining model>]   
    

    par :

    [Modified Association]  
    
  5. Remplacez le code suivant :

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

    par :

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

    Cette instruction utilise le UNION pour spécifier trois produits qui doivent être inclus dans le panier d’achat avec les produits prédits. La [Model] colonne dans la Sélectionnez instruction correspond à la colonne dans la table imbriquée des produits.

    L'instruction tout entière doit se présenter comme suit :

    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. Sur le fichier menu, cliquez sur Enregistrer DMXQuery1.dmx sous.

  7. Dans la Enregistrer sous boîte de dialogue, recherchez le dossier approprié et nommez le fichier Modified Association Prediction.dmx.

  8. Dans la barre d’outils, cliquez sur le Execute bouton.

    La requête retourne une table qui contient trois produits : HL Mountain Tire, Water Bottle et Fender Set – Mountain. La table répertorie ces produits par ordre de probabilité. Le produit affiché en haut de la table est le produit le plus susceptible d'être inclus dans le même panier d'achat que les trois produits spécifiés dans la requête. Les produits restants sont les produits suivants les plus susceptibles d'être inclus dans le panier d'achat. La table renferme également des statistiques qui indiquent la précision de la prédiction.

    Vous pouvez le voir dans les résultats de cette requête que la valeur de la MINIMUM_PROBABILITY paramètre affecte les résultats retournés par la requête.

C'est la dernière étape du didacticiel Market Basket. Vous disposez à présent d'un ensemble de modèles à l'aide desquels il vous est possible de prévoir les produits que les clients sont susceptibles d'acheter en même temps.

Pour savoir comment utiliser DMX dans un autre scénario de prévision, consultez didacticiel DMX Bike Buyer.

Voir aussi

Exemples de requêtes de modèle d'association
Outils de requête d'exploration de données