Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Цель типичного проекта интеллектуального анализа данных — использовать модель интеллектуального анализа данных для прогнозирования. Например, можно спрогнозировать количество ожидаемых простоев для определенного кластера серверов или создать оценку, указывающую, могут ли сегменты клиентов реагировать на рекламную кампанию. Для выполнения всех этих действий вы создадите прогнозирующий запрос.
Функционально существуют различные типы прогнозирующих запросов, поддерживаемых в SQL Server, в зависимости от типа входных данных для запроса:
| Тип запроса | Параметры запроса |
|---|---|
| Запросы для прогнозирования одноэлементных данных | Используйте одиночный запрос, если вы хотите прогнозировать результаты для одного нового случая или нескольких новых случаев. Входные значения предоставляются непосредственно в запросе, а запрос выполняется в виде одного сеанса. |
| Пакетные прогнозы | Используйте пакетные прогнозы при наличии внешних данных, которые вы хотите передать в модель, чтобы использовать в качестве основы для прогнозирования. Чтобы сделать прогнозы для всего набора данных, необходимо сопоставить данные во внешнем источнике со столбцами в модели, а затем указать тип прогнозных данных, которые нужно вывести. Запрос для всего набора данных выполняется в одном сеансе, что делает этот параметр гораздо более эффективным, чем отправка нескольких повторяющихся запросов. |
| Прогнозы временных рядов | Используйте запрос временных рядов, если вы хотите спрогнозировать значение в течение некоторого числа будущих шагов. Интеллектуальный анализ данных SQL Server также предоставляет следующие функции в запросах временных рядов: Вы можете расширить существующую модель, добавив новые данные в рамках запроса, и сделать прогнозы на основе составного ряда. Вы можете применить существующую модель к новой серии данных с помощью параметра REPLACE_MODEL_CASES. Вы можете выполнять перекрестное прогнозирование. |
В следующих разделах описан общий синтаксис прогнозируемых запросов, различные типы запросов прогнозирования и способы работы с результатами прогнозирующих запросов.
Базовый дизайн прогнозируемых запросов
Работа с результатами запросов
Базовый дизайн прогнозируемых запросов
При создании прогноза обычно вы предоставляете некоторые новые данные и запрашиваете модель для создания прогноза на основе новых данных.
В пакетном запросе прогнозирования модель сопоставляется с внешним источником данных с помощью соединения прогнозирования.
В запросе на индивидуальное прогнозирование введите одно или несколько значений, которые будут использованы в качестве входных данных. Можно создать несколько прогнозов с помощью одного одиночного запроса прогнозирования. Однако если вам нужно создать много прогнозов, производительность лучше при использовании пакетного запроса.
Запросы одноэлементного и пакетного прогнозирования используют синтаксис PREDICTION JOIN для определения новых данных. Разница заключается в том, как указана входная сторона соединения прогнозирования.
В пакетном прогнозируемом запросе данные поступают из внешнего источника данных, указанного с помощью синтаксиса OPENQUERY.
В однотонном прогнозируемом запросе данные предоставляются встроенными в рамках запроса.
Для моделей временных рядов входные данные не всегда требуются; Прогнозы можно сделать только с помощью данных, уже существующих в модели. Однако если указать новые входные данные, необходимо решить, будут ли вы использовать новые данные для обновления и расширения модели, или заменить исходный ряд данных, используемых в модели. Дополнительные сведения об этих параметрах см. в примерах запросов модели временных рядов.
Добавление функций прогнозирования
Помимо прогнозирования значения, можно настроить прогнозирующий запрос для возврата различных типов сведений, связанных с прогнозом. Например, если прогноз создает список продуктов, которые рекомендует клиенту, вы также можете вернуть вероятность для каждого прогноза, чтобы вы могли ранжировать их и представить только лучшие рекомендации пользователю.
Для этого в запрос добавляются функции прогнозирования . Каждая модель или тип запроса поддерживает определенные функции. Например, модели кластеризации поддерживают специальные функции прогнозирования, предоставляющие дополнительные сведения о кластерах, созданных моделью, в то время как модели временных рядов имеют функции, которые вычисляют различия с течением времени. Существуют также общие функции прогнозирования, которые работают с почти всеми типами моделей. Список функций прогнозирования, поддерживаемых в разных типах запросов, см. в этом разделе в справочнике по dmX: Общие функции прогнозирования (DMX).
Создание запросов одиночного прогнозирования
Единичный прогнозный запрос полезен, если вы хотите создать быстрые прогнозы в режиме реального времени. Распространенным сценарием может быть то, что вы получили информацию от клиента, возможно, используя форму на веб-сайте, и вы хотите отправить эти данные в качестве входных данных в однотонный прогнозирующий запрос. Например, когда клиент выбирает продукт из списка, вы можете использовать этот выбор в качестве входных данных для запроса, который прогнозирует лучшие продукты, которые будут рекомендовать.
Запросы одиночного прогнозирования не требуют отдельной таблицы с входными данными. Вместо этого вы предоставляете одну или несколько строк значений в качестве входных данных модели, а прогноз или прогнозы возвращаются в режиме реального времени.
Предупреждение
Несмотря на название, запросы на прогнозирование одиночных значений не ограничиваются единичными прогнозами - вы можете создавать несколько прогнозов для каждого набора входных данных. Вы предоставляете несколько входных данных, создавая инструкцию SELECT для каждого из них и объединяя их с оператором UNION.
При создании одиночного прогнозирующего запроса необходимо предоставить новые данные в модель в виде прогнозируемого соединения JOIN. Это означает, что даже если вы не сопоставляете с фактической таблицей, необходимо убедиться, что новые данные соответствуют существующим столбцам в модели анализа данных. Если новые столбцы данных и новые данные совпадают точно, службы Analysis Services сопоставляют столбцы. Это называется NATURAL PREDICTION JOIN. Однако если столбцы не совпадают, или если новые данные не содержат одинаковый вид и объем данных в модели, необходимо указать, какие столбцы в модели сопоставляют с новыми данными, или указать отсутствующие значения.
Запросы пакетного прогнозирования
Пакетный прогнозирующий запрос полезен, если у вас есть внешние данные, которые вы хотите использовать при создании прогнозов. Например, вы создали модель, которая классифицирует клиентов по их онлайн-активности и истории покупок. Эту модель можно применить к списку недавно приобретенных потенциальных клиентов, создать проекции для продаж или определить целевые показатели для предлагаемых кампаний.
При выполнении прогностического соединения необходимо сопоставить столбцы модели со столбцами в новом источнике данных. Таким образом, источник данных, который вы выбираете для входных данных, должен иметь несколько похожие на данные в модели. Новая информация не должна точно соответствовать и может быть неполной. Например, предположим, что модель обучали, используя данные о доходах и возрасте, но в списке клиентов, который вы используете для прогнозов, есть данные о возрасте, но ничего о доходах. В этом сценарии можно сопоставить новые данные с моделью и создать прогноз для каждого клиента. Однако если доход является важным прогнозатором для модели, отсутствие полной информации повлияет на качество прогнозов.
Чтобы получить наилучшие результаты, необходимо присоединить максимальное количество соответствующих столбцов между новыми данными и моделью. Однако запрос будет выполнен успешно, даже если совпадений нет. Если столбцы не присоединены, запрос вернет предельное предсказание, эквивалентное выражению SELECT <predictable-column> FROM <model> без предложения PREDICTION JOIN.
После успешного сопоставления всех соответствующих столбцов выполняется запрос, и службы Analysis Services делают прогнозы для каждой строки в новых данных на основе шаблонов в модели. Результаты можно сохранить обратно в новую таблицу в представлении источника данных, содержащей внешние данные, или скопировать и вставить данные с помощью SQL Server Data Tools (SSDT) или SQL Server Management Studio.
Предупреждение
Если вы используете конструктор в SQL Server Data Tools (SSDT), внешний источник данных сначала должен быть определен как представление источника данных.
При использовании DMX для создания соединения прогнозирования можно указать внешний источник данных с помощью команд OPENQUERY, OPENROWSET или SHAPE. Метод доступа к данным по умолчанию в шаблонах DMX — OPENQUERY. Сведения об этих методах см. в запросе исходных данных.
Прогнозирование в моделях анализа данных временных рядов
Модели временных рядов отличаются от других типов моделей; модель можно использовать как для создания прогнозов, так и для предоставления новых данных модели для обновления модели и создания прогнозов на основе последних тенденций. При добавлении новых данных можно указать способ использования новых данных.
Расширение вариантов модели означает, что вы добавляете новые данные в существующую серию данных в модели временных рядов. Следовательно, прогнозы основаны на новой, объединенной серии. Этот вариант подходит, если вы хотите просто добавить несколько точек данных в существующую модель.
Например, предположим, что у вас есть существующая модель временных рядов, которая была обучена данным о продажах из предыдущего года. После сбора нескольких месяцев новых данных о продажах вы решите обновить прогнозы продаж на текущий год. Вы можете создать соединение прогнозирования, которое обновляет модель, добавив новые данные и расширив модель для создания новых прогнозов.
Замена случаев модели означает, что вы храните обученную модель, но заменяете базовые случаи новым набором данных случаев. Этот параметр полезен, если вы хотите сохранить тенденцию в модели, но применить ее к другому набору данных.
Например, исходная модель может быть обучена на наборе данных с очень высоким объемом продаж; При замене базовых данных новым рядом (возможно, из магазина с меньшим объемом продаж) вы сохраняете тенденцию, но прогнозы начинаются с значений в серии замены.
Независимо от того, какой подход используется, отправная точка для прогнозов всегда является окончанием исходного ряда.
Дополнительные сведения о создании соединений прогнозирования для моделей временных рядов см. в примерах запросов модели временных рядов или PredictTimeSeries (DMX).
Работа с результатами прогнозирующего запроса
Ваши варианты сохранения результатов прогнозирующего запроса интеллектуального анализа данных зависят от способа создания запроса.
При создании запроса с помощью построителя прогнозов в SQL Server Management Studio или SQL Server Data Tools (SSDT) можно сохранить результаты прогнозирующего запроса в существующий источник данных служб Analysis Services. Дополнительные сведения см. в разделе "Просмотр и сохранение результатов прогнозирующего запроса".
При создании запросов прогнозирования с помощью dmX в области запросов SQL Server Management Studio можно использовать параметры вывода запроса для сохранения результатов в файле или в области результатов запроса в виде текста или сетки. Дополнительные сведения см. в статьях "Редакторы запросов и текста" (SQL Server Management Studio).
При выполнении запроса прогнозирования с помощью компонентов служб Integration Services задачи позволяют записывать результаты в базу данных с помощью диспетчера подключений ADO.NET или диспетчера соединений OLEDB. Дополнительные сведения можно найти в статье "Задача запроса при интеллектуальном анализе данных".
Важно понимать, что результаты прогнозирующего запроса не похожи на результаты запроса в реляционной базе данных, которая всегда возвращает одну строку связанных значений. Каждая функция прогнозирования DMX, добавляемая в запрос, возвращает собственный набор строк. Таким образом, при создании прогноза в одном случае результат может быть прогнозируемым значением вместе с несколькими столбцами вложенных таблиц, содержащих дополнительные сведения.
При объединении нескольких функций в одном запросе возвращаемые результаты объединяются как иерархический набор строк. Например, предположим, что вы используете модель временных рядов для прогнозирования будущих значений объема продаж и количества продаж, используя запрос, такой как эта инструкция DMX:
SELECT
PredictTimeSeries([Forecasting].[Amount]) as [PredictedAmount]
, PredictTimeSeries([Forecasting].[Quantity]) as [PredictedQty]
FROM
[Forecasting]
Результаты этого запроса — два столбца, по одному для каждого прогнозируемого ряда, где каждая строка содержит вложенную таблицу с прогнозируемыми значениями:
ПрогнозируемаяСумма
| $TIME | Сумма |
|---|---|
| 201101 | 172067.11 |
| $TIME | Сумма |
|---|---|
| 201102 | 363390.68 |
ПрогнозируемоеКоличество
| $TIME | Количество |
|---|---|
| 201101 | 77 |
| $TIME | Количество |
|---|---|
| 201102 | 260 |
Если поставщик не может обрабатывать иерархические наборы строк, вы можете сгладить результаты с помощью ключевого слова FLATTEN в запросе прогнозирования. Дополнительные сведения, включая примеры плоских наборов строк, см. в разделе SELECT (DMX).
См. также
Запросы содержимого (интеллектуальный анализ данных)
Запросы определения данных (интеллектуальный анализ данных)