Примеры запросов модели линейной регрессии

Применимо к: SQL Server 2019 и более ранних версий Analysis Services Azure Analysis Services Fabric/Power BI Premium

Важно!

Интеллектуальный анализ данных не рекомендуется использовать в службах SQL Server 2017 Analysis Services, а в SQL Server 2022 Analysis Services его поддержка прекращена. Документация не обновляется для устаревших и неподдерживаемых функций. Дополнительные сведения см. в статье об обратной совместимости служб Analysis Services.

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

В этом разделе описывается процесс создания запросов к моделям, основанным на алгоритме линейной регрессии (Майкрософт).

Примечание

Поскольку линейная регрессия основана на частном случае алгоритма дерева принятия решений (Майкрософт), у них много общего, и некоторые модели деревьев решений с непрерывными прогнозируемыми атрибутами могут содержать формулы регрессии. Дополнительные сведения см. в разделе Технический справочник по алгоритму дерева принятия решений (Майкрософт).

Запросы содержимого

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

Получение формулы регрессии модели с помощью расширений интеллектуального анализа данных

Возвращение только коэффициента для данной модели

Прогнозирующие запросы

Прогнозирование дохода с помощью одноэлементного запроса

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

Получение сведений о модели линейной регрессии

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

Вернуться в начало

Пример запроса 1. Определение параметров, использованных в модели, с помощью набора строк схемы интеллектуального анализа данных

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

SELECT MINING_PARAMETERS   
FROM $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'TM_PredictIncome'  

Образец результатов.

MINING_PARAMETERS
COMPLEXITY_PENALTY=0.9,

MAXIMUM_INPUT_ATTRIBUTES=255,

MAXIMUM_OUTPUT_ATTRIBUTES=255,

MINIMUM_SUPPORT=10,

SCORE_METHOD=4,

SPLIT_METHOD=3,

FORCE_REGRESSOR=

Примечание

Значение параметра, "FORCE_REGRESSOR = ", указывает, что текущее значение параметра FORCE_REGRESSOR равно NULL.

Вернуться в начало

Пример запроса 2. Получение формулы регрессии модели

Следующий запрос возвращает содержимое модели интеллектуального анализа данных с линейной регрессией, построенной для того же источника данных «Целевая рассылка», который использовался в пособии Basic Data Mining Tutorial. Эта модель предсказывает доход клиента на основании возраста.

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

SELECT FLATTENED NODE_DISTRIBUTION as t  
FROM LR_PredictIncome.CONTENT  

Примечание

При ссылках на отдельные столбцы вложенной таблицы в таких запросах, как SELECT <column name> from NODE_DISTRIBUTION, некоторые столбцы, например SUPPORT или PROBABILITY, нужно заключать в квадратные скобки, чтобы отличать их от одноименных зарезервированных ключевых слов.

Ожидаемый результат:

T.ATTRIBUTE_NAME t.ATTRIBUTE_VALUE t.SUPPORT t.PROBABILITY t.VARIANCE t.VALUETYPE
Годовой доход Missing 0 0,000457142857142857 0 1
Годовой доход 57220,8876687257 17484 0,999542857142857 1041275619,52776 3
возраст; 471,687717702463 0 0 126.969442359327 7
возраст; 234,680904692439 0 0 0 8
возраст; 45,4269617936399 0 0 126.969442359327 9
35793,5477381267 0 0 1012968919,28372 11

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

Yearly Income = 57,220.919 + 471.688 * (Age - 45.427)

Можно видеть, что в окне Условные обозначения интеллектуального анализа данныхнекоторые числа округлены; однако по существу таблица NODE_DISTRIBUTION и окно Условные обозначения интеллектуального анализа данных содержат одни и те же значения.

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

VALUETYPE
1 (отсутствует)
3 (непрерывный)
7 (коэффициент)
8 (рост оценки)
9 (статистика)
7 (коэффициент)
8 (рост оценки)
9 (статистика)
11 (отсекаемый отрезок)

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

Вернуться в начало

Пример запроса 3. Возвращение только коэффициента для модели

Используя перечисление VALUETYPE, можно вернуть только коэффициент уравнения регрессии, как показано в следующем запросе:

SELECT FLATTENED MODEL_NAME,  
    (SELECT ATTRIBUTE_VALUE, VALUETYPE  
     FROM NODE_DISTRIBUTION  
     WHERE VALUETYPE = 11)   
AS t  
FROM LR_PredictIncome.CONTENT  

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

MODEL_NAME t.ATTRIBUTE_VALUE t.VALUETYPE
LR_PredictIncome
LR_PredictIncome 35793,5477381267 11

Вернуться в начало

Прогнозирование по модели линейной регрессии

Прогнозирующие запросы к модели линейной регрессии можно строить с помощью вкладки «Прогнозирование моделей интеллектуального анализа данных» конструктора интеллектуального анализа данных. Построитель прогнозирующих запросов доступен как в SQL Server Management Studio, так и в SQL Server Data Tools.

Примечание

Вы также можете создавать запросы к моделям регрессии с помощью надстроек интеллектуального анализа данных SQL Server 2005 (9.x) для Excel или надстройки интеллектуального анализа данных SQL Server 2008 для Excel. Несмотря на то, что надстройки интеллектуального анализа данных для Excel не создают модели регрессии, вы можете просматривать и запрашивать любую модель интеллектуального анализа данных, хранящуюся в экземпляре SQL Server Analysis Services.

Вернуться в начало

Пример запроса 4. Прогнозирование дохода с помощью одноэлементного запроса

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

SELECT [LR_PredictIncome].[Yearly Income]  
From   [LR_PredictIncome]  
NATURAL PREDICTION JOIN  
(SELECT 20 AS [Age]) AS t  

Образец результатов.

Годовой доход
45227,302092176

Вернуться в начало

Пример запроса 5. Использование прогнозирующих функций в модели регрессии

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

SELECT  
  ([LR_PredictIncome].[Yearly Income]) as [PredIncome],  
  (PredictStdev([LR_PredictIncome].[Yearly Income])) as [StDev1]  
From  
  [LR_PredictIncome]  
NATURAL PREDICTION JOIN  
(SELECT 20 AS [Age]) AS t  

Образец результатов.

Годовой доход StDev1
45227,302092176 31827,1726561396

Вернуться в начало

Список прогнозирующих функций

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

прогнозирующую функцию Использование
IsDescendant (расширения интеллектуального анализа данных) Определяет, является ли узел дочерним для другого узла модели.
IsInNode (расширения интеллектуального анализа данных) Указывает, содержит ли заданный узел текущий вариант.
PredictHistogram (расширения интеллектуального анализа данных) Возвращает прогнозируемое значение или набор значений для указанного столбца.
PredictNodeId (расширения интеллектуального анализа данных) Возвращает параметр Node_ID для каждого случая.
PredictStdev (расширения интеллектуального анализа данных) Возвращает стандартное отклонение для прогнозируемого значения.
PredictSupport (расширения интеллектуального анализа данных) Возвращает опорное значение для указанного состояния.
PredictVariance (расширения интеллектуального анализа данных) Возвращает дисперсию указанного столбца.

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

См. также:

Алгоритм линейной регрессии (Майкрософт)
Запросы интеллектуального анализа данных
Технический справочник по алгоритму линейной регрессии (Майкрософт)
Содержимое моделей интеллектуального анализа данных для моделей линейной регрессии (службы Analysis Services — интеллектуальный анализ данных)