Поделиться через


Прогноз взаимосвязей (учебник по интеллектуальному анализу данных — средний уровень)

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

Создание одноэлементных прогнозирующих запросов

Ассоциативное прогнозирование может использоваться для многих целей, включая предложение элементов заказчикам или поиск связей между продуктами. Чтобы создать прогнозирующий запрос, сначала необходимо выбрать модель взаимосвязей, которая будет использоваться, а затем указать входные данные. Входные данные могут поступать из внешнего источника данных, например из списка значений, или можно создать одноэлементный запрос и предоставить значения по ходу выполнения операции.

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

Создание прогнозирующего запроса для модели взаимосвязей

  1. Перейдите на вкладку Прогноз моделей интеллектуального анализа данных в конструкторе интеллектуального анализа данных.

  2. В области Модель интеллектуального анализа данных щелкните Выбор модели. (Если нужная модель уже выбрана, этот и следующий шаги можно пропустить.)

  3. В диалоговом окне Выбор модели интеллектуального анализа данных разверните узел, представляющий структуру интеллектуального анализа данных Взаимосвязь и выберите модель Взаимосвязь. Нажмите кнопку ОК.

    На данном этапе можно не учитывать входную область.

  4. В сетке щелкните пустую ячейку в столбце Источник и выберите пункт Прогнозирующая функция. В ячейке столбца Поле выберите PredictAssociation.

    Для прогноза взаимосвязей можно также использовать функцию Predict. В таком случае обязательно выберите версию функции Predict, которая в качестве аргумента принимает столбец таблицы.

  5. В области Модель интеллектуального анализа данных выберите вложенную таблицу vAssocSeqLineItems и перетащите ее в сетку в поле Критерий или аргумент для функции PredictAssociation.

    Путем перетаскивания имен таблиц и столбцов можно создавать сложные инструкции без синтаксических ошибок. Однако данная операция заменяет текущее содержимое ячейки, которая включает другие необязательные аргументы для функции PredictAssociation. Чтобы просмотреть другие аргументы, можно на время добавить в сетку второй экземпляр функции и использовать его для справки.

  6. Щелкните поле Критерий или аргумент и введите после имени таблицы следующий текст: ,3

    Полный текст поля Критерий или аргумент должен иметь следующий вид:

    [Association].[v Assoc Seq Line Items],3

  7. Нажмите кнопку Результаты в верхнем углу построителя прогнозирующих запросов.

Ожидаемые результаты содержат один столбец с заголовком Выражение. Столбец Выражение содержит вложенную таблицу с одним столбцом и следующими тремя строками. Поскольку входное значение не было указано, эти прогнозы представляют наиболее вероятные взаимосвязи продуктов для модели в целом.

Модель

Женские шорты Mountain

Фляга для воды

Touring-3000

Теперь с помощью области Ввод одноэлементного запроса необходимо указать продукт в качестве входных данных запроса и просмотреть продукты, которые с наибольшей вероятностью связаны с этим элементом.

Создание одноэлементного прогнозирующего запроса с входными данными вложенной таблицы

  1. Нажмите кнопку Проект в углу окна построителя прогнозирующих запросов для возврата в сетку построения запросов.

  2. В меню Модель интеллектуального анализа данных выберите пункт Одноэлементный запрос.

  3. В диалоговом окне Модель интеллектуального анализа данных выберите модель Взаимосвязь.

  4. В сетке щелкните пустую ячейку в столбце Источник и выберите пункт Прогнозирующая функция. В ячейке столбца Поле выберите PredictAssociation.

  5. В области Модель интеллектуального анализа данных выберите вложенную таблицу vAssocSeqLineItems и перетащите ее в сетку в поле Критерий или аргумент для функции PredictAssociation. После имени вложенной таблицы введите ,3 точно так же, как и в предыдущей процедуре.

  6. В диалоговом окне Ввод одноэлементного запроса щелкните поле Значение рядом с vAssoc Seq Line Items и нажмите кнопку (…).

  7. В диалоговом окне Вход вложенной таблицы выберите Шина для туристического велосипеда в области Ключевой столбец и нажмите кнопку Добавить.

  8. Нажмите кнопку Результаты.

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

Модель

Камера шины для туристического велосипеда

Sport-100

Фляга для воды

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

Добавление входных данных и вероятностей в одноэлементный прогнозирующий запрос

  1. Нажмите кнопку Проект в углу окна построителя прогнозирующих запросов для возврата в сетку построения запросов.

  2. В диалоговом окне Ввод одноэлементного запроса щелкните поле Значение рядом с vAssoc Seq Line Items и нажмите кнопку (…).

  3. В области Ключевой столбец выберите пункт Шина для туристического велосипеда и нажмите кнопку Добавить.

  4. В сетке щелкните пустую ячейку в столбце Источник и выберите пункт Прогнозирующая функция. В ячейке столбца Поле выберите PredictAssociation.

  5. В области Модель интеллектуального анализа данных выберите вложенную таблицу vAssocSeqLineItems и перетащите ее в сетку в поле Критерий или аргумент для функции PredictAssociation. После имени вложенной таблицы введите ,3 точно так же, как и в предыдущей процедуре.

  6. В диалоговом окне Вход вложенной таблицы выберите Камера шины для туристического велосипеда в области Ключевой столбец и нажмите кнопку Добавить.

  7. В сетке в первой строке функции PredictAssociation щелкните поле Критерий или аргумент и к аргументам добавьте аргумент INCLUDE_STATISTICS.

    Полный текст поля Критерий или аргумент должен иметь следующий вид:

    [Association].[v Assoc Seq Line Items], INCLUDE_STATISTICS, 3

  8. Нажмите кнопку Результаты.

