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


Запрос модели дерева принятия решений (службы 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

All

12939

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

Number Cars Owned = 0

Bike Buyer

Missing

0

00000000100

Number Cars Owned = 0

Bike Buyer

0

1067

00000000100

Number Cars Owned = 0

Bike Buyer

1

1875

00000000101

Number Cars Owned = 3

Bike Buyer

Missing

0

00000000101

Number Cars Owned = 3

Bike Buyer

0

678

00000000101

Number Cars Owned = 3

Bike Buyer

1

473

Исходя из этих результатов можно определить, что среди клиентов, купивших велосипед ([Bike Buyer] = 1), 1 067 клиентов не имели автомобиля, а 473 клиента имели по 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

Yearly Income >= 26 000 и < 42 000

266

00000000100010100

Total Children = 3

75

0000000010001010100

Number Children At Home = 1

75

В начало

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

При создании модели дерева принятия решений, содержащей регрессию для непрерывного атрибута, можно использовать формулу регрессии для выполнения прогнозов; также можно получить сведения о формуле регрессии. Дополнительные сведения о запросах к моделям регрессии см. в разделе Запросы к модели линейной регрессии (службы 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

Yearly Income

Missing

0

0.000457142857142857

0

1

Yearly Income

57220.8876687257

17484

0.999542857142857

1041275619.52776

3

  

57220.8876687257

0

0

1041216662.54387

11

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

В начало

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

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

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

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

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

В начало

Образец запроса 4. Возврат прогнозов и вероятностей

В следующем образце запроса используется модель дерева принятия решений, созданная в разделе Учебник по основам интеллектуального анализа данных; образец таблицы dbo.ProspectiveBuyers из базы данных AdventureWorks DW передается в модель для прогнозирования того, какие из клиентов в списке приобретут велосипед. В этот запрос включена прогнозирующая функция PredictHistogram, возвращающая вложенную таблицу, содержащую полезные сведения о вероятностях, обнаруженных моделью. Выполняется фильтрация прогнозов (путем добавления предложения WHERE) для возврата только тех клиентов, для которых прогнозируемая вероятность покупки велосипеда больше 50%.

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 возвращают вложенные таблицы, имеющие в качестве метки столбца выражение. Изменить эту метку можно, присвоив псевдоним возвращаемому столбцу. В таком случае псевдоним (здесь — Results) будет использован и как заголовок столбца, и как значение во вложенной таблице. Для просмотра результатов необходимо раскрыть вложенную таблицу.

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

Bike Buyer

Results

1

Results

Bike Buyer$SUPPORT$PROBABILITY$ADJUSTEDPROBABILITY$VARIANCE$STDEV
125400.6348492420456440.01356216828156200
014600.3649841745793770.0066133693255091500
00.0001665833749791770.00016658337497917700

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

В начало

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

Для использования следующего запроса следует создать копию модели взаимосвязей из учебника и сменить алгоритм на алгоритм дерева принятия решений. Дополнительные сведения см. в разделе Занятие 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 Tire Tube

Touring Tire Tube

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

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

Модель

Long Sleeve Logo Jersey

Mountain-400-W

Classic Vest

В начало

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

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

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

Журнал изменений

Обновленное содержимое

Добавлены ссылки внутри раздела, упрощающие просмотр образцов запросов.

Образец узла регрессии перенесен в соответствующий раздел по запросам содержимого.