Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:
SQL Server 2019 и более ранних версий Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
Это важно
Интеллектуальный анализ данных был признан устаревшим в службах SQL Server 2017 Analysis Services и теперь прекращён в службах SQL Server 2022 Analysis Services. Документация не обновляется для устаревших и прекращённых функций. Дополнительные сведения см. в статье о обратной совместимости служб Analysis Services.
При создании запроса к модели интеллектуального анализа данных можно создать запрос содержимого, который содержит сведения о шаблонах, обнаруженных в анализе, или создать прогнозирующий запрос, который использует шаблоны в модели для прогнозирования новых данных. Например, запрос содержимого для модели временных рядов может предоставить дополнительные сведения о периодических структурах, в то время как прогнозирующий запрос может дать прогнозы для следующих 5-10 срезов времени. Вы также можете получить метаданные о модели с помощью запроса.
В этом разделе объясняется, как создать оба типа запросов для моделей, основанных на алгоритме временных рядов Майкрософт.
Запросы содержимого
Получение подсказок по периодичности для модели
Получение уравнения для модели ARIMA
Получение уравнения для модели ARTxp
Прогнозирующие запросы
Общие сведения о том, когда следует заменить и когда продлить данные временных рядов
Создание прогнозов с помощью EXTEND_MODEL_CASES
Создание прогнозов с помощью REPLACE_MODEL_CASES
Подстановка отсутствующих значений в моделях временных рядов
Получение сведений о модели временных рядов
Запрос содержимого модели может предоставить основные сведения о модели, например параметры, используемые при создании модели, время последнего обработки модели. В следующем примере показан базовый синтаксис для запроса содержимого модели с помощью наборов строк схемы интеллектуального анализа данных.
Пример запроса 1. Получение подсказок периодичности для модели
Вы можете получить найденные в временных рядах периодичности посредством запроса к дереву ARIMA или дереву ARTXP. Однако периодичности в завершенной модели могут не совпадать с периодами, указанными в качестве подсказок при создании модели. Чтобы получить подсказки, предоставленные в качестве параметров при создании модели, можно запросить набор строк схемы содержимого модели анализа данных с помощью следующей инструкции DMX:
SELECT MINING_PARAMETERS
FROM $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = '<model name>'
Частичные результаты:
| ПАРАМЕТРЫ_МАЙНИНГА |
|---|
| COMPLEXITY_PENALTY=0,1,MINIMUM_SUPPORT=10,PERIODICITY_HINT={1,3},.... |
Указание периодичности по умолчанию отображается {1} во всех моделях; эта примерная модель была создана с дополнительным указанием, которое может не присутствовать в конечной модели.
Замечание
Результаты были усечены здесь для удобства чтения.
Пример запроса 2. Получение уравнения для модели ARIMA
Уравнение для модели ARIMA можно получить, запрашивая любой узел в отдельном дереве. Помните, что каждое дерево в модели ARIMA представляет другую периодичность, и если имеется несколько рядов данных, каждый ряд данных будет иметь собственный набор деревьев периодичности. Таким образом, чтобы получить уравнение для определенного ряда данных, сначала необходимо определить дерево.
Например, префикс TA сообщает, что узел является частью дерева ARIMA, а префикс TS используется для деревьев ARTXP. Все корневые деревья ARIMA можно найти, запрашивая содержимое модели для узлов с NODE_TYPE значением 27. Можно также использовать значение ATTRIBUTE_NAME для поиска корневого узла ARIMA для определенного ряда данных. Этот пример запроса находит узлы ARIMA, представляющие количество проданных моделей R250 в регионе Европы.
SELECT NODE_UNIQUE_NAME
FROM Forecasting.CONTENT
WHERE ATTRIBUTE_NAME = 'R250 Europe: Quantity"
AND NODE_TYPE = 27
С помощью этого идентификатора узла можно получить сведения о уравнении ARIMA для этого дерева. Следующая инструкция DMX извлекает короткую форму уравнения ARIMA для ряда данных. Он также вычисляет величину пересечения из вложенной таблицы, NODE_DISTRIBUTION. В этом примере уравнение получается путем ссылки на уникальный идентификатор узла TA00000007. Однако может потребоваться использовать другой идентификатор узла, и вы можете получить несколько разные результаты от модели.
SELECT FLATTENED NODE_CAPTION as [Short equation],
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE
FROM NODE_DISTRIBUTION) as t
FROM Forecasting.CONTENT
WHERE NODE_NAME = 'TA00000007'
Пример результатов:
| Короткое уравнение | t.ATTRIBUTE_NAME | t.ATTRIBUTE_VALUE |
|---|---|---|
| ARIMA (2,0,7)x(1,0,2)(12) | R250 Europe:Количество(Intercept) | 15.24.... |
| ARIMA (2,0,7)x(1,0,2)(12) | R250 Европа:Количество (периодичность) | 1 |
| ARIMA (2,0,7)x(1,0,2)(12) | R250 Европа:Количество (периодичность) | 12 |
Дополнительные сведения об интерпретации этой информации см. в разделе Содержимое модели интеллектуального анализа данных для моделей временных рядов (службы Analysis Services — интеллектуальный анализ данных).
Пример запроса 3. Получение уравнения для модели ARTXP
Для модели ARTxp различные сведения хранятся на каждом уровне дерева. Дополнительные сведения о структуре модели ARTxp и интерпретации сведений в уравнении см. в разделе "Содержимое модели интеллектуального анализа данных" для моделей временных рядов (службы Analysis Services — интеллектуальный анализ данных).
Следующий запрос DMX получает сведения о части дерева ARTxp, которая представляет количество продаж для модели R250 в Европе.
Замечание
Имя вложенного столбца таблицы VARIANCE должно быть заключено в скобки, чтобы отличить его от зарезервированного ключевого слова того же имени. Вложенные столбцы таблицы, ВЕРОЯТНОСТЬ и ПОДДЕРЖКА, не включаются, так как они пусты в большинстве случаев.
SELECT NODE_CAPTION as [Split information],
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE,
[VARIANCE]
FROM NODE_DISTRIBUTION) AS t
FROM Forecasting.CONTENT
WHERE NODE_ATTRIBUTE_NAME = 'R250 Europe:Quantity'
AND NODE_TYPE = 15
Дополнительные сведения по интерпретации этой информации см. в разделе Содержимое моделей интеллектуального анализа данных для моделей временных рядов (службы Analysis Services — интеллектуальный анализ данных).
Создание прогнозов в модели временных рядов
Начиная с SQL Server 2008 Enterprise, вы можете добавить новые данные в модель временных рядов и автоматически включить новые данные в модель. Вы добавляете новые данные в модель интеллектуального анализа временных рядов одним из двух способов:
Используйте PREDICTION JOIN для соединения данных из внешнего источника с данными обучения.
Используйте однотонный прогнозирующий запрос для предоставления данных по одному срезу за раз. Сведения о создании однотонного прогнозирующего запроса см. в разделе "Средства запросов интеллектуального анализа данных".
Общие сведения о поведении операций замены и расширения
При добавлении новых данных в модель временных рядов можно указать, следует ли расширить или заменить обучающие данные:
Расширить: При расширении ряда данных SQL Server Analysis Services добавляет новые данные в конец существующих данных для обучения. Число тренировочных примеров также увеличивается.
Расширение вариантов модели полезно для непрерывного обновления модели новыми данными. Например, если вы хотите увеличить обучающий набор с течением времени, вы просто расширите модель.
Чтобы расширить данные, создайте приложение PREDICTION JOIN в модели временных рядов, укажите источник новых данных и используйте аргумент EXTEND_MODEL_CASES .
Заменить: При замене данных в серии данных SQL Server Analysis Services сохраняет обученную модель, но использует новые значения данных для замены некоторых или всех существующих вариантов обучения. Таким образом, размер обучающих данных никогда не изменяется, но сами случаи постоянно заменяются новыми данными. Если вы предоставите достаточно новых данных, вы можете заменить тренировочные данные на совершенно новый ряд.
Замена вариантов модели полезна, если вы хотите обучить модель в одном наборе вариантов, а затем применить эту модель к другой серии данных.
Чтобы заменить данные, создайте приложение PREDICTION JOIN в модели временных рядов, укажите источник новых данных и используйте аргумент REPLACE_MODEL_CASES .
Замечание
При добавлении новых данных нельзя создавать исторические прогнозы.
Независимо от того, расширяете вы или заменяете обучающие данные, предсказания всегда начинаются с временной метки, завершающей исходный набор обучающих данных. Другими словами, если новые данные содержат n срезов времени, и вы запрашиваете прогнозы для шагов времени 1–n, прогнозы будут совпадать с тем же периодом, что и новые данные, и вы не получите новые прогнозы.
Чтобы получить новые прогнозы для периодов времени, которые не перекрываются с новыми данными, необходимо либо запустить прогнозы на срезе времени n+1, либо убедиться, что вы запрашиваете дополнительные срезы времени.
Например, предположим, что существующая модель имеет шесть месяцев данных. Вы хотите расширить эту модель, добавив цифры продаж за последние три месяца. В то же время вы хотите сделать прогноз около следующих трех месяцев. Чтобы получить только новые прогнозы при добавлении новых данных, укажите начальную точку в качестве среза времени 4 и конечную точку в качестве среза времени 7. Вы также можете запросить в общей сложности шесть прогнозов, но срезы времени для первых трех будут перекрываться только что добавленными новыми данными.
Примеры запросов и дополнительные сведения о синтаксисе для использования REPLACE_MODEL_CASES и EXTEND_MODEL_CASES см. в разделе PredictTimeSeries (DMX).
Создание прогнозов с помощью EXTEND_MODEL_CASES
Поведение прогнозирования отличается в зависимости от того, расширяете или заменяете варианты модели. При расширении модели новые данные присоединяются к концу ряда, а размер обучающего набора увеличивается. Однако срезы времени, используемые для запросов прогнозирования, всегда начинаются в конце исходного ряда. Таким образом, если добавить три новые точки данных и запросить шесть прогнозов, первые три возвращённые прогноза перекрывают новые данные. В этом случае службы SQL Server Analysis Services возвращают фактические новые точки данных вместо прогнозирования, пока не будут использованы все новые точки данных. Затем службы SQL Server Analysis Services делают прогнозы на основе составного ряда.
Это поведение позволяет добавлять новые данные, а затем отображать фактические показатели продаж на диаграмме прогнозирования вместо просмотра проекций.
Например, чтобы добавить три новые точки данных и сделать три новых прогноза, выполните следующие действия:
Создайте PREDICTION JOIN на модели временных рядов и укажите источник новых данных за три месяца.
Запрос прогнозов для шести временных срезов. Для этого укажите 6 временных срезов, где начальная точка — срез времени 1, а конечная точка — срез времени 7. Это верно только для EXTEND_MODEL_CASES.
Чтобы получить только новые прогнозы, укажите начальную точку как 4 и конечную точку как 7.
Необходимо использовать аргумент EXTEND_MODEL_CASES.
Фактические показатели продаж возвращаются в первые три среза, а прогнозы на основе расширенной модели возвращаются для следующих трех временных срезов.
Создание прогнозов с помощью REPLACE_MODEL_CASES
При замене случаев в модели размер модели остается неизменным, но SQL Server Analysis Services заменяет отдельные случаи в модели. Это полезно для кросс-прогнозирования и сценариев, в которых важно поддерживать обучающий набор данных в согласованном размере.
Например, у одного из магазинов недостаточно данных о продажах. Вы можете создать общую модель путем усреднения продаж для всех магазинов в определенном регионе, а затем обучения модели. Затем, чтобы сделать прогнозы для магазина без достаточных данных о продажах, вы создадите ПРОГНОЗ JOIN на новых данных о продажах только для этого магазина. В этом случае службы SQL Server Analysis Services сохраняют шаблоны, производные от региональной модели, но заменяют существующие тренировочные случаи данными из конкретного магазина. В результате ваши прогнозируемые значения будут ближе к линиям тренда для отдельного магазина.
При использовании аргумента REPLACE_MODEL_CASES sql Server Analysis Services постоянно добавляет новые варианты в конец набора вариантов и удаляет соответствующее число с начала набора вариантов. При добавлении большего объема новых данных, чем объем данных в исходном учебном наборе, службы SQL Server Analysis Services удаляют самые ранние данные. Если вы предоставляете достаточно новых значений, прогнозы могут быть основаны на совершенно новых данных.
Например, вы обучили свою модель на наборе данных, который содержал 1000 строк. Затем вы добавите 100 строк новых данных. Службы SQL Server Analysis Services удаляют первые 100 строк из обучающего набора, а затем добавляют 100 строк новых данных в конец набора, чтобы итоговое количество строк составило 1000. При добавлении 1100 строк новых данных используются только последние 1000 строк.
Вот еще один пример. Чтобы добавить три новых данных месяца и сделать три новых прогноза, сделайте следующее:
Создайте PREDICTION JOIN для модели временных рядов и используйте аргумент REPLACE_MODEL_CASE.
Укажите источник новых данных в течение трех месяцев. Эти данные могут находиться в совершенно другом источнике, отличном от исходных обучающих данных.
Запрос прогнозов для шести временных срезов. Для этого укажите 6 срезов времени или укажите начальную точку в качестве среза времени 1 и конечную точку в качестве среза времени 7.
Замечание
В отличие от EXTEND_MODEL_CASES, нельзя возвращать те же значения, которые были добавлены в качестве входных данных. Все шесть возвращаемых значений — это прогнозы, основанные на обновленной модели, которая включает как старые, так и новые данные.
Замечание
С REPLACE_MODEL_CASES, начиная с метки времени 1, вы получаете новые прогнозы, основанные на новых данных, которые заменяют старые данные обучения.
Примеры запросов и дополнительные сведения о синтаксисе для использования REPLACE_MODEL_CASES и EXTEND_MODEL_CASES см. в разделе PredictTimeSeries (DMX).
Подстановка отсутствующих значений в моделях временных рядов
При добавлении новых данных в модель временных рядов с помощью инструкции PREDICTION JOIN новый набор данных не может содержать отсутствующие значения. Если любая серия является неполной, модель должна указать отсутствующие значения с помощью значений NULL, числовых средств, определенного числового значения или прогнозируемого значения. Если указать EXTEND_MODEL_CASES, службы SQL Server Analysis Services заменяет отсутствующие значения прогнозами на основе исходной модели. При использовании REPLACE_MODEL_CASES SQL Server Analysis Services заменяет отсутствующие значения значением, указанным в параметре MISSING_VALUE_SUBSTITUTION .
Список функций прогнозирования
Все алгоритмы Майкрософт поддерживают общий набор функций. Однако алгоритм временных рядов Майкрософт поддерживает дополнительные функции, перечисленные в следующей таблице.
| Функция прогнозирования | Usage |
|---|---|
| Задержка (DMX) | Возвращает количество отрезков времени между датой текущего дела и последней датой обучающего набора. Типичное использование этой функции заключается в выявлении недавних тренировочных случаев, чтобы получить подробные данные о них. |
| PredictNodeId (DMX) | Возвращает идентификатор узла для указанного прогнозируемого столбца. Типичное использование этой функции заключается в определении узла, создающего определенное прогнозируемое значение, чтобы просмотреть случаи, связанные с узлом, или получить уравнение и другие сведения. |
| PredictStdev (DMX) | Возвращает стандартное отклонение прогнозов в указанном прогнозируемом столбце. Эта функция заменяет аргумент INCLUDE_STATISTICS, который не поддерживается для моделей временных рядов. |
| PredictVariance (DMX) | Возвращает дисперсию прогнозов для указанного прогнозируемого столбца. Эта функция заменяет аргумент INCLUDE_STATISTICS, который не поддерживается для моделей временных рядов. |
| PredictTimeSeries (DMX) | Возвращает прогнозируемые исторические значения или будущие прогнозируемые значения для временных рядов. Кроме того, можно проводить запросы к моделям временных рядов с помощью общей функции прогноза Predict (DMX). |
Список функций, которые являются общими для всех алгоритмов Майкрософт, см. в разделе "Общие функции прогнозирования" (DMX). Сведения о синтаксисе конкретных функций см. в справочнике по расширению интеллектуального анализа данных (DMX).
См. также
Запросы интеллектуального анализа данных
Алгоритм временных рядов Майкрософт
Технический справочник по алгоритму временных рядов Майкрософт
Содержимое модели интеллектуального анализа данных для моделей временных рядов (службы Analysis Services — интеллектуальный анализ данных)