Дерево решений представляет собой структуру, подобную блок-схеме, в которой каждый внутренний узел представляет собой «проверку» атрибута (например, выпадает ли при подбрасывании монеты орел или решка), каждая ветвь представляет собой результат проверки, а каждый конечный узел представляет собой результат проверки. метка класса (решение принимается после вычисления всех атрибутов). Пути от корня к листу представляют собой правила классификации.
Давайте начнем с примера. Представьте, что я играю в теннис каждое воскресенье и всегда приглашаю друга пойти со мной.
Иногда мой друг приходит, а иногда нет. Для него это зависит от множества факторов, таких как погода, температура, влажность, ветер и т. д.
Я начинаю отслеживать эти факторы, а также погоду или нет, он появился, чтобы поиграть со мной.
И мои данные выглядят примерно так:
Я хочу использовать эти данные, чтобы предсказать, появится ли он сегодня. Интуитивно понятный способ сделать это — использовать дерево решений.
Давайте составим случайное дерево решений на основе этих факторов:
В этом дереве имеем:
- Узлы. Такие факторы, как температура, влажность и ветер, являются узлами.
- Ребра. Результатом разделения на следующий узел является ребро.
- Корневой: здесь узел Outlook является корневым узлом.
- Листья: конечные узлы, которые предсказывают результат. Узлы, окрашенные в красный и зеленый цвета, — это Листья.
Разделение атрибутов в дереве и то, какой атрибут будет разделен, зависит от некоторых индексов, а именно ID3, Gini, c4.5 и т. д. Теоретически наиболее часто используемым является ID3, а в Python индексом по умолчанию для разделения является Gini. Формула для разделения через ID3:
Приложения для дерева решений:
Деревья решений имеют естественную конструкцию «если… то… иначе…», что позволяет легко вписать их в программную структуру. Они также хорошо подходят для задач категоризации, когда атрибуты или признаки систематически проверяются для определения окончательной категории. Например, дерево решений можно эффективно использовать для определения вида животного.