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

Dans cette leçon, vous allez utiliser l'instruction SELECT DMX pour créer des prédictions basées sur les modèles Association que vous avez créés 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 en utilisant l'instruction DMX SELECT et en ajoutant une clause PREDICTION JOIN Pour plus d'informations sur la syntaxe d'une jointure de prédiction, consultez SELECT FROM <modèle> PREDICTION JOIN (DMX).

Le formulaire SELECT FROM <model> PREDICTION JOIN de l'instruction SELECT est composé de 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 des colonnes correspondent, vous pouvez utiliser la syntaxe NATURAL PREDICTION JOIN 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 (DMX).

Vous pouvez également faire appel au générateur de requêtes de prédiction disponible dans Business Intelligence Development Studio pour créer des requêtes de prédiction. Pour plus d'informations, consultez Utilisation du Générateur de requêtes de prédictions pour créer des requêtes de prédictions DMX.

Instruction singleton PREDICTION JOIN

La première étape consiste à créer une requête singleton, en utilisant la syntaxe SELECT FROM <model> PREDICTION JOIN et en fournissant un jeu 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 spécifierez des valeurs pour chacune des colonnes et que vous taperez les noms de colonnes exactement pour qu'ils correspondent au modèle, vous pouvez utiliser la syntaxe NATURAL PREDICTION JOIN. Toutefois, si les noms de colonne étaient différents, il vous faudra spécifier des mappages entre les colonnes dans le modèle et les colonnes dans les nouvelles données en ajoutant une clause ON.

[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

Au cours de cette leçon, vous allez effectuer les tâches suivantes :

  • 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. Vous utiliserez le modèle d'exploration de données avec le paramètre MINIMUM_PROBABILITY par défaut pour créer cette requête ;

  • 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. La valeur par défaut pour MINIMUM_PROBABILITY dans les modèles d'association étant égale à 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 l'Explorateur d'objets, cliquez avec le bouton droit 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 l'instruction PREDICTION JOIN dans la requête vide.

  3. Remplacez le code suivant :

    <select list> 
    

    par :

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

    Vous pourriez choisir d'inclure simplement le nom de colonne [Products] mais la fonction Predict (DMX) vous donne la possibilité de limiter à trois le nombre de produits retournés par l'algorithme. Vous pouvez également utiliser l'instruction INCLUDE_STATISTICS pour vous procurer des informations supplémentaires sur chaque produit, notamment sur la prise en charge, la probabilité et la probabilité ajustée. 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 l'instruction UNION pour spécifier trois produits à inclure dans le panier d'achat avec les produits prédits. La colonne Model dans l'instruction SELECT correspond à la colonne de modèle figurant 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. Dans le menu Fichier, cliquez sur Enregistrer DMXQuery1.dmx sous.

  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. 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 l'Explorateur d'objets, cliquez avec le bouton droit 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 l'instruction PREDICTION JOIN 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 l'instruction UNION pour spécifier trois produits à inclure dans le panier d'achat avec les produits prédits. La colonne [Model] dans l'instruction SELECT correspond à la colonne figurant 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. Dans le menu Fichier, cliquez sur Enregistrer DMXQuery1.dmx sous.

  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. 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 constater dans les résultats de cette requête que la valeur du paramètre MINIMUM_PROBABILITY 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 prédictif, consultez Didacticiel DMX Bike Buyer.