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

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

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

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

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

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

Получение поддеревьев из модели

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

Получение прогнозов с вероятностями

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

Получение формулы регрессии из модели дерева принятия решений

Поиск сведений о модели дерева принятия решений

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

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

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

select MINING_PARAMETERS 
from $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'TM_Decision Tree'

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

MINING_PARAMETERS

COMPLEXITY_PENALTY=0.5, MAXIMUM_INPUT_ATTRIBUTES=255,MAXIMUM_OUTPUT_ATTRIBUTES=255,MINIMUM_SUPPORT=10,SCORE_METHOD=4,SPLIT_METHOD=3,FORCE_REGRESSOR=

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

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

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

Этот запрос возвращает все узлы, имеющие тип 2; то есть узлы верхнего уровня деревьев, представляющих определенные прогнозируемые атрибуты.

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

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

SELECT MODEL_NAME, NODE_NAME, NODE_CAPTION, 
NODE_SUPPORT, [CHILDREN_CARDINALITY]
FROM TM_DecisionTrees.CONTENT
WHERE NODE_TYPE = 2

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

MODEL_NAME

NODE_NAME

NODE_CAPTION

NODE_SUPPORT

CHILDREN_CARDINALITY

TM_DecisionTree

000000001

Все

12939

5

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

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

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

Столбец вложенной таблицы SUPPORT должен быть заключен в скобки, чтобы отличаться от зарезервированного ключевого слова с таким же именем.

SELECT FLATTENED NODE_NAME, NODE_CAPTION,
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE, [SUPPORT]
FROM NODE_DISTRIBUTION) AS t
FROM TM_DecisionTree.CONTENT
WHERE [PARENT_UNIQUE_NAME] = '000000001'

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

NODE_NAME

NODE_CAPTION

T.ATTRIBUTE_NAME

T.ATTRIBUTE_VALUE

SUPPORT

00000000100

Число автомобилей во владении = 0

Покупатель велосипеда

Отсутствует

0

00000000100

Число автомобилей во владении = 0

Покупатель велосипеда

0

1067

00000000100

Число автомобилей во владении = 0

Покупатель велосипеда

1

1875

00000000101

Число автомобилей во владении = 3

Покупатель велосипеда

Отсутствует

0

00000000101

Число автомобилей во владении = 3

Покупатель велосипеда

0

678

00000000101

Число автомобилей во владении = 3

Покупатель велосипеда

1

473

Исходя из этих результатов можно определить, что среди клиентов, купивших велосипед ([Bike Buyer] = 1), 1 067 клиентов не имели автомобиля, а 473 клиента имели по 3 автомобиля.

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

Образец запроса 3. Получение поддеревьев из модели

Допустим, что необходимо узнать больше о клиентах, купивших велосипед. Дополнительные сведения о любом из вложенных деревьев можно просматривать с помощью функции IsDescendant в запросе, как это показано в следующем примере. Запрос возвращает число клиентов, купивших велосипед, возвращая конечные узлы (NODE_TYPE = 4) из дерева, в котором содержатся клиенты, возраст которых превышает 42 года. Запрос ограничивает строки вложенной таблицы теми, в которых Bike Buyer = 1.

SELECT FLATTENED NODE_NAME, NODE_CAPTION,NODE_TYPE,
(
SELECT [SUPPORT] FROM NODE_DISTRIBUTION WHERE ATTRIBUTE_NAME = 'Bike Buyer' AND ATTRIBUTE_VALUE = '1'
) AS t
FROM TM_DecisionTree.CONTENT
WHERE ISDESCENDANT('0000000010001')
AND NODE_TYPE = 4

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

NODE_NAME

NODE_CAPTION

t.SUPPORT

000000001000100

Годовой доход >= 26 000 и < 42 000

266

00000000100010100

Всего детей = 3

75

0000000010001010100

Количество детей в доме = 1

75

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

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

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

  • возврат прогноза для модели классификации совместно с вероятностью правильности данного прогноза, а затем фильтрация результатов в зависимости от их вероятности;

  • создание одноэлементного запроса для прогнозирования взаимосвязей;

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

Образец запроса 4. Получение прогнозов с вероятностями

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

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

SELECT
  [TM_DecisionTree].[Bike Buyer],
  PredictHistogram([Bike Buyer]) as Results
From
  [TM_DecisionTree]
PREDICTION JOIN
  OPENQUERY([Adventure Works DW],
    'SELECT
      [FirstName],
      [LastName],
      [MaritalStatus],
      [Gender],
      [YearlyIncome],
      [TotalChildren],
      [NumberChildrenAtHome],
      [HouseOwnerFlag],
      [NumberCarsOwned]
    FROM
      [dbo].[ProspectiveBuyer]
    ') AS t
ON
  [TM_DecisionTree].[First Name] = t.[FirstName] AND
  [TM_DecisionTree].[Last Name] = t.[LastName] AND
  [TM_DecisionTree].[Marital Status] = t.[MaritalStatus] AND
  [TM_DecisionTree].[Gender] = t.[Gender] AND
  [TM_DecisionTree].[Yearly Income] = t.[YearlyIncome] AND
  [TM_DecisionTree].[Total Children] = t.[TotalChildren] AND
  [TM_DecisionTree].[Number Children At Home] = t.[NumberChildrenAtHome] AND
  [TM_DecisionTree].[House Owner Flag] = t.[HouseOwnerFlag] AND
  [TM_DecisionTree].[Number Cars Owned] = t.[NumberCarsOwned]
WHERE [Bike Buyer] = 1
AND PredictProbability([Bike Buyer]) >'.05'

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

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

Покупатель велосипеда

Результаты

1

Результаты

Покупатель велосипеда$SUPPORT$PROBABILITY$ADJUSTEDPROBABILITY$VARIANCE$STDEV
125400.6348492420456440.01356216828156200
014600.3649841745793770.0066133693255091500
00.0001665833749791770.00016658337497917700

Если поставщик не поддерживает иерархические наборы строк, представленные здесь, то можно использовать в запросе ключевое слово FLATTENED для возврата результатов в виде таблицы, содержащей значения NULL вместо повторяющихся значений столбцов. Дополнительные сведения см. в разделах Вложенные таблицы (службы Analysis Services — интеллектуальный анализ данных) и Основные сведения об инструкции SELECT (расширения интеллектуального анализа данных).

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

Образец запроса 5. Прогноз взаимосвязей на основе модели дерева принятия решений

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

Следующий образец запроса является одноэлементным запросом; его можно легко создать в среде Business Intelligence Development Studio, выбрав поля, а затем значения для этих полей из раскрывающегося списка.

SELECT PredictAssociation([DT_Association].[v Assoc Seq Line Items],3)
FROM
  [DT_Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Patch kit' AS [Model]) AS [v Assoc Seq Line Items]) AS t

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

Модель

Велосипед Mountain-200

Камера шины для велосипеда Mountain

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

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

SELECT PredictAssociation([DT_Association].[v Assoc Seq Line Items],3)
From
  [DT_Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Racing Socks' AS [Model]
  UNION SELECT 'Women''s Mountain Shorts' AS [Model]) AS [v Assoc Seq Line Items]) AS t

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

Модель

Фирменный свитер с длинным рукавом

Велосипед Mountain-400-W

Классический жилет

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

Образец запроса 6. Получение формулы регрессии из модели дерева принятия решений

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

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

SELECT FLATTENED NODE_DISTRIBUTION AS t
FROM DT_Predict. CONTENT
WHERE NODE_TYPE = 25

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

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

  

57220.8876687257

0

0

1041216662.54387

11

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

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

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

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

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