Результаты во вложенной таблице меняются, отображая прогнозы вместе с поддержкой и вероятностью. Дополнительные сведения об интерпретации этих значений см. в разделе Содержимое моделей интеллектуального анализа данных для моделей взаимосвязей (службы Analysis Services — интеллектуальный анализ данных).

Model

$SUPPORT

$PROBABILITY

$ADJUSTEDPROBABILITY

Sport-100

4334

0.291…

0.252…

Water Bottle

2866

0.192…

0.175…

Patch Kit

2113

0.142…

0.132

Работа с результатами

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

Преобразование вложенных наборов строк в плоский формат в прогнозирующем запросе

  1. Нажмите кнопку SQL в углу построителя прогнозирующих запросов.

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

  2. После ключевого слова SELECT введите FLATTENED.

    Полный текст запроса должен иметь следующий вид:

    SELECT FLATTENED
      PredictAssociation([Association].[v Assoc Seq Line Items],INCLUDE_STATISTICS,3)
    FROM
      [Association]
    NATURAL PREDICTION JOIN
    (SELECT (SELECT 'Touring Tire' AS [Model]
      UNION SELECT 'Touring Tire Tube' AS [Model]) AS [v Assoc Seq Line Items]) AS t
    
  3. Нажмите кнопку Результаты в верхнем углу построителя прогнозирующих запросов.

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

Создание нескольких прогнозов

Предположим, необходимо получить наилучшие прогнозы для отдельных клиентов на основании их прошлых покупок. Можно использовать внешние данные в качестве входных данных для прогнозирующего запроса, например таблицы, содержащие идентификаторы клиентов и их последние покупки товаров. При этом требуется, чтобы таблицы данных уже были определены как представление источника данных служб Analysis Services. Кроме того, входные данные должны содержать таблицы вариантов и вложенные таблицы наподобие тех, которые используются в модели. Им не обязательно иметь одинаковые имена, но структура должна быть сходной. В целях этого учебника будут использоваться исходные таблицы, которые применялись для обучения модели.

Изменение метода ввода для прогнозирующего запроса

  1. В меню Модель интеллектуального анализа данных щелкните пункт Одноэлементный запрос, чтобы снять флажок.

  2. Появится сообщение об ошибке, предупреждая о том, что одноэлементный запрос будет утерян. Нажмите кнопку Да.

    Имя диалогового окна ввода меняется на Выбор входных таблиц.

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

Создание прогнозирующего запроса с использованием входных данных вложенной таблицы

  1. В области «Модель интеллектуального анализа данных» выберите «Фильтруемые взаимосвязи».

  2. В диалоговом окне Выбор входных таблиц нажмите кнопку Выбрать таблицу вариантов.

  3. В диалоговом окне Выбор таблицы в списке Источник данных выберите пункт AdventureWorksDW2008. В списке Имя таблицы или представления выберите таблицу vAssocSeqOrders и нажмите кнопку ОК.

    Таблица vAssocSeqOrders добавляется в область.

  4. В диалоговом окне Выбор входных таблиц нажмите кнопку Выбрать вложенную таблицу.

  5. В диалоговом окне Выбор таблицы в списке Источник данных выберите пункт AdventureWorksDW2008. В списке Имя таблицы или представления выберите таблицу vAssocSeqLineItems и нажмите кнопку ОК.

    Таблица vAssocSeqLineItems добавляется в область.

  6. В диалоговом окне Определение вложенного соединения перетащите поле OrderNumber из таблицы вариантов в поле OrderNumber вложенной таблицы.

    Также можно нажать кнопку Добавить связь и создать связь путем выбора столбцов из списка.

  7. В диалоговом окне Укажите связи убедитесь в правильном сопоставлении полей OrderNumber, после чего нажмите кнопку ОК.

  8. Нажмите кнопку ОК, чтобы закрыть диалоговое окно Определение вложенного соединения.

    Таблица вариантов и вложенная таблица обновляются в области конструирования для отображения соединений между столбцами внешних данных и столбцами модели. Если связи неправильные, щелкните правой кнопкой мыши соединительную линию и выберите команду Изменить соединения, чтобы отредактировать сопоставление столбцов, или выберите команду Удалить, чтобы полностью удалить связь.

  9. Добавьте в сетку новую строку. В столбце Источник выберите Таблица vAssocSeqOrders. В столбце Поле выберите CustomerKey.

  10. Добавьте в сетку новую строку. В столбце Источник выберите Таблица vAssocSeqOrders. В столбце Поле выберите Region.

  11. Добавьте в сетку новую строку. В столбце Источник выберите Прогнозирующая функция, а в столбце Поле — PredictAssociation.

  12. Перетащите vAssocSeqLineItems в поле Критерий или аргумент строки PredictAssociation. Щелкните в конце поля Критерий или аргумент и введите следующий текст: INCLUDE_STATISTICS,3

    Полный текст поля Критерий или аргумент должен иметь следующий вид: [Association].[v Assoc Seq Line Items], INCLUDE_STATISTICS, 3

  13. Нажмите кнопку Результат, чтобы просмотреть прогнозы для каждого клиента.

Можно попытаться создать подобный прогнозирующий запрос для нескольких моделей и узнать, изменятся ли результаты прогнозов после фильтрации. Дополнительные сведения о создании прогнозов и других типов запросов см. в разделе Запрос модели взаимосвязей (службы Analysis Services — интеллектуальный анализ данных).