Урок 4: Выполнение прогнозов покупательской корзины

На этом занятии вы будете использовать инструкцию DMX SELECT для создания прогнозов на основе моделей сопоставлений, созданных на занятии 2. Добавление моделей интеллектуального анализа данных в структуру интеллектуального анализа корзины рынка. Запрос прогнозирования создается с помощью инструкции DMX SELECT и добавления PREDICTION JOIN условия. Дополнительные сведения о синтаксисе операции PREDICTION JOIN см. в разделе SELECT FROM <model> PREDICTION JOIN (DMX).

Форма SELECT FROM <MODEL> PREDICTION JOIN инструкции SELECT содержит три части:

  • Список столбцов модели интеллектуального анализа данных и функций прогнозирования, возвращаемых в результирующем наборе. Этот список также может содержать входные столбцы из исходных данных.

  • Исходный запрос, определяющий данные, используемые для создания прогноза. Например, если вы создаете много прогнозов в пакете, исходный запрос может получить список клиентов.

  • Соответствие между столбцами модели анализа данных и исходными данными. Если имена столбцов совпадают, можно использовать NATURAL PREDICTION JOIN синтаксис и опустить сопоставления столбцов.

Вы можете улучшить запрос с помощью функций прогнозирования. Функции прогнозирования предоставляют дополнительную информацию, например вероятность возникновения прогноза или поддержку прогнозирования в наборе данных обучения. Дополнительные сведения о функциях прогнозирования см. в разделе "Функции " (DMX)".

Вы также можете использовать построитель прогнозирующих запросов в SQL Server Data Tools (SSDT) для создания прогнозируемых запросов.

Оператор Singleton PREDICTION JOIN

Первым шагом является создание одиночного запроса с помощью синтаксиса SELECT FROM <model> PREDICTION JOIN и предоставления одного набора значений в качестве входных данных. Ниже приведен общий пример инструкции синглтона:

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>]  

Первая строка кода определяет столбцы из модели интеллектуального анализа данных, возвращаемой запросом, и указывает имя модели интеллектуального анализа данных, используемой для создания прогноза:

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

Следующая строка кода указывает на выполнение операции. Так как вы укажете значения для каждого столбца и введите имена столбцов точно так, чтобы соответствовать модели, можно использовать NATURAL PREDICTION JOIN синтаксис. Однако если имена столбцов были разными, необходимо указать сопоставления между столбцами в модели и столбцами в новых данных, добавив ON предложение.

[NATURAL] PREDICTION JOIN  

Следующие строки кода определяют продукты в корзине покупок, которые будут использоваться для прогнозирования дополнительных продуктов, которые клиент добавит:

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

Задачи урока

В этом занятии будут выполняться следующие задачи:

  • Создайте запрос, который предсказывает, какие другие элементы клиент, скорее всего, приобретет, на основе элементов, уже существующих в корзине покупок. Этот запрос будет создан с помощью модели интеллектуального анализа данных, используя параметр MINIMUM_PROBABILITY по умолчанию.

  • Создайте запрос, который прогнозирует, какие другие элементы клиент, скорее всего, приобретет на основе элементов, уже существующих в корзине покупок. Этот запрос основан на другой модели, в которой MINIMUM_PROBABILITY задано значение 0,01. Так как значение по умолчанию для MINIMUM_PROBABILITY в моделях ассоциаций равно 0,3, запрос этой модели должен возвращать больше возможных элементов, чем запрос модели по умолчанию.

Создание прогноза с помощью модели с MINIMUM_PROBABILITY по умолчанию

