Partager via


Leçon 4 : Exécution de prédictions de panier de marché

Dans cette leçon, vous allez utiliser l’instruction DMX SELECT pour créer des prédictions basées sur les modèles d’association que vous avez créés dans la leçon 2 : Ajout de modèles d’exploration à la structure d’exploration des paniers d'achats. Une requête de prédiction est créée à l’aide de l’instruction DMX SELECT et en ajoutant une PREDICTION JOIN clause. Pour plus d’informations sur la syntaxe d’une jointure de prédiction, consultez SELECT FROM <model> PREDICTION JOIN (DMX) .

La forme SELECT FROM <model> PREDICTION JOIN de l’instruction SELECT contient trois parties :

  • La liste des colonnes du modèle d'exploration de données et des fonctions de prédiction qui sont retournées dans le jeu de résultats. Cette liste peut également contenir des colonnes d’entrée à partir des données sources.

  • 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 peut récupérer une liste de clients.

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

Vous pouvez améliorer la requête à l’aide de fonctions de prédiction. Les fonctions de prédiction fournissent des informations supplémentaires, telles que la probabilité d’une prédiction qui se produit, ou la prise en charge d’une prédiction dans le jeu de données d’entraînement. Pour plus d’informations sur les fonctions de prédiction, consultez Functions (DMX) .

Vous pouvez également utiliser le générateur de requêtes de prédiction dans SQL Server Data Tools (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 syntaxe SELECT FROM <model> PREDICTION JOIN et à fournir un ensemble unique de valeurs en tant qu’entrée. Voici un exemple générique de 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 la requête retourne et spécifie le nom du modèle d’exploration de données 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 spécifiez 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 colonnes étaient différents, vous devrez spécifier des mappages entre les colonnes du modèle et les colonnes des nouvelles données en ajoutant une ON clause.

[NATURAL] PREDICTION JOIN  

Les lignes suivantes du code définissent les produits dans le panier d’achat qui seront utilisés pour prédire les produits supplémentaires qu’un client ajoutera :

(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éez une requête qui prédit les autres articles qu’un client achètera probablement, en fonction des articles déjà existants dans leur panier d’achat. Vous allez créer cette requête à l’aide du modèle d’exploration de données avec la MINIMUM_PROBABILITY par défaut.

  • Créez une requête qui prédit les autres articles qu’un client achètera probablement en fonction des articles déjà existants dans leur 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 de MINIMUM_PROBABILITY dans les modèles d’association est 0.3, la requête sur ce modèle doit retourner plus d’éléments possibles que la requête sur le modèle par défaut.

Créer une prédiction à l’aide d’un modèle avec le MINIMUM_PROBABILITY par défaut

Pour créer une requête d’association

  1. Dans l’Explorateur d’objets, cliquez avec le bouton droit sur l’instance d’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 l’instruction PREDICTION JOIN dans la requête vide.

  3. Remplacez ce qui suit :

    <select list>   
    

    avec :

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

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

  4. Remplacez ce qui suit :

    [<mining model>]   
    

    avec :

    [Default Association]  
    
  5. Remplacez ce qui suit :

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

    avec :

    (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 l’instruction UNION pour spécifier trois produits qui doivent être inclus dans le panier d’achat avec les produits prédits. La colonne Model de l’instruction SELECT correspond à la colonne Model contenue dans la table produits imbriquée.

    L’instruction complète doit maintenant être la suivante :

    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. Dans le menu Fichier , cliquez sur Enregistrer DMXQuery1.dmx As.

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

  8. Dans la barre d’outils, cliquez sur le bouton Exécuter .

    La requête retourne une table qui contient trois produits : HL Mountain Tire, Fender Set - Mountain et ML Mountain Tire. Le tableau répertorie ces produits retournés dans l’ordre de probabilité. Le produit retourné qui est 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 suivants sont les plus susceptibles d’être inclus dans le panier d’achat. La table contient également des statistiques décrivant la précision de la prédiction.

Créer une prédiction à l’aide d’un modèle avec une MINIMUM_PROBABILITY de 0.01

Pour créer une requête d’association

  1. Dans l’Explorateur d’objets, cliquez avec le bouton droit sur l’instance d’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 l’instruction PREDICTION JOIN dans la requête vide.

  3. Remplacez ce qui suit :

    <select list>   
    

    avec :

    PREDICT([Modified Association].[Products],INCLUDE_STATISTICS,3)  
    
  4. Remplacez ce qui suit :

    [<mining model>]   
    

    avec :

    [Modified Association]  
    
  5. Remplacez ce qui suit :

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

    avec :

    (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 l’instruction UNION pour spécifier trois produits qui doivent être inclus dans le panier d’achat avec les produits prédits. La [Model] colonne de l'instruction SELECT correspond à celle de la table de produits imbriquée.

    L’instruction complète doit maintenant être la suivante :

    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. Dans le menu Fichier , cliquez sur Enregistrer DMXQuery1.dmx As.

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

  8. Dans la barre d’outils, cliquez sur le bouton Exécuter .

    La requête retourne une table qui contient trois produits : HL Mountain Tire, Water Bottle et Fender Set - Mountain. Le tableau répertorie ces produits dans l’ordre de probabilité. Le produit qui apparaît en haut de la table est le produit qui est 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 plus susceptibles d’être inclus dans le panier d’achat. La table contient également des statistiques qui décrivent la précision de la prédiction.

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

Il s’agit de la dernière étape du didacticiel Market Basket. Vous disposez maintenant d’un ensemble de modèles que vous pouvez utiliser pour prédire les produits que les clients peuvent acheter en même temps.

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

Voir aussi

Exemples de requêtes de modèle d’association
Interfaces de requête d’exploration de données