через алгоритм под названием CART[97] и сгенерировали дерево решений, изображенное на рис. 10.3. Оно больше похоже на перевернутое дерево, состоящее из «узлов», «ветвей» и «листьев» решений, в котором окончательный прогноз определяется листом. Давайте обойдем это дерево, чтобы разобраться в том, как оно работает.
Рис. 10.3. Простой алгоритм дерева решений, примененный к набору данных о стажерах
Предположим, что соискатель по имени Эллен учится на втором курсе, имеет средний балл 3,6, специализируется на изучении информатики и занимается спортом. Эти данные можно закодировать следующим образом: {Ср_балл = 3,6, Курс = 2, Специальность = Инф., Число_ВЗ = 1}, где Число_ВЗ означает «число внеклассных занятий».
В самом верху рис. 10.3 находится корневой узел, указывающий на признак, позволяющий лучше всего разделить данные; здесь это средний балл. Средний балл Эллен составляет 3,6, поэтому она переходит в правую ветвь к следующему узлу принятия решений: Число_ВЗ. Ее Число_ВЗ равно 1, поэтому она переходит в левую ветвь к следующему узлу принятия решений: Специальность. Студенты, специализирующиеся на изучении информатики, переходят направо, и тут в дело снова вступает такой признак, как средний балл. Средний балл Эллен составляет не менее 3,5, поэтому вы можете предсказать «Да», она будет приглашена на собеседование.
Обратите внимание на то, как это дерево раскрывает взаимодействия входных признаков. В данном случае небольшое количество внеклассных занятий компенсируется наличием высокого среднего балла по информатике или статистике.
Числа на листьях в нижней части рис. 10.3 подытоживают разделение обучающих данных, произведенное деревом решений. Крайний справа лист имеет три точки данных: {Да, 1,00 и 17 %}. Это говорит о том, что в прошлом 100 % соискателей со средним баллом ≥ 3,4 и как минимум тремя внеклассными занятиями были приглашены на собеседование вне зависимости от своей специализации. (Вы можете это увидеть, если проследите путь от этого листа до корневого узла.) Для любого нового кандидата, соответствующего этим критериям, прогнозным значением будет «Да», потому что в прошлом процент соискателей, попадающих в этот лист, превышал 50 %. В данном случае речь идет о 51 соискателе, на которых приходилось 17 % обучающих данных.
Крайний левый лист показывает, что 29 % бывших претендентов имели средний балл ниже 3,0 и менее 4 внеклассных занятий, и из них только 2 % были приглашены на собеседование. Поэтому данный узел содержит прогноз «Нет»[98].
Деревья решений отлично подходят для отображения разведочных данных и позволяют легко и быстро убедиться в том, что входные данные в вашем наборе связаны с выходными.
Однако одного дерева редко бывает достаточно для прогнозирования. Давайте посмотрим, как одно дерево решений (вроде изображенного на рис. 10.3) может ввести в заблуждение. С одной стороны, дерево может продолжать расти вглубь до тех пор, пока каждый кандидат не окажется в своем отдельном листе, что будет представлять идеальные правила принятия решений для всех 300 претендентов из набора обучающих данных. И если следующая группа стажеров будет иметь точно такие же характеристики, то ваше дерево будет идеальным. Однако, учитывая то, что в данных всегда присутствуют вариации, здравый смысл подсказывает нам, что это невозможно. Новые кандидаты будут отличаться от тех, на которых мы учились, а переобученное дерево будет очень уверенно предлагать вам потенциально неверные решения.
Действительно, одиночные деревья решений склонны к переобучению, при котором модель описывает набор обучающих данных гораздо лучше, чем ту реальность, для предсказания которой она была создана. Один из способов устранения этой проблемы – так называемая обрезка, однако одиночные деревья остаются весьма чувствительными к своим обучающим данным. Если бы вы отобрали 100 кандидатов из своего набора данных и построили новое дерево решений, то, вероятно, обнаружили бы другие узлы решений и разделительные значения внутри дерева. Например, для разделения корневого узла может использоваться значение среднего балла 3,2 вместо 3,0.
Для исправления проблем, свойственных деревьям решений, можно использовать ансамблевые методы.
Ансамблевые методы
Ансамблевые методы, предполагающие агрегирование результатов десятков, а то и тысяч запусков алгоритма, пользуются популярностью среди специалистов по работе с данными благодаря своей способности делать значимые прогнозы на детальном уровне.
Абсолютных фаворитов у дата-сайентистов два – случайные леса и деревья решений с градиентным усилением. Они часто используются командами, побеждающими в соревнованиях по науке о данных, проводимых на веб-сайте Kaggle.com; компании размещают наборы данных и вручают дата-сайентистам, создавшим на их основе максимально точные модели, солидные денежные призы. В этом разделе мы предоставим вам краткое интуитивно понятное объяснение этих методов.
Случайные леса
Если вы понаблюдаете за любыми двумя опытными интервьюерами, то заметите, что каждый из них использует собственные правила принятия решений, основанные на их личном опыте и типах кандидатов, с которыми они взаимодействовали. Проще говоря, они оценивают кандидатов по-разному. Вот почему во многих компаниях за отбор новых сотрудников отвечают целые команды, а решение принимается на основе консенсуса, позволяющего сбалансировать различия в оценках нескольких человек.
Случайный лес[99] – это эквивалент данной идеи в виде дерева решений. Этот алгоритм берет случайную выборку данных и строит дерево решений, а затем повторяет этот процесс еще несколько сотен раз[100]. В результате получается «лес», состоящий из деревьев, которые имитируют множество независимых оценщиков вашего набора данных, а окончательный прогноз – это консенсус, то есть решение, принятое большинством голосов. (Случайные леса также могут использоваться для расчета среднего значения предсказанных вероятностей при решении задач классификации или среднее значение непрерывных числовых данных при решении задач регрессии.)
На рис. 10.4 показаны четыре дерева в нашем лесу. Присмотритесь, и вы заметите еще одну особенность случайных лесов. В двух деревьях первым разделителем является средний балл, в одном – специализация, еще в одном – количество внеклассных занятий. Так и должно быть. Случайные леса случайным образом выбирают не только наблюдения (строки) для построения дерева, но и признаки (столбцы). Это устраняет корреляцию составляющих лес деревьев, позволяя каждому из них находить новые взаимосвязи в данных. В противном случае найденная деревьями информация оказалась бы избыточной.
Деревья решений с градиентным усилением
Деревья решений с градиентным усилением[101] используют другой подход. В то время как случайный лес создает сотни отдельных деревьев и в конце усредняет их результаты, деревья с градиентным усилением строятся последовательно.
В ситуации приема на работу это означает, что несколько интервьюеров выстраиваются в очередь за дверью, чтобы последовательно побеседовать с кандидатом. Каждый интервьюер входит в комнату, задает кандидату один-два вопроса, выходит и говорит следующему интервьюеру что-то вроде: «На данный момент я склоняюсь