Метод деревьев решений для задачи классификации Метод деревьев решений для задачи классификации Метода деревьев решений (англ.: decision tree) для задачи классификации (см., например, [1, стр. 119 – 158]) состоит в том, чтобы осуществлять процесс деления исходных данные на группы, пока не будут получены однородные (или почти однородные) их множества. Совокупность правил, которые дают такое разбиение (англ.: partition), позволят затем делать прогноз (т.е. определять наиболее вероятный номер класса) для новых данных. Метод деревьев решений применим для решения задач классификации, возникающих в самых разных областях, и считается одним из самых эффективных. Среди задач, успешно решаемых с помощью этого метода, можно назвать, например, • скоринговые модели кредитования (англ.: credit scoring models); • маркетинговые исследования, направленные на выявление предпочтений клиента или степени его удовлетворённости – обычно эти сведения бывают востребованы маркетинговыми агентствами или рекламными компаниями; • диагностика (медицинская или техническая), где по набору значений факторов (симптомов, результатов анализов) нужно поставить диагноз или сделать вывод о динамике процесса. Определим основные понятия, используемые методом Деревьев решений. Основные понятия Итак, дерево решений –это модель, представляющая собой совокупность правил для принятия решений. Графически её можно представить в виде древовидной структуры, где моменты принятия решений соответствуют так называемым узлам (англ.: decision nodes). В узлах происходит ветвление процесса (англ.: branching), т.е. деление его на так называемые ветви (англ.: branches) в зависимости от сделанного выбора. Конечные (или, что то же самое, терминальные) узлы называют листьями (англ.: leafs, leaf nodes) – каждый лист – это конечный результат последовательного принятия решений. Данные, подлежащие классификации, находятся в так называемом «корне» дерева (англ.: root). В зависимости от решения, принимаемого в узлах, процесс в конце концов останавливается в одном из листьев, где переменной отклика (искомому номеру класса) присваивается то или иное значение. Идея метода Метод деревьев решений реализует принцип так называемого «рекурсивного деления» (англ.: recursive partitioning). Эта стратегия также называется «Разделяй и властвуй» (англ.: «Divide and conquer»). В узлах, начиная с корневого, выбирается признак, значение которого используется для разбиения всех данных на 2 класса. Процесс продолжается до тех пор, пока не выполнится критерий остановки. Это возможно в следующих ситуациях: Все (или почти все) данные данного узла принадлежат одному и тому же классу; Не осталось признаков, по которым можно построить новое разбиение; 1 Метод деревьев решений для задачи классификации Дерево превысило заранее заданный «лимит роста» (если таковой был заранее установлен). Проиллюстрируем этот процесс на следующем примере. Представьте, что Вы работаете в кинокомпании и Ваш рабочий стол завален сценариями кинофильмов. Вам нужно разложить их по трём ящикам: Популярные (англ.: «mainstream hits»); Не популярные у зрителей, но получившие высокую оценку критиков; Не имеющие успеха. Вместо того, чтобы тщательно прочитывать каждый из них, Вы хотите разработать алгоритм, реализующий принцип «разделяй и властвуй» для классификации сценариев. Для этого Вы идёте в архив киностудии, чтобы собрать данные о киносценариях за последние 10 лет. После просмотра 30 киносценариев Вы начинаете замечать, что фильмы с высоким бюджетом привлекают больше звёзд. Эта закономерность хорошо просматривается на следующей диаграмме (см. Рис.1): Рис.1 Зависимость количества звёзд, снимавшихся в фильме, от его бюджета Будем использовать количество снимавшихся в фильме звёзд как первый из признаков, по которому производится разбиение данных – см. Рис.2. Рис.2 Разбиение множества киносценариев по признаку количества занятых звёзд 2 Метод деревьев решений для задачи классификации Рассмотрим теперь группу сценариев с большим числом задействованных звёзд. Разобьём её на 2 подгруппы по признаку «размер бюджета» – см. Рис.3. Рис.3 Разбиение группы киносценариев с большим количеством занятых звёзд по признаку размера бюджета Итак, мы разбили наши данные на 3 группы: Левая верхняя группа (зелёные квадраты) содержит исключительно те фильмы, которые были высоко оценены критиками. Для них характерно большое число занятых звёзд, но относительно небольшой бюджет. Группа в правом верхнем углу, в основном, состоит из синих треугольников – фильмов с большим бюджетом и большим числом звёзд; Третья группа – красные кружки в нижней части диаграммы – состоит преимущественно из фильмов, не имевших успеха – число звёзд, занятых в них, невелико, а их бюджет варьируется от очень малого до очень большого. В принципе, ничто не мешает нам продолжать процесс разделения данных (по каждому из возможных значений числа звёзд, снявшихся в фильме), пока не получим очень «мелкое» разделение (может даже оказаться, что каждая группа будет содержать лишь по одному элементу). Понятно, что смысла в такой классификации нет. Поэтому мы ограничим ветвление дерева – например, остановим процесс, когда каждая группа хотя бы на 80% будет состоять из элементов одного и того же класса. (В нашем примере в первой группе вс8 элементов принадлежат одному классу – зелёные квадраты; во второй группе из 10 элементов 1 квадрат и 9 треугольников, т.е. 90% элементов принадлежит одному классу; в третьей группе 12 элементов, из них 10 одинаковых – красных кружков, – т.е. показатель однородности = 10/12 = 83,33… %. Это означает, что выполнен критерий оптимальности. Заметим, что мы говорим лишь о разбиениях данных (точек в Евклидовом пространстве) прямыми (в общем случае – гиперплоскостями), параллельными осям координат. Казалось бы, если бы мы не ограничивали возможность разбиения только такими прямыми (гиперплоскостями), мы могли бы получить лучшее разбиение – см., например, Рис.4. 3 Метод деревьев решений для задачи классификации Рис.4 Разбиение, недопустимое в методе деревьев решений группы Однако Метод деревьев решений не позволяет строить такие разбиения, поскольку для разделения данных используются условия вида: {x < a}, {x > a}, где x – значение фактора, a – некоторое фиксированное число. Такие разбиения в англоязычной литературе называются «axisparallel splits», т.е. «разбиения, параллельные осям». В нашем примере мы условно делим число задействованных в фильме звёзд по принципу «много» – «мало», и аналогично различаем малобюджетные и высокобюджетные. Соответствующее дерево решений показано на Рис. 5. Рис.5 Дерево решений для классификации киносценариев 4 Метод деревьев решений для задачи классификации Поскольку мы классифицировали сценарии лишь по 2-м факторам (количество занятых звёзд и бюджет), дерево получилось небольшим. На практике факторов бывает много больше и дерево содержит больше узлов, ветвей и листьев. Понятно, что нас интересуют численные алгоритмы Метода деревьев решений, допускающие компьютерную реализацию. Алгоритм (С5.0) автоматизированного построения дерева решений Существуют различные численные алгоритмы построения деревьев решений. Одним из более известных является алгоритм под названием C5.0, разработанный программистом J._Ross Quinlan. Фактически алгоритм C5.0 представляет собой стандарт процедуры построения деревьев решений. Эта программа реализуется на коммерческой основе (http://www.rulequest.com/ ), но версия, встроенная в пакет R (и некоторые другие пакеты) доступны бесплатно. В приведённой ниже таблице перечислены сильные и слабые стороны алгоритма C5.0. Сильные стороны алгоритма С5.0 Слабые стороны алгоритма С5.0 Алгоритм С5.0 является универсальным, хоро- Алгоритм С5.0 «тяготеет» к разбиениям по пришо решает задачи классификации из разных знакам с большим количеством уровней/ областей. (Decision tree models are often biased toward splits on features having a large number of levels) Алгоритм С5.0 может применяться для анализа Модель (т.е. дерево решений) может оказаться не только числовых, но и номинальных данных; как недоопределённой, так и переопредёлённой обеспечивает обработку пропущенных данных/ (It is easy to overfit or underfit the model) Алгоритм С5.0 для построения дерева решений Неточности классификации могут возникнуть использует только самые важные признаки объ- из-за того, что используются только «паралектов (выбирает из множества факторов только лельные осям» разбиения (axis-parallel splits) те, которые сильно влияют на результат классификации). Алгоритм С5.0 требует относительно неболь- Алгоритм С5.0 очень чувствителен к обучаюшого объёма обучающей выборки. щей выборке – даже небольшие изменения в ней могут сильно повлиять на результат. Интерпретация результатов работы алгоритма Деревья решений иногда получаются очень С5.0 не требует специальной математической большими, что затрудняет их интуитивное поподготовки. нимание. Алгоритм С5.0 считается более эффективным, чем другие алгоритмы классификации. Обсудим вычислительные аспекты алгоритма С5.0. Выбор признака, по которому будет осуществляться разбиение Первое, что необходимо сделать для построения дерева решений – это выбрать признак, по которому будет осуществляться разбиение. В рассмотренном нами примере (с киносценариями) мы выбирали признаки (сначала – количество популярных актёров, занятых в фильме, потом – бюджет) так, чтобы соответствующее разбиение позволило бы нам получить группы, состоя5 Метод деревьев решений для задачи классификации щие почти полностью из элементов одного класса. (Группы, полностью состоящие из элементов одного класса называют «чистыми» (англ.: «pure»),) Таким образом, мы искали такой признак (для построения разбиения по нему), который позволил бы нам получить как можно более чистые группы. Возникает вопрос: как измерить степень чистоты группы? Для этого существует несколько способов. Алгоритм C5.0 использует в качестве меры чистоты группы понятие энтропии. Энтропия (англ.: entropy) – в теории информации и в математической статистике есть мера неопределённости, мера неупорядоченности. Для системы, допускающей с возможных состояний, формула для вычисления энтропии имеет вид: Здесь 𝑝𝑖 – вероятность нахождения системы в состоянии i. Если у системы всего 2 возможных состояния, то её энтропия – функция одной переменной p (т.е. вероятности нахождения системы в первом состоянии). График её имеет вид (мы приведём его вместе с кодом в R): По графику видно, что энтропия максимальна, когда p=0,5. Нетрудно доказать аналитически, что для любого числа состояний максимум энтропии достигается в том случае, когда все они равновероятны. Нулевая энтропия означает отсутствие неопределённости (применительно к деревьям решений это означает, что группа является полностью однородной, т.е. чистой). Напротив, единичная энтропия означает полную неопределённость (в нашем случае – неопределённость относительно состава группы). Теперь, используя энтропию в качестве меры чистоты групп, которые являются результатом разбиения, алгоритм может выбрать тот признак, разбиение по которому даст самую чистую группу (т.е. группу, имеющую наименьшую энтропию). Эти вычисления называются «infor6 Метод деревьев решений для задачи классификации mation gain» (буквально – «усиление информации»). Этот признак определяется методом перебора. Для каждого признака F (от англ.: «feature» – признак, свойство, характеристика, специфическая черта) значение information gain вычисляется как разность энтропий группы (англ.: segment) до разбиения и после него: Здесь Entropy(S2) – суммарная энтропия групп, полученных в результате разбиения. Чем больше значение information gain для выбранного признака F, тем лучше этот признак F подходит для того, чтобы провести по нему разбиение, т.к. такое разбиение обеспечит получение наиболее однородной группы. Если для выбранного признака F значение information gain = 0, это означает, что разбиение по этому признаку бесперспективно, т.к. оно не приведёт к снижению энтропии. С другой стороны, максимально возможное значение величины information gain = величине энтропии до разбиения. Это означает, что энтропия после разбиения будет = 0, т.е. полученные в результате разбиения группы будут полностью однородными (чистыми). «Обрезка» дерева решений Дерево решений может продолжать расти, пока остаётся возможность построения новых разбиений. Может возникнуть ситуация, когда группы окажутся слишком мелкими, а точек ветвления будет слишком много – в этом случае говорят, что модель «is overfitted», т.е. переопределена. Пользоваться такими деревьями решений на практике бывает неудобно. Чтобы избежать этого, осуществляют так называемую «обрезку» (англ.: pruning) дерева решений. Результатом «обрезки» является уменьшение размера дерева решений. Один из подходов к «подстриганию» дерева решений состоит в том, чтобы заранее условиться о том, что процесс ветвления будет остановлен по достижении заданного числа решений. Такой подход называется «pre-pruning», т.е. «предварительная обрезка». Как любой метод без обратной связи, он чреват тем, что будут пропущены важные, но трудно обнаруживаемые данные. Другой (альтернативный) подход называется «post-pruning», т.е. буквально: «последующая обрезка». Идея его заключается в том, что сначала строится всё дерево решений, а потом по определённым правилам производится его «обрезка», т.е. отсечение лишних ветвей. Этот подход считается более надёжным в том плане, что он гарантирует, что никакая важная информация не будет потеряна. Одним из «плюсов» Алгоритма C5.0 является его способность осуществлять «обрезку» построенного дерева решений, т.е. «post-pruning». Отсекаются те узлы и ветви, использование которых мало влияет на результаты классификации (не сильно уменьшает ошибки классификации). Иногда вместо того, чтобы «отсекать» ветви, их переносят выше по дереву или же заменяют более простыми (менее разветвлёнными). Этот процесс называют «subtree raising» (т.е. «подъём поддерева») и «subtree replacement» (т.е. «замена поддерева»), соответственно. Алгоритм С5.0 использует оба вида post-pruning и показывает хорошие результаты Литература 1. Brett Lantz. Machine Learning with R. Packt Publishing, Birmingham - Mumbai, 2013. 7