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

Применимо к: SQL Server 2019 и более ранних версий Analysis Services Azure Analysis Services Fabric/Power BI Premium

Важно!

Интеллектуальный анализ данных не рекомендуется использовать в службах SQL Server 2017 Analysis Services, а в SQL Server 2022 Analysis Services его поддержка прекращена. Документация не обновляется для устаревших и неподдерживаемых функций. Дополнительные сведения см. в статье об обратной совместимости служб Analysis Services.

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

Основные сведения о структуре модели деревьев принятия решений

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

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

Примечание

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

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

Дерево для каждого прогнозируемого атрибута содержит сведения, описывающие, как выбранные входные столбцы влияют на выходные данные этого прогнозируемого атрибута. Вверху каждого дерева находится узел (NODE_TYPE = 9), содержащий прогнозируемый атрибут, а затем следует ряд узлов (NODE_TYPE = 10), которые представляют входные атрибуты. Атрибут соответствует столбцу уровня вариантов или значениям столбцов вложенной таблицы, которые обычно находятся в столбце Key вложенной таблицы.

Внутренние и конечные узлы представляют условия разбиения. Дерево может разбиваться несколько раз по одному атрибуту. Например, модель TM_DecisionTree может разбиваться по атрибутам [Yearly Income] и [Number of Children], а на следующем участке дерева вновь разбиваться по атрибуту [Yearly Income].

Алгоритм дерева принятия решений (Майкрософт) также может содержать линейные регрессии во всем дереве или в его части. Если моделируемый атрибут имеет непрерывный числовой тип данных, модель может создать узел дерева регрессии (NODE_TYPE = 25) там, где связь между атрибутами может моделироваться линейно. В этом случае узел содержит формулу регрессии.

Однако если прогнозируемый атрибут имеет дискретные значения, а также если его числовые значения сегментированы или дискретизированы, то модель всегда создает дерево классификации (NODE_TYPE =2). Дерево классификации может иметь несколько ветвей или внутренних узлов дерева (NODE_TYPE =3) для каждого значения атрибута, однако не для каждого значения атрибута выполняется разбиение.

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

Примечание

SQL Server Analysis Services автоматически выбирает метод сегментирования непрерывных атрибутов. Однако вы можете управлять дискретизацией непрерывных значений во входных данных, установив для типа содержимого столбца структуры интеллектуального анализа данных значение Discretized, а затем задав DiscretizationBucketCount свойство или DiscretizationMethod .

Top

Содержимое для модели дерева принятия решений

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

MODEL_CATALOG
Имя базы данных, в которой хранится модель.

MODEL_NAME
Имя модели.

ATTRIBUTE_NAME
Имя атрибута, отвечающего этому узлу.

NODE_NAME
Всегда совпадает с NODE_UNIQUE_NAME.

NODE_UNIQUE_NAME
Уникальный идентификатор узла в модели. Это значение невозможно изменить.

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

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

NODE_TYPE
В моделях дерева принятия решений создаются следующие типы узлов.

Тип узла Описание
1 (модель) Корневой узел для модели.
2 (дерево) Родительский узел для деревьев классификации в модели. Помечается "Все".
3 (внутренний) Начальный элемент внутренней ветви, находящейся в пределах дерева классификации или дерева регрессии.
4 (распределение) Конечный узел, находящийся внутри дерева классификации или дерева регрессии.
25 (дерево регрессии) Родительский узел для деревьев регрессии в модели. Помечается "Все".

NODE_CAPTION
Понятное имя, применяемое для отображения.

При создании модели в качестве заголовка автоматически используется значение NODE_UNIQUE_NAME. Но предусмотрена возможность изменить значение NODE_CAPTION для обновления отображаемого имени кластера либо программным путем, либо с использованием средства просмотра. Заголовок автоматически создается моделью. Содержимое заголовка зависит от типа модели и типа узла.

В модели дерева принятия решений элементы NODE_CAPTION и NODE_DESCRIPTION имеют различное содержание в зависимости от уровня в дереве. Дополнительные сведения и примеры см. в разделе Заголовок узла и описание узла.

CHILDREN_CARDINALITY
Оценка количества дочерних узлов, которые имеет данный узел.

