Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lections 2007.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
841.22 Кб
Скачать
  1. Деревья решений

  1. Деревья решений и области их применения

Деревья решения являются одним из наиболее популярных подходов к реше­нию задач интеллектуального анализа данных. Они создают иерархическую структуру классифицирующих правил типа «если..., то... », имеющую вид дерева. Для того чтобы решить, к какому классу отнести некоторый объект или ситуацию, требуется ответить на вопросы, стоящие в узлах этого дерева, начиная с его корня. Для бинарных деревьев вопросы имеют вид «значение параметра A больше x?». Если ответ положительный, осуществляется пере­ход к правому узлу следующего уровня, если отрицательный — то к левому узлу; затем снова следует вопрос, связанный с соответствующим узлом.

Первые идеи создания деревьев решений восходят к работам Ховленда (Hoveland), Ханта (Hunt) конца 50-х годов XX века. Популярность подхода связана с наглядностью и понятностью. Но очень остро для деревьев реше­ний стоит проблема значимости. Дело в том, что отдельным узлам на каж­дом новом построенном уровне дерева соответствует все меньшее и меньшее число записей данных — дерево дробит данные на большое количество част­ных случаев. Чем больше этих частных случаев, чем меньше обучающих примеров попадает в каждый такой частный случай, тем менее уверенной становится их классификация. Если построенное дерево слишком «кусти­стое» — состоит из неоправданно большого числа мелких веточек — оно не будет давать статистически обоснованных ответов. Как показывает практи­ка, в большинстве систем, использующих деревья решений, эта проблема не находит удовлетворительного решения. Кроме того, деревья решений дают полезные результаты только в случае независимых признаков. В противном случае они лишь создают иллюзию логического вывода.

Рассмотрев основные проблемы, возникающие при построении деревьев, было бы несправедливо не упомянуть об их достоинствах:

  • быстрый процесс обучения;

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

  • извлечение правил на естественном языке;

  • интуитивно понятная классификационная модель;

  • высокая точность прогноза, сопоставимая с другими методами (стати­стика, нейронные сети);

  • построение непараметрических моделей.

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

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

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

  1. Описание данных. Деревья решений позволяют хранить информацию

о данных в компактной форме, вместо них мы можем хранить дерево решений, которое содержит точное описание объектов.

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

  2. Регрессия. Если целевая переменная имеет непрерывные значения, дере­вья решений позволяют установить зависимость целевой переменной от независимых (входных) переменных. Например, к этому классу относят­ся задачи численного прогнозирования (предсказания значений целевой переменной).

Деревья решений успешно применяются для решения практических за­дач в следующих областях.

  1. Банковское дело. Оценка кредитоспособности клиентов банка при выдаче кредитов.

  2. Промышленность. Контроль за качеством продукции (выявление дефек­тов), испытания без разрушений (например, проверка качества сварки) и т.д.

  3. Медицина. Диагностика различных заболеваний.

  4. Молекулярная биология. Анализ строения аминокислот.

Это далеко не полный список областей, где возможно использование де­ревьев решений. Не исследованы еще многие потенциальные области приме­нения.

  1. Структура дерева решений

Деревья решений — это способ представления правил в иерархической, по­следовательной структуре, где каждому объекту соответствует единствен­ный узел, дающий решение. Под правилом понимается логическая конструк­ция, представленная в виде «если ... то ... ». Наиболее близкая аналогия де­ревьев решений — дерево каталогов, отображаемое, например, проводником Windows. Каталоги в данном случае будут соответствовать узлам (условие «если»), а файлы — листьям (ветвь «то»).

Дерево решений можно определить как структуру, которая состоит из

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

Более формально дерево можно определить как конечное множество T, состоящее из одного или множества узлов, таких, что

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

  • остальные узлы (исключая корень) содержатся в m ^ 1 попарно непере- секающихся множествах Ti,... , Tm, каждое из которых в свою очередь является деревом. Деревья Ti,... ,Tm называют поддеревьями данного корня.

