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

Методы на основе деревьев были впервые представлены Лео Брейманом и тремя другими авторами: Джеромом Фридманом, Чарльзом Дж. Стоуном и Р.А. Ольшен, в начале 80-х, так что эти методы существуют довольно давно! Первоначально они были представлены как CART: деревья классификации и регрессии.

Дерево решений — это древовидный метод, используемый в задачах машинного обучения с учителем (т. е. когда мы используем этот метод, мы знаем истинный результат или метки для нашего набора данных, в отличие от обучения без учителя). Этот метод можно использовать как для: 1) задач прогнозирования (таких как прогнозирование заработной платы или возраста), так и 2) задач классификации (таких как ответ на вопрос «да/нет» или «Верно/Неверно»). В этой статье мы увидим, как этот метод используется для проблем классификации. На следующем рисунке показаны компоненты деревьев (в контексте деревьев решений):

2.1 Давайте разберемся на примере

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

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

Вы подогнали модель дерева решений и получили следующее дерево* в качестве результата (не волнуйтесь — мы вернемся к некоторым деталям чуть позже):

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

2.2 Интерпретация дерева

Во-первых, проверьте, есть ли у кандидата опыт работы более 1 года (технически модель создала «разделение» и разделила кандидатов на основе «года опыта»). Теперь оцените кандидатов на основе других критериев следующим образом:

Сосредоточьтесь на кандидатах с опытом работы более 1 года (левая часть дерева) и определите тех, кто получил более 2 наград на работе (может быть, потому что они исключительные!). И отметьте их как «успешные», что указано в зеленом поле «Да», и отметьте тех, кто получил менее 2 наград, как «не удалось», что указано в красном поле «Нет». Здорово! Дерево теперь имело дело с несколькими сотрудниками и решало, кто преуспел, а кто нет.

Теперь сосредоточьтесь на правой части дерева: кандидаты с опытом работы менее одного года. Для их оценки в модели учитывались некоторые другие критерии, одним из которых является «Количество стажировок», которые сотрудники прошли во время обучения по программе. Модель сделала еще один «раздел» и разделила кандидатов на два сегмента: один с кандидатами, прошедшими более 2 стажировок, а другой с кандидатами, имеющими меньше или равное 2 стажировкам. И отметили сотрудников, прошедших более 2 стажировок (но менее 1 года опыта, так как мы находимся на правой стороне дерева), как «успешных».

Теперь модель осталась с работниками, имеющими менее или равно 1 году опыта и прошедшими менее 2 стажировок во время обучения по программе. Итак, модель сделала еще один «раздел» и создала два сегмента: один с сотрудниками со средним баллом > 3,7, а другой с сотрудниками со средним баллом ≤ 3,7. И модель помечала сотрудников со средним баллом >3,7 как «успешных».

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

Теперь вы хотите использовать эту модель для новых заявлений о приеме на работу, которые вы только что получили. Вы вводите информацию о новых кандидатах в существующую модель, и модель будет предсказывать, преуспеет ли кандидат в работе, если он будет принят на работу. Например, кандидат имеет следующие характеристики: 8 месяцев опыта с 1 стажировкой и средний балл = 3,5. Модель будет предсказывать «Нет» на основе приведенного выше дерева. Эта модель может уменьшить ваши усилия по заполнению каждой новой заявки вручную и может ускорить процесс найма (хотя я не говорю лучше)!

2.3 Связь этого примера с некоторыми техническими деталями метода дерева решений

Несколько вопросов, на которые я попытаюсь ответить в этом разделе:

1. Как началось дерево с «многолетнего опыта»?

2. Как определить значение, по которому функция будет разделена? Что касается приведенного выше примера, как дерево решило, что разделение «годы опыта» должно быть сделано на «1»?

3. Каковы критерии оценки, чтобы решить, является ли разделение достаточно хорошим?

Сначала я отвечу на третий вопрос. Чтобы решить, насколько хорошо каждое разделение, модель дерева решений проверяет чистоту конечного узла. Он известен как индекс Джини. Формула для нахождения чистоты (что довольно просто!):

Здесь диапазон от i = 1 до c представляет количество классов, которые у нас есть. В нашем примере у нас всего 2 класса («Да» или «Нет»).

p_i представляет долю отдельных лиц (или записей) каждого класса в разделении.

Чем ниже значение Джини, тем лучше раскол!

Для 1-го и 2-го вопроса читайте дальше:

В начале алгоритм разделяет данные, учитывая все функции один за другим, и определяет, какое разделение дает чистые узлы. А затем он делает это разделение как "корневой узел", самое первое разделение.

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

И когда алгоритм разделил данные по годам опыта = 1, он получил прямоугольный прямоугольник. Из рисунка видно, что правое разделение чище (или лучше), чем левое, потому что оно четко разделяет синие и оранжевые точки на одной стороне разделения, и поэтому оно будет выбрано в качестве критерия разделения. по алгоритму. Алгоритм дерева решений будет следовать этой процедуре для всех разбиений, которые он создает, и выбирает только более чистые (поэтому мы называем его «жадным»!). Много раз мы не могли получить очень чистый узел в виде правильного прямоугольника, но я оставил его здесь просто в качестве примера.

1.4 Насколько большим должно быть дерево?

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

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

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

Плюсы

1. Очень легко интерпретировать, если деревья не очень большие.

2. Дерево само по себе является моделью!

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

Минусы

Создание ансамблевой модели (модели с несколькими деревьями) помогает повысить производительность, но деревья иногда не обеспечивают такой высокой точности, как некоторые расширенные методы.

Примечание:

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

Я надеюсь, что эта статья помогла вам понять деревья решений без какой-либо сложной математики!