Родительский узел Указывает количество смоделированных прогнозируемых атрибутов. Для каждого прогнозируемого атрибута создается дерево.

Узел дерева Узел Все для каждого дерева показывает, сколько значений было использовано для целевого атрибута.

  • Если целевой атрибут является дискретным, это значение равно количеству уникальных значений плюс 1 для состояния Missing .

  • Если прогнозируемый атрибут является непрерывным, это значение показывает, сколько контейнеров было использовано для моделирования непрерывного атрибута.

Конечные узлы Значение всегда равно 0.

PARENT_UNIQUE_NAME
Уникальное имя родителя узла. Для любых узлов на корневом уровне возвращается значение NULL.

NODE_DESCRIPTION
Описание узла.

В модели дерева принятия решений элементы NODE_CAPTION и NODE_DESCRIPTION имеют различное содержание в зависимости от уровня в дереве.

Дополнительные сведения и примеры см. в разделе Заголовок узла и описание узла.

NODE_RULE
XML-описание правила, которое описывает путь к текущему узлу от его непосредственного родителя.

Дополнительные сведения и примеры см. в разделе Правило узла и граничное правило.

MARGINAL_RULE
XML-описание правила, которое описывает путь от родительского узла модели к текущему узлу.

Дополнительные сведения см. в разделе Правило узла и граничное правило.

NODE_PROBABILITY
Вероятность, связанная с этим узлом.

Дополнительные сведения см. в разделе Вероятность.

MARGINAL_PROBABILITY
Вероятность доступа к узлу от родительского узла.

Дополнительные сведения см. в разделе Вероятность.

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

Коневой узел модели Эта таблица пуста.

Узел (Все) Содержит сводку по модели в целом.

Внутренний узел Содержит статистические данные по конечным узлам.

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

Узел регрессии Содержит формулу регрессии, которая представляет связь между входными данными и прогнозируемым атрибутом.

Дополнительные сведения см. в разделах Распределение узлов для дискретных атрибутов и Распределение узлов для непрерывных атрибутов.

NODE_SUPPORT
Число вариантов, поддерживаемое этим узлом.

MSOLAP_MODEL_COLUMN
Указывает столбец, содержащий прогнозируемый атрибут.

MSOLAP_NODE_SCORE
Отображает оценку, связанную с узлом. Дополнительные сведения см. в разделе Оценка узла.

MSOLAP_NODE_SHORT_CAPTION
Метка, используемая для отображения.

Комментарии

В модели дерева принятия решений отсутствует отдельный узел, хранящий статистику для модели в целом, такой как узел граничной статистики в модели упрощенного алгоритма Байеса или модели нейронной сети. Вместо этого модель создает отдельное дерево для каждого прогнозируемого атрибута, и на верхнем уровне дерева располагается узел (Все). Каждое дерево независимо от других. Если модель содержит только один прогнозируемый атрибут, в модели будет только одно дерево и только один узел (Все).

Каждое дерево, представляющее выходной атрибут, дополнительно делится на внутренние ветви (NODE_TYPE = 3), которые представляют разбиения. Каждое из этих деревьев содержит статистику о распределении целевого атрибута. Кроме этого, каждый конечный узел (NODE_TYPE = 4) содержит статистику, описывающую входные атрибуты и их значения, а также количество вариантов, входящих в несущее множество каждой пары «атрибут-значение». Поэтому в каждой ветви дерева принятия решений можно легко просмотреть вероятности или распределение данных без необходимости запрашивать исходные данные. Каждый уровень дерева обязательно представляет сумму своих непосредственных потомков.

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

Top

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

Чтобы продемонстрировать работу дерева принятия решений, рассмотрим пример — сценарий для покупателя велосипеда AdventureWorks. Предположим, что прогнозируемым атрибутом является покупка. Тогда алгоритм дерева принятия решений пытается найти среди предоставленных входных данных один столбец, по которому наиболее эффективно определяются клиенты, склонные приобрести велосипед, и клиенты, которые предположительно воздержатся от покупки. Например, модель может обнаружить, что лучшим показателем для оценки возможности приобретения является атрибут Age (возраст). В частности, модель обнаруживает, что клиенты старше 30 лет с большой вероятностью приобретают велосипеды, а все остальные клиенты вряд ли совершат покупку. В этом сценарии модель создает разбиение по атрибуту Age. Это значит, что дерево разделяется на две ветви, одна из которых содержит клиентов старше 30 лет, а вторая — младше 30 лет. Новые ветви представляются в структуре модели в виде двух новых внутренних деревьев (NODE_TYPE = 3).

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