Из данного определения следует, что каждый узел дерева является кор­нем некоторого поддерева, которое содержится в этом дереве. Число поддере­вьев данного узла называется степенью этого узла. Узел с нулевой степенью называется листом. Уровень узла по отношению к дереву T определяется следующим образом: говорят, что корень имеет уровень 1, а другие узлы имеют уровень на единицу выше их уровня относительно содержащего их поддерева Tj этого корня.

Если в дереве существует относительный порядок поддеревьев Ti,... , Tm, то говорят, что дерево является упорядоченным; в случае, когда в упоря­доченном дереве m ^ 2, имеет смысл называть Т2 «вторым поддеревом» данного корня и т.д.; если два дерева, отличающиеся друг от друга только относительным порядком узлов поддеревьев, не считать различными, то в этом случае говорят, что дерево является ориентированным, поскольку здесь имеет значение только относительная ориентация узла, а не их порядок.

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

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

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

Дерево решений, соответствующее обучающей выборке, содержащейся в табл. 9, представлено на рис. 9. На этом дереве промежуточные узлы пред­ставляют атрибуты «Кредитная история», «Доход», «Долг», «Поручитель­ство». Листья дерева промаркированы одним из двух классов «Риск высо­кий» или «Риск низкий». Можно считать, что «Риск низкий» соответствует классу позитивных экземпляров концепта , а «Риск высокий» — классу нега­тивных. Например, «Риск низкий» может приводить к действию «выдать кредит», а «Риск высокий» — к действию «кредит не выдавать».

Таблица 9

Кредитная история

Доход

Долг

Поручительство

Риск

1

Отсутствует

Средний

Высокий

Да

Высокий

2

Отсутствует

Средний

Высокий

Нет

Высокий

3

Хорошая

Средний

Высокий

Да

Низкий

4

Плохая

Выше среднего

Высокий

Да

Низкий

5

Плохая

Ниже среднего

Низкий

Да

Низкий

6

Плохая

Ниже среднего

Низкий

Нет

Высокий

7

Хорошая

Ниже среднего

Низкий

Нет

Низкий

8

Отсутствует

Выше среднего

Высокий

Да

Высокий

9

Отсутствует

Ниже среднего

Низкий

Да

Низкий

10

Плохая

Выше среднего

Низкий

Да

Низкий

11

Отсутствует

Выше среднего

Низкий

Нет

Низкий

12

Хорошая

Выше среднего

Высокий

Нет

Низкий

13

Хорошая

Средний

Низкий

Да

Низкий

14

Плохая

Выше среднего

Высокий

Нет

Высокий

Кредитная история

Рис. 9. Пример дерева решений

  1. Алгоритм формирования дерева решения по обучающей выборке

Опишем метод построения деревьев решений, который впервые был предло­жен Р. Куинленом (R. Quinlan) в 1993. Этот метод используется в одном из лучших алгоритмов построения деревьев решений C4.5.

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

  1. Описание атрибутов. Данные, необходимые для работы алгоритма, дол­жны быть представлены в виде плоской таблицы. Вся информация об объектах (далее примеры) из предметной области должна описываться в виде конечного набора признаков (далее атрибуты). Каждый атри­бут должен иметь дискретное или числовое значение. Сами атрибуты не должны меняться от примера к примеру, и количество атрибутов должно быть фиксированным для всех примеров.

  2. Определенные классы. Каждый пример должен быть ассоциирован с кон­кретным классом, то есть один из атрибутов должен быть выбран в ка­честве метки класса.

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

Алгоритм построения дерева

Пусть нам задано множество примеров Т, где каждый элемент этого множе­ства описывается m атрибутами. Количество примеров в множестве T будем называть мощностью этого множества и будем обозначать |Т|. Пусть метка класса принимает следующие значения С\,... ,Ck.

