Согласно Википедии, Энтропия относится к беспорядку или неопределенности.

Определение: Энтропия - это совокупность примесей, беспорядка или неопределенности. примеров.

Что в основном делает энтропия?

Энтропия определяет, как дерево решений решает разделить данные. Фактически это влияет на то, как дерево решений рисует свои границы.

Уравнение энтропии:

Что такое получение информации и почему это важно в дереве решений?

Определение: Прирост информации (IG) измеряет, сколько «информации» дает нам функция о классе.

Почему это важно?

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

Уравнение получения информации:

Чтобы понять, что такое энтропия и получение информации, давайте нарисуем простую таблицу с некоторыми функциями и метками.

Здесь, в этом table,

  • Grade, Bumpiness и Speed Limit - это функции, а Speed это метка.
  • Всего четыре наблюдения.

Во-первых, давайте поработаем с Grade функцией

В столбце Grade четыре значения, которым соответствуют четыре метки.

Давайте рассмотрим все метки как родительские node.

SSFF => parent node

Итак, какова энтропия этого родительского узла?

Давайте разберемся,

во-первых, нам нужно выяснить часть примеров, которые присутствуют в родительском узле. В родительском узле есть 2 типа (медленный и быстрый) примеров, а родительский узел содержит всего 4 примера.

1. P(slow) => fraction of slow examples in parent node
2. P(fast) => fraction of fast examples in parent node

давай узнаем P(slow),

p (медленно) = нет. медленных примеров в родительском узле / общее количество примеров

Точно так же доля быстрых примеров P(fast) будет,

Итак, энтропия родительского узла:

Entropy(parent) = - {0.5 log2(0.5) + 0.5 log2(0.5)}
                = - {-0.5 + (-0.5)}
                = 1  

Итак, энтропия родительского узла равна 1.

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

Сначала давайте проверим, разделен ли родительский узел на Grade или нет.

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

Чтобы узнать информационное наполнение Grade функции, нам нужно виртуально разделить родительский узел на Grade функцию.

Теперь нам нужно узнать энтропию обоих дочерних узлов.

Энтропия правого дочернего узла(F) равна 0, потому что все примеры в этом узле принадлежат к одному классу.

Давайте узнаем энтропию левого узла SSF:

В этом узле SSF присутствуют два типа примеров, поэтому нам нужно определить долю медленного и быстрого примера отдельно для этого узла.

P(slow) = 2/3 = 0.667
P(fast) = 1/3 = 0.334

So,

Entropy(SSF) = - {0.667 log2(0.667) + 0.334 log2(0.334)}
             = - {-0.38 + (-0.52)}
             = 0.9

мы также можем узнать энтропию, используя scipy library.

Теперь нам нужно найти Entropy(children) со средневзвешенным значением.

Total number of examples in parent node: 4
  "      "    "     "     "   left child node: 3
  "      "    "     "     "   right child node: 1

Формула энтропии (дочерние элементы) с взвешенными средн. :

[Weighted avg]Entropy(children) = 
(no. of examples in left child node) / (total no. of examples in parent node) * (entropy of left node) 
+ 
(no. of examples in right child node)/ (total no. of examples in parent node) * (entropy of right node)

Энтропия (дети) с взвешенными средн. равно = 0,675

So,

Information gain(Grade) = 1 - 0.675
                        = 0.325

Получение информации от Grade функции 0.325.

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

Получение информации от Bumpiness

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

энтропия (неровная) и энтропия (гладкая) равны 1.

Итак, энтропия (дети) с взвешенными средн. для Bumpiness:

[weighted avg.]entropy(children) = 2/4 * 1 + 2/4 * 1
                                 = 1

Следовательно,

Information gain(Bumpiness) = 1 - 1
                            = 0

До сих пор нам необходимо сбор информации:

IG(Grade) => 0.325
IG(Bumpiness) => 0

Получение информации от SpeedLimit

энтропия левого дочернего узла будет 0, потому что все примеры в этом узле принадлежат к одному классу.

Точно так же энтропия правого узла равна 0.

Следовательно, Энтропия (дочерние элементы) с взвешенными средн. для SpeedLimit:

[weighted avg.] entropy(children) = 2/4 *0 + 2/4 *0
                                  = 0

Итак, получение информации от SpeedLimit:

Information gain(SpeedLimit) = 1 - 0
                             = 1

Получение окончательной информации от всех функций:

IG(Grade) => 0.325
IG(Bumpiness) => 0
IG(SpeedLimit) => 1

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

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

Присоединяйтесь к Coinmonks Telegram group и узнайте о криптовалютной торговле и инвестировании

Также прочтите

Получайте лучшие предложения по программному обеспечению прямо в свой почтовый ящик