Понять, как работает Decision Tree Classifier на простом языке и с минимальными математическими уравнениями. Выясните, как работают примеси Джини и получение информации с нуля.

Сравните с моделями машинного обучения, такими как нейронная сеть, я подумал, что классификатор дерева решений должен быть самым простым. Но я ошибался, эта модель немного сложнее, чем я думал. Эта модель также закладывает основу для других продвинутых моделей, таких как LightBGM и Random Forest Decision Tree. Итак, я потратил некоторое время на его изучение и попытался понять, как работает Decision Tree Classifier.

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

Модель работает очень похоже на то, как человеческий разум классифицирует объекты в реальном мире.

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

  1. Какого цвета это выглядит?
  2. Какого размера этот фрукт?

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

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

  1. Какой вопрос задать в первую очередь? (на какой столбец функций настроить таргетинг)
  2. Какой вопрос мне задать? (что такое правило разделения данных)

Ключ классификатора дерева решений - построить дерево решений, подобное показанному выше.

Тарелка с 3 фруктами - примерные данные

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

Чтобы решить вопросы: Как мне узнать, какой вопрос задать первым? Или сначала задайте вопрос о цвете или диаметре? и установить правильную точку разделения данных?

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

Википедия сообщит, что метрика для измерения разнообразия называется примесь Джини.

Что такое примесь Джини и почему она работает так

Например, перед вами два фруктовых массива. Какой фруктовый массив разнообразнее?

Очевидно, наш человеческий мозг быстро найдет ответ на массив А. Но как мы можем измерить разнообразие количественным способом? Я бы посоветовал вам остановиться здесь и попытаться придумать свое решение, прежде чем двигаться дальше.

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

Например, в фруктовом массиве A.

Затем просуммируйте квадраты вероятностей.

Теперь в массиве фруктов B. с той же логикой вы получите сумму квадратов вероятностей как 0,5.

Видеть? более разнообразный массив даст более низкий результат. А Gini Impurity - это просто:

Теперь вы можете спросить, зачем возводить вероятность в квадрат? без квадрата массивы A и B сгенерируют тот же результат. (вы можете попробовать).

Используйте сбор информации, чтобы определить правильный вопрос

Вернемся к фруктовой тарелке, мы можем произвести примесь Джини 0,64 в исходном состоянии.

Затем предположим, что у нас есть вопрос, который нужно задать, этот вопрос разделит набор данных на два подмножества.

В реальной программе мы можем использовать цикл 2-for для проверки всех ячеек и получения всех примесей Джини #.

А что такое получение информации? Информационный прирост - это измерение, которое используется для измерения степени уменьшения неопределенности с помощью вопроса.

В приведенном выше примере. Получение информации с помощью вопроса «Диаметр плода ≥3?» является:

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

Постройте дерево решений рекурсивно

Теперь, когда у вас есть решение Gini and Info Gain, вы можете рекурсивно применять процесс к вашему набору данных до тех пор, пока этот процесс не перестанет генерировать дополнительный Data Gain. В приведенном выше примере правый дочерний элемент содержит только виноград. вы больше не можете уменьшить нечистоту (или получить информацию), потому что нет необходимости задавать какие-либо вопросы.

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

Ссылки и код