Наша задача будет заключаться в построении иерархической классифи­кационной модели в виде дерева из множества примеров T. Процесс построе­ния дерева будет происходить сверху вниз. Сначала создается корень дерева, затем потомки корня и т.д. На первом шаге мы имеем пустое дерево (имеется только корень) и исходное множество Т (ассоциированное с корнем). Требу­ется разбить исходное множество на подмножества. Это можно сделать, вы­брав один из атрибутов в качестве проверки. Тогда в результате разбиения получаются n (по числу значений атрибута) подмножеств и, соответственно, создаются n потомков корня, каждому из которых поставлено в соответствие свое подмножество, полученное при разбиении множества Т. Затем эта про­цедура рекурсивно применяется ко всем подмножествам (потомкам корня) и т.д.

Рассмотрим подробнее критерий выбора атрибута, по которому должно пойти ветвление. Очевидно, что в нашем распоряжении m (по числу атрибу­тов) возможных вариантов, из которых мы должны выбрать самый подходя­щий. Некоторые алгоритмы исключают повторное использование атрибута при построении дерева, но в нашем случае мы таких ограничений накла­дывать не будем. Любой из атрибутов можно использовать неограниченное количество раз при построении дерева.

Пусть мы имеем проверку X (в качестве проверки может быть выбран любой атрибут), которая принимает n значений Ai,..., An. Тогда разбиение Т по проверке X даст нам подмножества Т1,... ,Tn при X, равном соответ­ственно Ai,..., An. Единственная доступная нам информация — то, каким образом классы распределены в множестве Т и его подмножествах, получае­мых при разбиении по X. Именно этим мы и воспользуемся при определении критерия.

Пусть freq(Cj, S) — количество примеров из некоторого множества S, от­носящихся к одному и тому же классу Cj. Тогда вероятность того, что слу­чайно выбранный пример из множества S будет принадлежать к классу Cj,

будет равна

р = freq(Cj,S)

|s | .

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

log, р1. (4)

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

Выражение

  1. (T ) = - £ «И! к*, (frfS) (5)

дает оценку среднего количества информации, необходимого для определе­ния класса примера из множества T. В терминологии теории информации выражение (5) называется энтропией множества T.

Ту же оценку, но только уже после разбиения множества T по X, дает следующее выражение:

n IT I

Ix (T) = £ IT!I(Ti). (6)

i=1 1 1

Тогда критерием для выбора атрибута будет являться следующая формула:

G(X) = I(T) - Ix(T). (7)

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

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

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

Здесь следует пояснить, почему критерий (7) должен максимизировать­ся. Из свойств энтропии нам известно, что максимально возможное значение энтропии достигается в том случае, когда все его сообщения равновероятны. В нашем случае, энтропия (6) достигает своего максимума, когда частота появления классов в примерах множества T равновероятна. Нам же необхо­димо выбрать такой атрибут, чтобы при разбиении по нему один из классов имел наибольшую вероятность появления. Это возможно в том случае, когда энтропия (6) будет иметь минимальное значение и, соответственно, критерий (7) достигнет своего максимума.

Рассмотрим отдельно как быть в случае с числовыми атрибутами. Понят­но, что следует выбрать некий порог, с которым должны сравниваться все значения атрибута. Пусть числовой атрибут имеет конечное число значений. Обозначим их {v1,..., vn}. Предварительно отсортируем все значения. Тогда любое значение, лежащее между Vi и vi+1, делит все примеры на два множе­ства: те, которые лежат слева от этого значения {v1,... , vi}, и те, что справа {vi+1,..., vn}. В качестве порога можно выбрать среднее между значениями vi и vi+1:

vi + vi+1

THi =

2

Таким образом, мы существенно упростили задачу нахождения порога, и привели к рассмотрению всего n — 1 потенциальных пороговых значений TH1,... , THn—1. Формулы (5), (6) и (7) последовательно применяются ко всем потенциальным пороговым значениям и среди них выбирается то, ко­торое дает максимальное значение по критерию (7). Далее это значение срав­нивается со значениями критерия (7), подсчитанными для остальных атри­бутов. Если выяснится, что среди всех атрибутов данный числовой атрибут имеет максимальное значение по критерию (7), то в качестве проверки вы­бирается именно он.

