Запрос модели дерева принятия решений (службы 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 — интеллектуальный анализ данных).
Вернуться в начало
Список прогнозирующих функций
Все алгоритмы Майкрософт поддерживают общий набор функций. Однако алгоритм дерева принятия решений (Майкрософт) поддерживает дополнительные функции, перечисленные в следующей таблице.
PredictProbability (расширения интеллектуального анализа данных) |
|
PredictSupport (расширения интеллектуального анализа данных) |
|
PredictVariance (расширения интеллектуального анализа данных) |
Список функций, общих для всех алгоритмов Майкрософт, см. в разделе Сопоставление функций с типами запросов (расширения интеллектуального анализа данных). Синтаксис специальных функций см. в разделе Справочник по функциям расширений интеллектуального анализа данных.
См. также