Дерево принятия решений — широко используемый алгоритм машинного обучения, который поддается контролю. Он хорош тем, что в его основе лежит эффективный интуитивный поиск решений. Его часто применяют в задачах по классификации.
Дерево принятия решений состоит из 2-х важных компонентов:
-
Корневой узел дерева — это самый главный верхний узел дерева, в котором содержится основной атрибут решения. Это узел принятия решения, который разделяется на дополнительные подузлы. По сути, это основной вопрос или задача, которую необходимо решить.
-
Подузел дерева — это промежуточный компонент, который не содержит решения задачи или ответа на вопрос, однако содержит «направление», куда двигаться, чтобы найти решение задачи.
-
Лист или терминальный узел — это узел, который не разделяется на дополнительные подузлы и не содержит никаких вопросов. По сути, это финальный узел, который содержит решение задачи. То есть, начиная поиск решения с корневого узла, мы движемся к листьям дерева.
Дерево принятия решений
Каждое вероятное решение задачи формирует атрибут узла, наиболее важный атрибут помещается в корневой узел. Когда нужна оценка какой-то задачи, тогда поиск решения начинается с корневого узла и продолжается вниз по дереву. Поиск происходит по подузлам по определенному пути, который соответствует нашим условиям и потенциальному «решению». Поиск по подузлам будет продолжаться до тех пор, пока не будет найдено верное решение в одном из подузлов.
Алгоритм дерева принятия решений люди используют и в жизни, просто не все понимают, что это именно он. Рассмотрим жизненную ситуацию, когда какой-то человек просит у вас машину на один день покататься. Для того чтобы решить, дать ему машину или нет, у себя в голове вы ответите на несколько вопросов. Просьба одолжить машину — это «корневой узел дерева принятия решений». Каждый вопрос, возникающий в голове, — это «подузел дерева», который помогает принять решение. В этом случае дерево принятия решений будет таким:
-
Кто просит машину? Если совершенно незнакомый или малознакомый человек, тогда машины ему не видать, и алгоритм поиска решений заканчивает собственную работу. Если просит близкий человек, тогда переходим к следующему вопросу-«подузлу».
-
Просит первый раз или нет? Если человека вы знаете хорошо и он просит машину первый раз, тогда вы даете ему машину покататься. Если человек просит уже не первый раз, тогда переходим к следующему вопросу.
-
В каком виде была возвращена машина? Если в прошлый раз машина была возвращена вовремя, чистая, да еще и с полным баком топлива, тогда вы даете ему машину покататься. Если в прошлый раз машина была возвращена грязной, с пустым баком и даже поцарапанная или поврежденная, тогда вы не одолжите автомобиль.
Конечно, если в реальной жизни одалживать автомобиль, вопросов будет намного больше, но алгоритм работы дерева принятия решений здесь видно. Люди постоянно что-то выбирают или что-то решают, поэтому подобный алгоритм используется практически каждый день. Разработчики увидели его простоту и эффективность, поэтому решили адаптировать в машинном обучении.
Преимущества дерева принятия решений
Преимущества дерева принятия решений очевидны:
-
Этот алгоритм используется в прогнозируемых задачах, где исход очевиден — либо «да», либо «нет», — но зависит от каких-то условий. Как с машиной в примере: заранее было ясно, что вы ее либо одолжите, либо нет, но решение зависело от ряда ответов на вопросы.
-
Нетребовательный алгоритм. Обучить нейронную сеть по такому алгоритму требует меньше усилий, так как он прост в реализации.
-
Скорость и эффективность, по сравнению с другими алгоритмами. «Движение» по дереву принятия решений не требует каких-то сложных вычислений в системе, поэтому происходит очень быстро, а решение в любом случае будет найдено.
-
Алгоритм не содержит ошибок. Алгоритм решает только: «да» или «нет». Выбор зависит от условий. Условия программируются людьми, верные ответы также программируются людьми. Ошибкам просто негде взяться.
Где применяются деревья принятия решений?
Дерево принятия решений — это алгоритм, который можно адаптировать под разные сферы человеческой деятельности. Это простой и эффективный инструмент для того, чтобы сделать интеллектуальную выборку информации и решить какую-то задачу.
Дерево принятия решений применяется:
-
В банковской сфере. По такому алгоритму банк определяет кредитоспособность физических и юридических лиц.
-
В промышленной сфере. С помощью этого алгоритма проверяется качество продукции и выявляются дефекты в готовых товарах и изделиях.
-
В медицинской сфере. Дерево принятия решений помогает поставить правильный диагноз пациенту.
-
В молекулярной биологии. При помощи этого алгоритма вычисляется строение аминокислот.
-
В торговой сфере. Дерево помогает правильно классифицировать товары и клиентов.
-
В бизнесе. Дерево помогает правильно расставлять приоритеты в принятых решениях.
Дерево принятия решений легко справляется с большими и небольшими задачами, поэтому сфера его применения достаточно широка и практически ничем не ограничивается.
Заключение
Дерево принятия решений представляет собой алгоритм поиска ответа на вопрос. В обычной жизни люди «прорабатывают» его в голове, а программисты прорабатывают его в коде. Алгоритмы для нейросетей и машинного обучения легче всего писать на Python. Для этого в нем есть несколько специализированных библиотек, например:
-
«pandas»,
-
«numpy»,
-
«matplotlib.pyplot»,
-
и др.
В следующих статьях мы покажем, как построить дерево решений на языке программирования Python.