Следует отметить, что все числовые тесты являются бинарными, т.е. де­лят узел дерева на две ветви.

Классификация новых примеров

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

  1. Пример построения дерева решения

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

Начинаем построения дерева решений с его корня. Выберем один из ат­рибутов в качестве проверки. По формуле (5) мы получаем

I(T) = 0, 940286.

Для проверки Х1 по атрибуту «кредитная история», для проверки Х2 по атрибуту «доход», для проверки Х3 по атрибуту «долг», для проверки Х4 по атрибуту «поручительство» по формуле (6) соответственно получаем

IXi (T) = 0, 729949, Ix2 (T) = 0,911063, IXs (T) = 0, 78845, Ix4 (T) = 0,892159.

По формуле (7) получаем

G(X1) = 0, 210337, G(X2) = 0,029222,G(X3) = 0,151835, G(X4) = 0,048127.

Таким образом, наибольший прирост информации дает разбиение по атри­буту «кредитная история».

Итак, корень дерева построен и выбран атрибут «кредитная история» в качестве проверки. Продолжаем построение дерева и вначале пойдем по ветке «отсутствует». Для удобства приведем отдельно таблицу примеров, у которых атрибут «кредитная история» принимает значение «отсутствует» (табл. 10).

Таблица 10

Доход

Долг

Поручительство

Риск

1

Средний

Высокий

Нет

Высокий

2

Средний

Высокий

Да

Высокий

8

Выше среднего

Высокий

Нет

Высокий

9

Ниже среднего

Низкий

Нет

Низкий

11

Выше среднего

Низкий

Да

Низкий

Определим атрибут, по которому необходимо разбить эту выборку. Для проверки X1 по атрибуту «доход» по формуле (6) получаем Ix1 (T) = 0,4. Для проверки X2 по атрибуту «долг» по формуле (6) получаем Ix2 (T) = 0. Для проверки X3 по атрибуту «поручительство» по формуле (6) получаем 1Хз(T) = 0,196777679. По формуле (7) получаем

G(X1) = 0, 570950594, G(X2) = 0,970950594, G(X:i) = 0, 774172916.

Таким образом, наибольший прирост информации дает разбиение по атри­буту «долг».

Теперь перейдем из корня дерева по ветке «хорошая». Приведем отдель­но таблицу примеров, у которых атрибут «кредитная история» принимает значение «хорошая» (табл. 11).

Видно, что дальнейшая проверка по какому-либо атрибуту не нужна — все примеры принадлежат одному классу.

Наконец, переходим из корневого узла дерева по ветке «плохая». Приме­ры, у которых атрибут «кредитная история» принимает значение «плохая», приведены в табл. 12.

Обозначим X1, X2, X3 — проверки соответственно по атрибутам «доход», «долг», «поручительство». Для выбора атрибута, по которому необходимо

Таблица 11

Доход

Долг

Поручительство

Риск

3

Средний

Высокий

Нет

Низкий

7

Ниже среднего

Низкий

Да

Низкий

12

Выше среднего

Высокий

Да

Низкий

13

Средний

Низкий

Нет

Низкий

Таблица 12

Доход

Долг

Поручительство

Риск

4

Выше среднего

Высокий

Нет

Низкий

5

Ниже среднего

Низкий

Нет

Низкий

6

Ниже среднего

Низкий

Да

Высокий

10

Выше среднего

Низкий

Нет

Низкий

14

Выше среднего

Высокий

Да

Высокий

произвести проверку, опять воспользуемся формулами (5), (6), (7). Тогда получаем

G(Xi) = 0,019973094, G(Xy = 0,631315773, G(Xs) = 0,970950594.

Таким образом, наибольший прирост информации дает разбиение по атри­буту «поручительство».

На этом построение дерева решений заканчивается, так как в получив­шихся узлах все примеры однозначно идентифицированы (принадлежат опре­деленному классу). Построенное нами дерево приведено на рис. 9.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]