Анализ данных  •  14 октября  2022  •  5 мин чтения

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

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

Что такое дерево решений

Дерево решений — это один из алгоритмов машинного обучения. Алгоритм основан на правиле: «Если <условие>, то <ожидаемый результат>». Например:

Если абонент нажал цифру «1» после голосового приветствия, то звонок нужно перевести в отдел продаж.

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

Когда сотрудник банка получает заявку на выдачу кредита, он следует по дереву, чтобы решить, одобрить заявку или нет

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

Дерево принятия решений состоит из «узлов» и «листьев».

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

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

Листья — это конечные узлы с результатами проверки
Материал по теме:
Что такое машинное обучение

Где применяют метод

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

Например, у пользователя не прошёл платёж по карте через приложение банка, он пишет в чат службы поддержки. Сотрудник банка, который ответит на запрос, будет следовать алгоритму: например, первым делом спросит идентификатор платежа. Дальше дерево решений будет разветвляться в зависимости от того, знает пользователь идентификатор или нет.

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

Оператор техподдержки интернет-провайдера может обрабатывать звонки с помощью алгоритма дерева решений
Оператор техподдержки интернет-провайдера может обрабатывать звонки с помощью алгоритма дерева решений

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

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

1 — успех, да, ответ верный, пользователь вернул кредит;
0 — неудача, нет, ответ неверный, пользователь не вернул кредит.

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

1 — на следующий день был дождь;
0 — на следующий день не было дождя.

Можно проанализировать набор характеристик каждого дня: среднюю температуру, влажность, был ли дождь в прошедшие две недели. Алгоритм дерева решений будет искать в общем объёме данных те повторяющиеся условия, по которым проще всего разделить все дни на «1»‎ и «0»‎. Такие условия увеличивают вероятность нужного результата.

В машинном обучении, статистике и анализе данных с помощью метода дерева решений можно строить прогнозы
Например, дождь шёл 50 дней из 100. Из этих 50 дождливых дней в 40 случаях на следующий день тоже были осадки. Получается прогноз: если сегодня идёт дождь, то и завтра с вероятностью 80% он тоже будет
Самостоятельно разобраться, как анализировать данные с помощью дерева решений, непросто. Ещё сложнее научиться правильно интерпретировать и презентовать результаты своего исследования. Студенты курса «Аналитик данных» развивают эти навыки, решая реальные кейсы из разных профессиональных областей.

Какие задачи решает метод

В машинном обучении и аналитике данных дерево решений используют, чтобы:

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

2. Определить наиболее значимые условия
Алгоритм дерева решений помогает оценить важность признака (от англ. feature importance). То есть найти такие условия, которые важнее всего для заданной цели исследования. Такие условия находятся ближе всего к началу деления основной выборки. Если построить 100 деревьев для решения одной и той же задачи, то, скорее всего, в начале этих деревьев будут одинаковые условия.

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

Пример решения задачи с помощью дерева решений

Задача — сделать классификатор точек, которые относятся к окружности номер 1 или номер 2.

Для наглядности можно использовать Jupyter Notebook — интерактивную среду разработки и инструмент для анализа данных. Это поможет визуализировать, как работает дерево решений.

Визуализация задачи в Jupyter Notebook: две окружности, точки которых нужно классифицировать, и данные по этим точкам
Визуализация задачи в Jupyter Notebook: две окружности, точки которых нужно классифицировать, и данные по этим точкам

Описать окружность с центром в начале координат можно простым уравнением вида:

x² + y² = R².

С этим выражением можно отразить зависимость между координатами x и y и однозначно определить отношение точки к окружности 1 или 2.

Так будет выглядеть модель с данными о точке при использовании дерева решений ограниченной глубины в три разделения
Так будет выглядеть модель с данными о точке при использовании дерева решений ограниченной глубины в три разделения
Можно увидеть разделение по каждому отдельному фактору, однако у модели будет явная ошибка — три разделения формируют три линии.
Так модель будет выглядеть на отложенной выборке
Так модель будет выглядеть на отложенной выборке
То есть в этой задаче недостаточно выделить внутреннюю окружность, потому что получится сектор точек, который ошибочно отнесён к внешней окружности.
Если визуализировать в Jupyter Notebook разделяющую поверхность, можно увидеть проблему
Если визуализировать в Jupyter Notebook разделяющую поверхность, можно увидеть проблему
Эту проблему легко решить, добавив третью переменную — сумму квадратов значений x и y.
Так будут выглядеть данные по точкам с третьей переменной
Так будут выглядеть данные по точкам с третьей переменной
Построив модель на сформированных данных, можно увидеть результат модели на новых данных.
Теперь для модели достаточно одного разделения по переменной r для однозначного разделения

Преимущества и недостатки метода

Преимущества

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

Недостатки

Ограниченное применение
Простота метода — одновременно преимущество и недостаток. Из-за этого применение дерева решений ограниченно. Алгоритм не подходит для решения задач с более сложными зависимостями.

Склонность к переобучению
Модель дерева решений подстраивается под те данные, которые получает, и ищет характеристики, которые увеличат вероятность. Дерево создаёт подгруппы элементов до тех пор, пока финальная подгруппа не станет однородной по всем признакам или не даст идеальный прогноз. Из-за этого алгоритм не сможет сделать прогноз на характеристики, которых не было в обучающей выборке.

Делать прогнозы для значений, которых не было в выборке, могут линейные модели, а деревья решений — нет
Делать прогнозы для значений, которых не было в выборке, могут линейные модели, а деревья решений — нет, так как этот метод основан на усреднении значений

Как создать дерево решений

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

В рамках Python, например, есть бесплатная библиотека стандартных моделей машинного обучения scikit-learn, в которой доступен класс Decision Tree с предподготовленным кодом.

Основные этапы построения дерева решений

Перед построением дерева решений с помощью предподготовленного кода аналитики должны:

1. Собрать данные и сделать разведочный анализ.
Сначала специалисты анализируют данные и ищут общие закономерности и аномалии. Затем формируют гипотезу о формате модели — почему именно дерево решений подойдёт для задачи. На этом этапе также строят гипотезы о влиянии факторов на зависимую переменную и пайплайн предподготовки данных.

2. Провести предподготовку.
Данные приводят к нужному формату и чистят их от аномалий. Есть специальные алгоритмы и подходы для препроцессинга данных:

● заполнение пропусков средними, медианными значениями,

● нормировка показателей относительно друг друга,

● удаление аномалий при необходимости,

● категоризация переменных.

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

4. Составить дерево решений и запустить обучение модели.
На этом этапе в библиотеку загружают данные или ту часть, которая осталась после формирования отложенной выборки, и условия задачи. Правила «если …, то …»‎ генерируются автоматически во время обучения модели.

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

Совет эксперта

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

Статью подготовили:

Александр Толмачёв
Ozon.Fintech
Head of analytics, преподаватель ВШЭ по программе «Анализ данных и машинное обучение», Master in Marketing Analytics в Сколково
Яндекс Практикум
Редактор

Дайджест блога: ежемесячная подборка лучших статей от редакции

Поделиться

Успейте начать учебу в Практикуме до конца ноября со скидкой 20%

Mon Jul 15 2024 20:49:11 GMT+0300 (Moscow Standard Time)