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

Обзор

Дерево решений - это ориентированный ациклический граф (DAG). Это означает, что вся информация течет в одном направлении и никогда не возвращается сама по себе. Это означает, что невозможно обойти весь граф с одним фрагментом информации.

Дерево решений начинается с единственного узла (корневого узла). Этот узел как минимум 2 исходящих ребра, ведущих к другим узлам. Каждый узел (кроме корня) имеет ровно одно входящее ребро (ветвь). Если этот узел также имеет выходящую кромку, то он называется внутренним узлом. Если этот узел не имеет выходящего ребра, он называется листовым или конечным узлом.

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

Обучение дереву решений

Есть четыре шага к созданию дерева решений

  1. Мы хотим тренироваться с выборкой, которая содержит как функции, так и целевую переменную (непрерывную или дискретную).
  2. Сделайте разбиение по предсказателю. Прогнозирующий фактор выбирается с использованием либо показателей получения информации, либо индекса Джини.
  3. Дерево выращивают до тех пор, пока не будут достигнуты некоторые критерии остановки.
  4. Протестируйте дерево с невидимыми данными и оцените успешность прогнозов.

Давайте начнем с шага № 2. В общем, при построении дерева решений каждая функция и точка разделения тестируются с помощью какой-то функции стоимости; выбирается комбинация с наименьшей стоимостью. Существует два типичных способа разделения в дереве решений:

  • ID3 (итеративный дихотомайзер 3), который использует энтропию и информационный прирост
  • CART (деревья классификации и регрессии), использующие индекс Джини

Энтропия и получение информации

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

На рисунке ниже мы видим, что корневой узел имеет беспорядочный набор данных с примерно 50% зеленого и 50% красного. Сам по себе этот набор не очень помогает при прогнозировании. Согласно некоторому условному выражению, данные затем разделяются на два узла. Узел слева содержит в основном зеленый цвет, а узел справа - в основном красный. Это было хорошее разбиение для дерева решений, поскольку оно дает нам больше возможностей для прогнозирования из-за более низкой энтропии во втором слое. Если точка данных находится слева, мы можем лучше предсказать, что она зеленая, чем когда эта точка данных находится в первом узле. Расщепления добавляются к дереву решений только в том случае, если это уменьшает энтропию.

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

Предпочтительно использовать дерево решений с приростом информации, если целевая переменная имеет большое количество значений, но меньшее количество в этих значениях.

Индекс Джини

Индекс Джини - еще один показатель, используемый для определения расщеплений в дереве решений. Индекс Джини - это мера вероятности того, что случайно выбранное значение будет неправильно классифицировано. Индекс Джини - это число от 0 до 1, где 0 указывает, что все значения правильно классифицированы, 0,5 указывает на равный разброс по классам, а 1 указывает на случайный разброс. Формула для индекса Джини выглядит следующим образом.

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

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