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

 

Publicado: dezembro de 2016

Aplicável a: SQL Server 2016 Preview

Nesta lição, você usará o DMX Selecione instrução para criar previsões com base na associação de modelos criados na Lição 2: adicionando modelos de mineração para a estrutura de mineração da cesta. Uma consulta de previsão é criada usando o DMX Selecione instrução e adicionando um PREDICTION JOIN cláusula. Para obter mais informações sobre a sintaxe de uma junção de previsão, consulte SELECT FROM < modelo > JUNÇÃO de previsão &40; DMX &41;.

O SELECT FROM PREDICTION JOIN forma do Selecione instrução 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, você pode usar o NATURAL PREDICTION JOIN sintaxe 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 funções de previsão, consulte funções &40; DMX &41;.

Também é possível usar o construtor de consultas de previsão no SQL Server Data Tools (SSDT) para criar as consultas de previsão.

Instrução singleton PREDICTION JOIN

A primeira etapa é criar uma consulta singleton, usando o SELECT FROM PREDICTION JOIN sintaxe e fornecendo um único conjunto de valores 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 valores para cada uma das colunas e digite os nomes das colunas exatamente da maneira coincide com o modelo, você pode usar o NATURAL PREDICTION JOIN sintaxe. No entanto, se os nomes de coluna forem diferentes, você precisaria especificar mapeamentos entre as colunas no modelo e as colunas nos novos dados, adicionando um ON cláusula.

[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:

  • Crie uma consulta que prevê que outros itens que um cliente provavelmente comprará, com base nos itens já existentes no seu carrinho de compras. Você irá criar essa consulta usando o modelo de mineração com o padrão 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. Essa consulta é baseada em um modelo diferente, no qual MINIMUM_PROBABILITY tiver sido definida como 0,01. Como o valor padrão para MINIMUM_PROBABILITY em modelos de associação é 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. Em Pesquisador, clique com botão direito a instância do Analysis Services, aponte para nova consulta, e, em seguida, clique em DMX para abrir o Editor de consulta.

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

  3. Substitua o seguinte:

    <select list>   
    

    por:

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

    Você pode apenas incluir o nome da coluna [Products], mas usando o Predict &40; DMX &41; função, você pode limitar o número de produtos que são retornados pelo algoritmo para três. Você também pode usar INCLUDE_STATISTICS, que retorna a probabilidade ajustada para cada produto, probabilidade e suporte. Essas estatísticas ajudam a definir a taxa de exatidão da previsão.

  4. Substitua o seguinte:

    [<mining model>]   
    

    por:

    [Default Association]  
    
  5. Substitua o seguinte:

    (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 o união para especificar três produtos que devem ser incluídos no carrinho de compras, junto com os produtos previstos. A coluna do modelo no Selecione instrução corresponde à coluna do modelo que está 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. Sobre o arquivo menu, clique em Salvar Dmxquery1 como.

  7. No Salvar como caixa de diálogo, navegue até a pasta apropriada e nomeie o arquivo Prediction associação.

  8. Na barra de ferramentas, clique o Execute botão.

    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. Em Pesquisador, clique com botão direito a instância do Analysis Services, aponte para nova consulta, e, em seguida, clique em DMXpara abrir o Editor de consulta.

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

  3. Substitua o seguinte:

    <select list>   
    

    por:

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

    [<mining model>]   
    

    por:

    [Modified Association]  
    
  5. Substitua o seguinte:

    (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 o união para especificar três produtos que devem ser incluídos no carrinho de compras, junto com os produtos previstos. O [Model] coluna o Selecione instrução 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. Sobre o arquivo menu, clique em Salvar Dmxquery1 como.

  7. No Salvar como caixa de diálogo, navegue até a pasta apropriada e nomeie o arquivo modificado Association Prediction.

  8. Na barra de ferramentas, clique o Execute botão.

    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 precisão da previsão.

    Você pode ver os resultados desta consulta que o valor da MINIMUM_PROBABILITY parâmetro 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 saber como usar DMX em outro cenário de previsão, consulte Tutorial DMX comprador de bicicleta.

Consulte também

Exemplos de consulta de um modelo de associação
Ferramentas de Consulta de Mineração de Dados