Каждый внутренний узел дерева содержит конечные узлы, которые показывают распределение выходных данных с учетом заданных результатов классификации. Например, у вас может быть внутренний узел, представляющий Возраст >= 30 и Пол = Мужской. Узел для этой группы показывает, сколько клиентов в этой категории совершило или не совершило покупку. Например, классификация может содержать следующие разбиения дерева.

Внутреннее дерево Разделение
Возраст >= 30 Возраст >= 30 и Пол = Мужской
Возраст >= 30 и пол = женский
Возраст < 30 Возраст < 30 лет и пол = мужской
Возраст < 30 лет и пол = женщина

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

Конечный узел всегда имеет тип NODE_TYPE 4 (распределение) и содержит гистограмму, которая показывает вероятность каждого результата (покупка или отказ от покупки) с учетом заданных атрибутов. Например, если вы запросите прогноз для нового клиента, который является мужчиной старше 60 лет, модель будет искать соответствующий узел (возраст > 30 лет и пол = мужчина), а затем возвращать вероятность для указанного результата. Эти вероятности хранятся в таблице NODE_DISTRIBUTION для узла.

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

Top

Заголовок узла и описание узла

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

Столбец Описание
Отображает атрибут, который отличает данный узел от родительского. Заголовок узла определяет подсегмент совокупности на основании условия разбиения. Например, если разделение было на [Age] и было трехсторонным разделением, заголовки для трех дочерних узлов могут быть "[Age] < 40", "40 <= [Age] < 50", "[Age] >= 50".
NODE_DESCRIPTION Содержит полный список атрибутов, отличающих данный узел от других, начиная с родительского узла модели. Например, Product name = Apple и Color = Red.

Top

Правило узла и граничное правило

Столбцы NODE_RULE и MARGINAL_RULE содержит те же данные, что и столбцы NODE_CAPTION и NODE_DESCRIPTION, но представляют их в виде XML-фрагментов. Правило узла является XML-версией полного пути, а граничное правило указывает на последнее разбиение.

XML-фрагмент может представлять простой или сложный атрибут. Простой атрибут содержит имя столбца модели и значение атрибута. Если столбец модели содержит вложенную таблицу, атрибут вложенной таблицы представляется в виде объединения имени таблицы, значения ключа и атрибута.

Примечание

SQL Server SQL Server Analysis Services поддерживает версию 2.0 стандарта PMML с расширениями для поддержки использования вложенной таблицы. Если данные содержат вложенные таблицы и создается PMML-версия модели, все элементы модели, включающие предикаты, помечаются как расширение.

Top

Распределение узлов для дискретных атрибутов

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

Имя атрибута и значение атрибута

В дереве классификации имя атрибута всегда содержит имя прогнозируемого столбца. Это значение говорит, какой атрибут прогнозирует дерево. Поскольку единичное дерево всегда представляет единичный прогнозируемый атрибут, это значение повторяется по всему дереву.

Для дискретного типа данных поле значения атрибута перечисляет возможные значения прогнозируемого столбца плюс значение Missing .

Поддержка

Мощность несущего множества для каждого узла показывает, сколько вариантов включает в себя этот узел. На уровне (Все) показано полное число вариантов, использованных для обучения модели. Для каждого разбиения в дереве значение несущего множества равно числу вариантов, сгруппированных в этом узле дерева. Сумма вариантов в конечных узлах всегда равна числу вариантов в родительском узле дерева.

Для узлов, представляющих непрерывные атрибуты, наличие значений NULL в данных может привести к нелогичным результатам. Например, если существует m вариантов, среднее значение будет вычисляться как сумма всех вариантов/n, где n — это число меньше m, а m-n равно числу вариантов с отсутствующими значениями. Кроме того, n представляет несущее множество.

