Чтобы решить, предлагать ли кому-либо ссуду или нет, банк часто просматривает последовательный список вопросов, чтобы выяснить, безопасно ли давать ссуду физическому лицу. Эти вопросы могут начинаться с простого: какой доход у человека? Если это 30–70 тысяч долларов, они переходят к следующему вопросу. Как долго они занимают свою нынешнюю работу? Если 1–5 лет, это приводит к их следующему вопросу: производят ли они платежи по кредитной карте? Если да, то они предлагают ссуду, а если нет - нет. Этот процесс в своей основной форме представляет собой дерево решений.

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

Так что все это значит?

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

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

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

Каждая модель CART представляет собой направленный ациклический граф. Эти графы имеют узлы, представляющие точки принятия решения по основной переменной с учетом предиктора, а ребра - это связи между узлами. В сценарии ссуды выше 30–7 долларов будет преимуществом, а «Годы работы» - узлами.

Поскольку цель дерева решений состоит в том, чтобы сделать оптимальный выбор в конце каждого узла, ему нужен алгоритм, способный делать именно это. Этот алгоритм известен как алгоритм Ханта, который одновременно является жадным и рекурсивным. Жадный означает, что на шаге он принимает наиболее оптимальное решение, и рекурсивный смысл, что он разбивает более крупный вопрос на более мелкие вопросы и решает их таким же образом. Решение о разделении на каждом узле принимается в соответствии с показателем, называемым чистота. Узел на 100% нечист, когда узел разделен поровну 50/50, и на 100% чист, когда все его данные принадлежат одному классу.

Чтобы оптимизировать нашу модель, нам нужно достичь максимальной чистоты и избежать примесей. Чтобы измерить это, мы используем примесь Джини, которая измеряет, как часто случайно выбранный элемент маркируется неправильно, если он был случайно помечен в соответствии с распределением. Он вычисляется путем сложения вероятности выбора элемента с меткой i, умноженной на вероятность (1 – pi) ошибки при классификации времени. Наша цель - довести его до 0, при котором он будет минимально нечистым и максимально чистым, попадая в одну категорию.

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

Information Gain = Entropy(parent) - Weighted Sum of Entropy(Children).

Хотя это отличная модель, она представляет большую проблему, поскольку приводит к модели, которая останавливается только тогда, когда вся информация находится в одном классе или атрибуте. За счет предвзятости разница для этой модели огромна и определенно приведет к чрезмерной подгонке. «Обучающиеся дерева решений могут создавать слишком сложные деревья, которые плохо обобщаются на основе данных обучения». Так как же Интернет бороться с этим? Мы можем либо установить максимальную глубину дерева решений (то есть, на сколько узлов оно будет глубже (у приведенного выше ссудного дерева глубина 3)), и / или альтернативой является указание минимального количества точек данных, необходимых для разделения. каждое решение.

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

Хотя у деревьев решений есть недостатки, у деревьев решений есть много преимуществ.

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

Я надеюсь, что эта статья помогла вам лучше понять деревья принятия решений. Для кодирования и получения дополнительных сведений о них я настоятельно рекомендую вам ознакомиться с документом Scikit-Learns о деревьях решений.