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

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

Как каждый критерий находит оптимальное разделение? И каковы различия между ними обоими? В этом посте мы собираемся ответить на эти вопросы. Сначала объясняются критерии джини и энтропия и их различия, а затем приводится практический пример, сравнивающий их оба.

Кроме того, если вас интересуют деревья решений, этот блог о ансамблях деревьев может вас заинтересовать.

Джини

Примесь Джини рассчитывается по следующей формуле:

Где pj — вероятность класса j.

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

Минимальное значение индекса Джини равно 0. Это происходит, когда узел чистый, это означает, что все содержащиеся в узле элементы относятся к одному уникальному классу. Поэтому этот узел больше не будет разделен. Таким образом, оптимальное разделение выбирается по признакам с меньшим индексом Джини. Более того, он получает максимальное значение, когда вероятность двух классов одинакова.

Энтропия

Энтропия рассчитывается по следующей формуле:

Где, как и прежде, pj — вероятность класса j.

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

Джини против энтропии

Индекс Джини и энтропия имеют два основных отличия:

  • Индекс Джини имеет значения внутри интервала [0, 0,5], тогда как интервал энтропии равен [0, 1]. На следующем рисунке представлены оба из них. Индекс Джини также был представлен умноженным на два, чтобы увидеть конкретные различия между ними, которые не очень значительны.

Индекс Джини и энтропия

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

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

Таким образом, мы можем проанализировать влияние на время обучения. Кроме того, каждая группа состоит из 5 наборов данных, где количество выборок варьируется (100, 1 000, 10 000, 100 000 и 200 000).

На следующих графиках ось X — это количество выборок набора данных, а ось Y — время обучения.

Как видно, время обучения при использовании энтропийного критерия значительно выше. Кроме того, весьма заметно влияние характера признаков. Больше всего страдают избыточные функции, что делает время обучения на 50% больше, чем при использовании информативных функций. Принимая во внимание, что использование случайных функций или повторяющихся функций оказывает аналогичное влияние. Различия во времени обучения более заметны в больших наборах данных.

Полученные результаты

Кроме того, мы также собираемся сравнить полученные результаты по обоим критериям. Для этой цели мы собираемся использовать наборы данных, используемые при анализе времени обучения, в частности, с 1000 выборками. Кроме того, перекрестная проверка также использовалась с k=3. В следующей таблице показаны полученные результаты, которые представляют собой F-Score.

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

Наконец, если мы сравним строение деревьев, то увидим, что они разные. Для этой цели мы создали новый синтетический набор данных с 400 выборками и 4 функциями. Полученные результаты имеют F-Score 0,93 для обоих критериев, но результирующее дерево отличается. Кроме того, первое разделение двух деревьев такое же, как и ветвь справа от дерева, однако остальная часть дерева отличается.

Хотя деревья не равны, полученный результат практически идентичен.

Выводы

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

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

Не существует жесткого и быстрого правила, где какие показатели использовать, но обычно

Используется энтропия —

  • Когда набор данных сравнительно небольшой по размеру
  • Время, необходимое для моделирования, не является основным ограничением
  • Глубина дерева относительно небольшая
  • Случайный лес не имеет большого количества выборок.
  • Желательно больше в бустинге

Примесь Джини

  • Когда объем данных огромен
  • Необходимо выполнить моделирование в короткие сроки
  • Дерево имеет очень большую глубину
  • Случайный лес с очень большим размером выборки
  • Желательно больше в мешках.

Рекомендации

[1] https://en.wikipedia.org/wiki/Decision_tree_learning#Gini_impurity

[2] https://towardsdatascience.com/gini-index-vs-information-entropy-7a7e4fed3fcb

Спасибо, что читаете, ребята, на сегодня это все.

Увидимся в следующий раз!