Вероятность

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

Например, в следующей таблице показана очень простая модель со 100 вариантами.

Внутреннее дерево Случаи Конечный узел Случаи Вероятность, связанная с родительским узлом Вероятность, связанная с верхним узлом
Возраст >= 30 60 Возраст >= 30 и Пол = Мужской 50 50/60 = .83 50/100 = .5
Возраст >= 30 и пол = женский 10 10/60 = .16 10/100 = .10
Возраст < 30 40 Возраст < 30 лет и пол = мужской 30 30/40 = .75 30/100 = .30
Возраст < 30 лет и пол = женщина 10 10/40 = .25 10/100 = .10

Во всех моделях выполняется небольшая поправка, учитывающая возможные отсутствующие значения. Для непрерывных атрибутов каждое значение или диапазон значений представлено в виде состояния (например, Age <30, Age = 30 и Age >30), а вероятности вычисляются следующим образом: состояние существует (значение = 1), некоторое другое состояние существует (значение = 0), состояние отсутствует. Дополнительные сведения о том, как вероятности корректируются для представления отсутствующих значений, см. в разделе Отсутствующие значения (службы Analysis Services — интеллектуальный анализ данных).

Вероятности для каждого узла вычисляются почти непосредственно из распределения, по следующей формуле:

Вероятность = (несущее множество для состояния + несущее множество для предыдущего состояния) / (несущее множество узла + несущее множество для предыдущего состояния)

SQL Server Analysis Services использует вероятности для каждого узла, чтобы сравнить хранимую вероятность с предыдущей вероятностью, чтобы определить, указывает ли путь от родительского к дочернему узлу на сильный вывод.

При составлении прогнозов вероятность распределения необходимо уравновешивать с вероятностью узла, чтобы получить более гладкое распределение вероятности. Например, если в результате разбиения дерева варианты делятся в отношении 9000/1000, дерево оказывается сильно неуравновешенным. В результате прогноз, создаваемый малой ветвью, не будет иметь тот же вес, что и прогноз, создаваемый ветвью со множеством вариантов.

Variance

Дисперсия является показателем разброса значений в выборке при заданном ожидаемом распределении. Для дискретных значений дисперсия по определению равна 0.

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

Тип значения

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

В деревьях классификации используются следующие типы из перечисления MiningValueType .

Тип значения Описание
1 (отсутствует) Указывает количество, вероятность и другую статистику, связанную с отсутствующим значениям.
4 (дискретный) Указывает количество, вероятность и другую статистику, связанную с дискретным или дискретизированным значением.

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

Оценка узла

Оценка узла на каждом уровне дерева представляет несколько отличающиеся сведения. В общем случае оценка представляет собой числовое значение, показывающее, насколько удачным было разбиение по условию. Значение имеет тип double, и чем больше значение, тем удачнее считается разбиение.

Узел модели и все конечные узлы по определению имеют оценку узла 0.

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

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

Примечание

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

Top

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

Если модель дерева принятия решений содержит прогнозируемый атрибут с непрерывными числовыми данными, алгоритм дерева принятия решений (Майкрософт) пытается найти в данных области, где связь между прогнозируемым состоянием и входными переменными является линейной. Если алгоритму удается обнаружить линейную связь, он создает специальное дерево (NODE_TYPE = 25), представляющее линейную регрессию. Узлы этого дерева регрессии являются более сложным, чем узлы, представляющие дискретные значения.

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

Однако если связь между входными параметрами и прогнозируемым значением является нелинейной, то вместо регрессии создается разбиение, аналогично обычному дереву принятия решений. Например, пусть А является прогнозируемым атрибутом, а Б и В являются входными параметрами, причем В имеет непрерывный тип значения. Тогда если связь между А и В является вполне устойчивой в некоторых областях данных, но неустойчивой в других областях, то алгоритм создаст разбиения, представляющие различные области данных.

Условие разбиения Результат в узле
если n < 5 Связь можно выразить формулой 1
Если n лежит между 5 и 10 Нет формулы
если n > 10 Связь можно выразить формулой 2

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

См. также:

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