Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При создании запроса к модели интеллектуального анализа данных можно создать запрос содержимого, который содержит сведения о шаблонах, обнаруженных в анализе, или создать прогнозирующий запрос, который использует шаблоны в модели для прогнозирования новых данных. Например, запрос содержимого для модели дерева принятия решений может содержать статистику о количестве случаев на каждом уровне дерева или правилах, которые различают варианты. Кроме того, прогнозирующий запрос сопоставляет модель с новыми данными для создания рекомендаций, классификаций и т. д. Вы также можете получить метаданные о модели с помощью запроса.
В этом разделе объясняется, как создавать запросы для моделей, основанных на алгоритме деревьев принятия решений Майкрософт.
Запросы содержимого
Получение параметров модели из строкового набора схемы анализа данных
Получение сведений о деревьях в модели с помощью DMX
Прогнозирующие запросы
Возвращение прогнозов с вероятностями
Прогнозирование ассоциаций из модели деревьев принятия решений
Получение формулы регрессии из модели деревьев принятия решений
Поиск сведений о модели деревьев принятия решений
Чтобы создать значимые запросы к содержимому модели дерева принятия решений, необходимо понять структуру содержимого модели и типы узлов, которые хранят информацию. Дополнительные сведения см. в разделе "Содержимое модели интеллектуального анализа данных" для моделей дерева принятия решений (службы Analysis Services — интеллектуальный анализ данных).
Пример запроса 1: Получение параметров модели из набора строк схемы интеллектуального анализа данных
Запросив набор строк схемы интеллектуального анализа данных, можно найти метаданные о модели, такие как, когда она была создана, когда модель в последний раз была обработана, имя структуры, на основе которой создана модель, и имя столбца, использованного в качестве прогнозируемого атрибута. Можно также вернуть параметры, которые использовались при создании модели.
select MINING_PARAMETERS
from $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'TM_Decision Tree'
Пример результатов:
ПАРАМЕТРЫ_МАЙНИНГА
COMPLEXITY_PENALTY=0,5, MAXIMUM_INPUT_ATTRIBUTES=255,MAXIMUM_OUTPUT_ATTRIBUTES=255,MINIMUM_SUPPORT=10,SCORE_METHOD=4,SPLIT_METHOD=3,FORCE_REGRESSOR=
Пример запроса 2. Возврат сведений о содержимом модели с помощью dmX
Следующий запрос возвращает некоторые основные сведения о деревьях принятия решений, созданных при создании модели в учебнике по интеллектуальному анализу данных уровня "Базовый". Каждая структура дерева хранится в собственном узле. Так как эта модель содержит один прогнозируемый атрибут, существует только один узел дерева. Однако при создании модели сопоставления с помощью алгоритма дерева принятия решений может быть сотни деревьев, по одному для каждого продукта.
Этот запрос возвращает все узлы типа 2, которые являются узлами верхнего уровня дерева, представляющего определенный прогнозируемый атрибут.
Замечание
Столбец CHILDREN_CARDINALITY должен быть заключен в квадратные скобки, чтобы отличить его от зарезервированного ключевого слова MDX с тем же именем.
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 | 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 | Название узла | T.ATTRIBUTE_NAME | T.ATTRIBUTE_VALUE | ПОДДЕРЖКА |
|---|---|---|---|---|
| 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), 1067 клиентов было 0 автомобилей и 473 клиентов было 3 автомобиля.
Пример запроса 3. Получение поддерев из модели
Предположим, вы хотели узнать больше о клиентах, которые купили велосипед. Дополнительные сведения для любого из вложенных деревьев можно просматривать с помощью функции IsDescendant (DMX) в запросе, как показано в следующем примере. Запрос возвращает количество покупателей велосипедов, извлекая конечные узлы (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 | Годовой доход >= 26000 и < 42000 | 266 |
| 00000000100010100 | Всего детей = 3 | 75 |
| 0000000010001010100 | Число детей дома = 1 | 75 |
Создание прогнозов с помощью модели деревьев принятия решений
Так как деревья принятия решений можно использовать для различных задач, включая классификацию, регрессию и даже связь, при создании прогнозирующего запроса на модель дерева принятия решений у вас есть множество вариантов. Необходимо понять назначение, для которого была создана модель, чтобы понять результаты прогнозирования. В следующих примерах запросов показаны три различных сценария:
Возврат прогноза для модели классификации вместе с вероятностью правильности прогнозирования, а затем фильтрация результатов по вероятности;
Создание однотонного запроса для прогнозирования связей;
Получение формулы регрессии для части дерева принятия решений, где связь между входными и выходными данными является линейной.
Пример запроса 4. Возврат прогнозов с вероятностями
В следующем примере запроса используется модель дерева принятия решений, созданная в учебнике по интеллектуальному анализу данных уровня "Базовый". Запрос передает новый набор образцов данных из таблицы dbo.Потенциальные покупатели в AdventureWorks2012 DW, чтобы предсказать, какие клиенты в новом наборе данных приобретут велосипед.
Запрос использует функцию прогнозирования PredictHistogram (DMX), которая возвращает вложенную таблицу, содержащую полезную информацию о вероятностях, обнаруженных моделью. Окончательное предложение WHERE запроса фильтрует результаты, чтобы вернуть только тех клиентов, которые, как ожидается, скорее всего, купят велосипед, с вероятностью выше 0%.
SELECT
[TM_DecisionTree].[Bike Buyer],
PredictHistogram([Bike Buyer]) as Results
From
[TM_DecisionTree]
PREDICTION JOIN
OPENQUERY([Adventure Works DW Multidimensional 2012],
'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. Вы можете изменить эту метку, указав псевдоним возвращаемого столбца. При этом псевдоним (в данном случае результаты) используется как заголовок столбца, так и как значение в вложенной таблице. Чтобы просмотреть результаты, необходимо развернуть вложенную таблицу.
Пример результатов, где покупатель велосипедов = 1:
| Покупатель велосипедов | $SUPPORT | $PROBABILITY | $ADJUSTEDPROBABILITY | $ОВАРИАЦИЯ | $STDEV |
|---|---|---|---|---|---|
| 1 | 2540 | 0.634849242045644 | 0.013562168281562 | 0 | 0 |
| 0 | 1460 | 0.364984174579377 | 0,00661336932550915 | 0 | 0 |
| 0 | 0.000166583374979177 | 0.000166583374979177 | 0 | 0 |
Если поставщик не поддерживает иерархические наборы строк, например приведенные здесь, можно использовать ключевое слово FLATTENED в запросе для возврата результатов в виде таблицы, содержащей значения NULL вместо повторяющихся значений столбцов. Дополнительные сведения см. в статьях "Вложенные таблицы" (службы Analysis Services — интеллектуальный анализ данных) или "Общие сведения об инструкции выбора DMX".
Пример запроса 5. Прогнозирование ассоциаций из модели деревьев принятия решений
Следующий пример запроса основан на структуре ассоциативного анализа. Чтобы следовать этому примеру, можно добавить новую модель в эту структуру интеллектуального анализа данных и выбрать деревья принятия решений Майкрософт в качестве алгоритма. Дополнительные сведения о создании структуры анализа ассоциаций см. в уроке 3. Создание сценария корзин покупок (учебник по интеллектуальному анализу промежуточных данных).
Следующий пример запроса — это однотонный запрос, который можно легко создать в SQL Server Data Tools (SSDT), выбрав поля и выбрав значения для этих полей из раскрывающегося списка.
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
Ожидаемый результат:
| Модель |
|---|
| Маунтин-200 |
| Горная шина труба |
| Камера для дорожных шин |
Результаты сообщают вам три лучших продукта, которые рекомендуют клиентам, которые приобрели продукт Пакета исправлений. Вы также можете предоставить несколько продуктов в качестве входных данных при выполнении рекомендаций, введя значения или используя диалоговое окно "Входные данные однотонного запроса " и добавляя или удаляя значения. В следующем примере запроса показано, как предоставляются несколько значений, на которых выполняется прогнозирование. Значения связаны предложением 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 Логотип Джерси |
| Mountain-400-W |
| Классический жилет |
Пример запроса 6. Получение формулы регрессии из модели деревьев принятия решений
При создании модели дерева принятия решений, содержащей регрессию в непрерывном атрибуте, можно использовать формулу регрессии для прогнозирования или извлечь сведения о формуле регрессии. Дополнительные сведения о запросах на модели регрессии см. в примерах запросов модели линейной регрессии.
Если модель дерева принятия решений содержит смесь узлов регрессии и узлов, разделенных на дискретные атрибуты или диапазоны, можно создать запрос, возвращающий только узел регрессии. Таблица NODE_DISTRIBUTION содержит сведения о формуле регрессии. В этом примере столбцы уплощены, а таблица NODE_DISTRIBUTION имеет псевдоним для упрощения просмотра. Однако в этой модели не найдены регрессоры, связывающие доход с другими непрерывными параметрами. В таких случаях служба Analysis Services возвращает среднее значение атрибута и общую дисперсию в модели этого атрибута.
SELECT FLATTENED NODE_DISTRIBUTION AS t
FROM DT_Predict. CONTENT
WHERE NODE_TYPE = 25
Пример результатов:
| t.ATTRIBUTE_NAME | t.ATTRIBUTE_VALUE | t.ПОДДЕРЖКА | t.ВЕРОЯТНОСТЬ | t.ВАРИАЦИЯ | t.VALUETYPE |
|---|---|---|---|---|---|
| Годовой доход | Отсутствует | 0 | 0.000457142857142857 | 0 | 1 |
| Годовой доход | 57220.8876687257 | 17484 | 0.999542857142857 | 1041275619.52776 | 3 |
| 57220.8876687257 | 0 | 0 | 1041216662.54387 | 11 |
Дополнительные сведения о типах значений и статистике, используемой в моделях регрессии, см. в разделе «Содержимое модели интеллектуального анализа данных для моделей линейной регрессии» (службы Analysis Services — интеллектуальный анализ данных).
Список функций прогнозирования
Все алгоритмы Майкрософт поддерживают общий набор функций. Однако алгоритм дерева принятия решений Майкрософт поддерживает дополнительные функции, перечисленные в следующей таблице.
| Функция прогнозирования | Использование |
| IsDescendant (DMX) | Определяет, является ли один узел дочерним элементом другого узла в модели. |
| IsInNode (DMX) | Указывает, содержит ли указанный узел текущий случай. |
| PredictAdjustedProbability (DMX) | Возвращает взвешированную вероятность. |
| PredictAssociation (DMX) | Прогнозирование членства в ассоциативном наборе данных. |
| PredictHistogram (DMX) | Возвращает таблицу значений, связанных с текущим прогнозируемым значением. |
| PredictNodeId (DMX) | Возвращает Node_ID для каждого случая. |
| PredictProbability (DMX) | Возвращает вероятность прогнозируемого значения. |
| PredictStdev (DMX) | Возвращает прогнозируемое стандартное отклонение для указанного столбца. |
| PredictSupport (DMX) | Возвращает значение поддержки для указанного состояния. |
| PredictVariance (DMX) | Возвращает дисперсию указанного столбца. |
Список функций, которые являются общими для всех алгоритмов Майкрософт, см. в разделе "Общие функции прогнозирования" (DMX). Сведения о синтаксисе конкретных функций см. в справочнике по расширению интеллектуального анализа данных (DMX).
См. также
Запросы интеллектуального анализа данных
Алгоритм деревьев принятия решений Майкрософт
Технический справочник по алгоритму деревьев принятия решений Майкрософт
Содержимое модели интеллектуального анализа данных для моделей дерева принятия решений (службы Analysis Services — интеллектуальный анализ данных)