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


Запросы к модели линейной регрессии (службы 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. Получение формулы регрессии для модели

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

Запрос возвращает содержимое узла модели интеллектуального анализа данных, содержащего формулу регрессии. Каждая переменная и коэффициент хранятся в отдельной строке вложенной таблицы 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

Годовой доход

Отсутствует

0

0.000457142857142857

0

1

Годовой доход

57220.8876687257

17484

0.999542857142857

1041275619.52776

3

Age

471.687717702463

0

0

126.969442359327

7

Age

234.680904692439

0

0

0

8

Age

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, так и в среде Business Intelligence Development Studio.

ПримечаниеПримечание

Можно также создавать запросы к моделям регрессии с помощью надстроек интеллектуального анализа данных SQL Server 2005 для Excel или SQL Server 2008 для Excel. Надстройки интеллектуального анализа данных для Excel не создают моделей регрессии, но позволяют просматривать любые модели интеллектуального анализа данных, хранящиеся в экземпляре служб Службы 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

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

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

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

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