Lição 4: Executando previsões de Market Basket

Nesta lição, você aprenderá a usar a instrução SELECT DMX para criar previsões baseadas nos modelos de associação criados na Lição 2: Adicionando modelos de mineração à estrutura de mineração do Market Basket. Uma consulta de previsão é criada usando a instrução SELECT do DMX e adicionando uma cláusula PREDICTION JOIN. Para obter mais informações sobre a sintaxe de uma junção de previsão, consulte SELECT FROM <modelo> PREDICTION JOIN (DMX).

O formulário SELECT FROM <model> PREDICTION JOIN da instrução SELECT contém três partes:

  • Uma lista de colunas de modelo de mineração e funções de previsão que são retornadas no conjunto de resultados. Essa lista também pode conter colunas de entrada de dados de origem.

  • Uma consulta de origem que define os dados que estão sendo usados para criar uma previsão. Por exemplo, se você estiver criando muitas previsões em um lote, a consulta de origem poderá recuperar uma lista de clientes.

  • Um mapeamento entre as colunas de modelo de mineração e os dados de origem. Se os nomes de colunas corresponderem, será possível usar a sintaxe NATURAL PREDICTION JOIN e omitir os mapeamentos de coluna.

É possível melhorar a consulta usando as funções de previsão. As funções de previsão fornecem informações adicionais, como a probabilidade de uma previsão, ou suporte à previsão no conjunto de dados de treinamento. Para obter mais informações sobre as funções de previsão, consulte Funções (DMX).

Também é possível usar o construtor de consultas de previsão no Business Intelligence Development Studio para criar as consultas de previsão. Para obter mais informações, consulte Usando o construtor de consultas de previsão para criar consultas de previsão DMX.

Instrução singleton PREDICTION JOIN

A primeira etapa é criar uma consulta singleton usando a sintaxe SELECT FROM <model> PREDICTION JOIN e fornecendo um conjunto de valores simples como entrada. Segue um exemplo genérico da instrução 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>]

A primeira linha do código define as colunas do modelo de mineração que a consulta retorna e especifica o nome do modelo de mineração usado para gerar a previsão:

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

A próxima linha do código indica a operação a ser executada. Como você especificará os valores de cada coluna e digitará os nomes das colunas exatamente da maneira correspondente ao modelo, a sintaxe NATURAL PREDICTION JOIN poderá ser aplicada. No entanto, se os nomes de coluna fossem diferentes, você teria de especificar mapeamentos entre as colunas no modelo e as colunas dos dados novos adicionando uma cláusula ON.

[NATURAL] PREDICTION JOIN

As próximas linhas do código definem os produtos no carrinho de compras com o objetivo de prever os produtos adicionais que serão adicionados pelo cliente:

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

Tarefas da lição

Você executará as seguintes tarefas nesta lição:

  • Criar uma consulta que prevê quais os outros itens que um cliente provavelmente comprará, com base nos itens já existentes em seu carrinho de compras. Esta consulta poderá ser criada usando o modelo de mineração com o padrão de MINIMUM_PROBABILITY.

  • Criar uma consulta que prevê quais os outros itens que um cliente provavelmente comprará, com base nos itens já existentes em seu carrinho de compras. Esta consulta baseia-se em um modelo diferente no qual MINIMUM_PROBABILITY foi definido como 0.01. Como o valor padrão da associação MINIMUM_PROBABILITY nos modelos é 0.3, a consulta neste modelo deve retornar mais itens que a consulta no modelo padrão.

Criar uma previsão usando um modelo com o padrão MINIMUM_PROBABILITY

Para criar uma consulta de associação

  1. No Pesquisador de Objetos, clique com o botão direito do mouse na instância do Analysis Services, aponte para Nova Consulta e clique em DMX para abrir o Editor de Consultas.

  2. Copie o exemplo genérico da instrução PREDICTION JOIN na consulta em branco.

  3. Substitua:

    <select list> 
    

    por:

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

    Você pode apenas incluir o nome da coluna [Products], mas, usando a função Predict (DMX), será possível limitar o número de produtos que serão retornados pelo algoritmo para três. Também poderá usar INCLUDE_STATISTICS que retorna o suporte e a probabilidade, além de permitir ajustar a probabilidade para cada produto. Essas estatísticas ajudam a definir a taxa de exatidão da previsão.

  4. Substitua:

    [<mining model>] 
    

    por:

    [Default Association]
    
  5. Substitua:

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

    por:

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

    Essa instrução usa a instrução UNION para especificar três produtos que devem ser incluídos no carrinho de compras junto com os produtos previstos. A coluna Model na instrução SELECT corresponde à coluna de modelo contida na tabela de produtos aninhados.

    A instrução completa agora deve ser:

    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. No menu Arquivo, clique em Salvar DMXQuery1.dmx como.

  7. Na caixa de diálogo Salvar Como, procure pela pasta apropriada e nomeie o arquivo Association Prediction.dmx.

  8. Na barra de ferramentas, clique no botão Executar.

    A consulta retorna uma tabela que contém três produtos: HL Mountain Tire, Fender Set - Mountain e ML Mountain Tire. A tabela lista esses produtos retornados em ordem de probabilidade. O produto retornado que provavelmente será incluído no mesmo carrinho de compras juntamente com os três produtos especificados na consulta aparece no topo da tabela. Os dois produtos que seguem são provavelmente o próximo item que será incluído no carrinho de compra. A tabela também contém estatísticas que descrevem a exatidão da previsão.

Criar uma previsão usando um modelo com uma MINIMUM_PROBABILITY de 0.01

Para criar uma consulta de associação

  1. No Pesquisador de Objetos, clique com o botão direito na instância do Analysis Services, aponte para Nova Consulta e clique em DMX para abrir o Editor de Consultas.

  2. Copie o exemplo genérico da instrução PREDICTION JOIN na consulta em branco.

  3. Substitua:

    <select list> 
    

    por:

    PREDICT([Modified Association].[Products],INCLUDE_STATISTICS,3)
    
  4. Substitua:

    [<mining model>] 
    

    por:

    [Modified Association]
    
  5. Substitua:

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

    por:

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

    Essa instrução usa a instrução UNION para especificar três produtos que devem ser incluídos no carrinho de compras junto com os produtos previstos. A coluna [Model] na instrução SELECT corresponde à coluna na tabela de produtos aninhados.

    A instrução completa agora deve ser:

    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. No menu Arquivo, clique em Salvar DMXQuery1.dmx como.

  7. Na caixa de diálogo Salvar Como, navegue até a pasta apropriada e nomeie o arquivo como Modified Association Prediction.dmx.

  8. Na barra de ferramentas, clique no botão Executar.

    A consulta retorna uma tabela que contém três produtos: tubo de pneu para mountain bike, garrafa de água e kit para montanhismo. A tabela lista esses produtos em ordem de probabilidade. O produto que aparece no topo da tabela é o produto que provavelmente será incluído no mesmo carrinho de compras juntamente com os três produtos especificados na consulta. Os produtos restantes são provavelmente os próximos que serão incluídos no carrinho de compras. A tabela também contém estatísticas que descrevem a exatidão da previsão.

    Você pode ver a partir dos resultados dessa consulta que o valor do parâmetro MINIMUM_PROBABILITY afeta os resultados retornados pela consulta.

Esta é a última etapa no tutorial da cesta básica. Agora você tem um conjunto de modelos que pode ser usado para prever os produtos que os clientes podem comprar ao mesmo tempo.

Para aprender a usar DMX em outro cenário de previsão, consulte Tutorial DMX Comprador de bicicleta.