Чтобы создать запрос на ассоциацию

  1. В обозревателе объектов щелкните правой кнопкой мыши на экземпляре служб Analysis Services, наведите указатель на Новый запрос, а затем щелкните DMX, чтобы открыть Редактор запросов.

  2. Скопируйте универсальный пример инструкции PREDICTION JOIN в пустой запрос.

  3. Замените следующее:

    <select list>   
    

    с:

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

    Можно просто включить имя столбца [Products], но с помощью функции Predict (DMX) можно ограничить количество продуктов, возвращаемых алгоритмом до трех. Вы также можете использовать INCLUDE_STATISTICS, который возвращает поддержку, вероятность и скорректированную вероятность для каждого продукта. Эти статистические данные помогают оценить точность прогнозирования.

  4. Замените следующее:

    [<mining model>]   
    

    с:

    [Default Association]  
    
  5. Замените следующее:

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

    с:

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

    Эта инструкция использует инструкцию UNION для указания трех продуктов, которые должны быть включены в корзину покупок вместе с прогнозируемыми продуктами. Столбец модели в SELECT инструкции соответствует столбцу модели, который содержится в таблице вложенных продуктов.

    Теперь полное заявление должно быть следующим:

    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. В меню "Файл" нажмите кнопку "Сохранить DMXQuery1.dmx As".

  7. В диалоговом окне "Сохранить как" перейдите в соответствующую папку и назовите файл Association Prediction.dmx.

  8. На панели инструментов нажмите кнопку "Выполнить ".

    Запрос возвращает таблицу, содержащую три продукта: HL Mountain Tire, Fender Set - Mountain, и ML Mountain Tire. В таблице перечислены возвращенные продукты в порядке вероятности. Возвращаемый продукт, который, скорее всего, будет включен в ту же корзину покупок, что и три продукта, указанные в запросе, отображаются в верхней части таблицы. Два следующих продукта, скорее всего, будут включены в корзину покупок. В таблице также содержатся статистические данные, описывающие точность прогнозирования.

Создание прогноза с помощью модели с MINIMUM_PROBABILITY 0.01

Чтобы создать запрос на ассоциацию

  1. В Обозревателе объектов щелкните правой кнопкой мыши экземпляр службы Analysis Services, наведите указатель на Новый запрос и щелкните DMX, чтобы открыть редактор запросов.

  2. Скопируйте универсальный пример инструкции PREDICTION JOIN в пустой запрос.

  3. Замените следующее:

    <select list>   
    

    с:

    PREDICT([Modified Association].[Products],INCLUDE_STATISTICS,3)  
    
  4. Замените следующее:

    [<mining model>]   
    

    с:

    [Modified Association]  
    
  5. Замените следующее:

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

    с:

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

    Эта инструкция использует инструкцию UNION для указания трех продуктов, которые должны быть включены в корзину покупок вместе с прогнозируемыми продуктами. Столбец [Model] в инструкции соответствует столбцу в SELECT таблице вложенных продуктов.

    Теперь полное заявление должно быть следующим:

    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. В меню "Файл" нажмите кнопку "Сохранить DMXQuery1.dmx As".

  7. В диалоговом окне "Сохранить как" перейдите в соответствующую папку и назовите файл Modified Association Prediction.dmx.

  8. На панели инструментов нажмите кнопку "Выполнить ".

    Запрос возвращает таблицу, содержащую три продукта: HL Mountain Tire, Бутылка воды и Fender Set - Mountain. В таблице перечислены эти продукты в порядке вероятности. Продукт, который отображается в верхней части таблицы, является продуктом, который, скорее всего, будет включен в ту же корзину покупок, что и три продукта, указанные в запросе. Оставшиеся продукты, скорее всего, будут следующими, которые включат в корзину покупок. Таблица также содержит статистику, описывающую точность прогнозирования.

    В результатах этого запроса видно, что значение параметра MINIMUM_PROBABILITY влияет на результаты, возвращаемые запросом.

Это последний шаг в руководстве по корзине покупок. Теперь у вас есть набор моделей, которые можно использовать для прогнозирования продуктов, которые клиенты могут приобрести одновременно.

Чтобы узнать, как использовать DMX в другом прогнозном сценарии, см. учебное пособие по DMX для покупателей велосипедов.

См. также

Примеры запросов модели ассоциаций
Интерфейсы запросов интеллектуального анализа данных