Занятие 4. Прогнозирование «Потребительской корзины»
На этом занятии с помощью инструкции расширения интеллектуального анализа данных SELECT будут созданы прогнозы, основанные на моделях взаимосвязей, созданных на занятии Занятие 2. Добавление моделей интеллектуального анализа к структуре интеллектуального анализа «Потребительская корзина». Прогнозирующий запрос создается с помощью инструкции расширений интеллектуального анализа данных SELECT с добавлением предложения PREDICTION JOIN. Дополнительные сведения о синтаксисе прогнозируемых соединений см. в разделе SELECT FROM <модель> PREDICTION JOIN (расширения интеллектуального анализа данных).
Форма SELECT FROM <model> PREDICTION JOIN инструкции SELECT содержит три части:
Список столбцов модели интеллектуального анализа и функции прогнозирования, возвращаемые в результирующем наборе. В этом списке также могут содержаться входные столбцы источника данных.
Исходный запрос, определяющий данные, которые используются при создании прогноза. Например, если в пакете создается много прогнозов, исходный запрос может получить список клиентов.
Сопоставление столбцов модели интеллектуального анализа данных с исходными данными. При совпадении имен столбцов можно использовать синтаксис NATURAL PREDICTION JOIN и пропустить процесс сопоставления столбцов.
Запрос можно расширить функциями прогнозирования. Функции прогнозирования предоставляют дополнительные данные, например вероятность возникновения предсказанного события, а также поддержку прогнозирования на наборе обучающих данных. Дополнительные сведения о функциях прогнозирования см. в разделе Функции (расширения интеллектуального анализа данных).
Для создания прогнозирующих запросов можно также использовать построитель прогнозирующих запросов среды SQL Server Data Tools (SSDT). Дополнительные сведения см. в разделе Использование построителя прогнозирующих запросов для создания прогнозирующих запросов расширений интеллектуального анализа данных.
Одноэлементная инструкция 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 по умолчанию
Создание запроса взаимосвязей
В окне Обозреватель объектов щелкните правой кнопкой мыши экземпляр служб Службы Analysis Services, укажите пункт Создать запрос и выберите пункт Расширения интеллектуального анализа данных, чтобы открыть редактор запросов.
Скопируйте общий пример инструкции PREDICTION JOIN в пустой запрос.
Вместо
<select list>
вставьте
PREDICT([Default Association].[Products],INCLUDE_STATISTICS,3)
Можно было бы включить только имя столбца [Products], но функция Predict (расширения интеллектуального анализа данных) позволяет ограничить количество позиций товара, возвращаемых алгоритмом, до трех. С помощью инструкции INCLUDE_STATISTICS можно получить сведения о поддержке, вероятности и скорректированной вероятности для каждой позиции товара. Такие статистические данные позволяют оценить точность прогнозирования.
Вместо
[<mining model>]
вставьте
[Default Association]
Вместо
(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([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
В меню Файл щелкните Сохранить DMXQuery1.dmx как.
В диалоговом окне Сохранить как укажите путь к соответствующей папке и присвойте файлу имя Association Prediction.dmx.
На панели инструментов нажмите кнопку Выполнить.
Запрос возвращает таблицу, содержащую три наименования товара: шина для велосипедов HL Mountain, набор крыльев для велосипедов Mountain и шина для велосипедов ML Mountain. В таблице эти продукты перечислены в порядке их вероятности. Возвращаемый продукт, который имеет наибольшую вероятность попасть в один и тот же список покупок с тремя продуктами, перечисленными в запросе, отображается в верхней части таблицы. Два продукта, расположенные ниже, — следующие по вероятности включения в список покупок. Кроме этого, в таблице содержатся статистические данные, описывающие точность прогноза.
Формирование прогноза с помощью модели со значением 0,01 у свойства MINIMUM_PROBABILITY
Создание запроса взаимосвязей
Чтобы открыть редактор запросов, в окне Обозреватель объектов щелкните правой кнопкой мыши экземпляр служб Службы Analysis Services, укажите команду Создать запрос и выберите пункт Расширения интеллектуального анализа данных.
Скопируйте общий пример инструкции PREDICTION JOIN в пустой запрос.
Вместо
<select list>
вставьте
PREDICT([Modified Association].[Products],INCLUDE_STATISTICS,3)
Вместо
[<mining model>]
вставьте
[Modified Association]
Вместо
(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
В меню Файл щелкните Сохранить DMXQuery1.dmx как.
В диалоговом окне Сохранить как укажите путь к соответствующей папке и присвойте файлу имя Modified Association Prediction.dmx.
На панели инструментов нажмите кнопку Выполнить.
Запрос возвращает таблицу, содержащую три наименования товара: шина для велосипедов HL Mountain, фляга для воды и набор крыльев для велосипедов Mountain. В таблице эти продукты перечислены в порядке их вероятности. Продукт, который имеет наибольшую вероятность попасть в один и тот же список покупок с тремя продуктами, перечисленными в запросе, отображается в верхней части таблицы. Продукты, расположенные ниже, — следующие по вероятности включения в список покупок. Кроме этого, в таблице содержатся статистические данные, описывающие точность прогноза.
По результатам запроса очевидно, что значение параметра MINIMUM_PROBABILITY влияет на результаты, возвращаемые запросом.
Это было последним этапом учебника «Потребительская корзина». Созданный набор моделей может быть использован для прогнозирования товаров, которые клиент обычно покупает одновременно.
Дополнительные сведения об использовании DMX в других сценариях прогнозирования см. в разделе Учебник по расширениям интеллектуального анализа данных «Покупатель велосипеда».