Расчет условной энтропии для дерева решений

Я пытаюсь вычислить условную энтропию, чтобы рассчитать прирост информации для деревьев решений. У меня небольшие проблемы с реализацией на Java. Пример может выглядеть так:

 X   Y  f(x)   
 1   0   A
 1   0   A
 0   1   B

Учитывая этот пример, как бы я пошел о вычислении условной энтропии в Java? Я понимаю математику за этим, но просто запутался в реализации.

Пример можно найти здесь: http://en.wikipedia.org/wiki/Conditional_entropy

1 ответ

Условная энтропия для переменной Y:

(Вероятность Y = 0) (Энтропия f(x), когда Y = 0) + (Вероятность Y = 1) (Энтропия f(x), когда Y = 1)

В вашем примере:

(2/3) (-1 (2/2 * log (2)) + (1/3) * (- 1 (1/1 * log (1)) = (2/3) * 0 + (1 / 3) * 0 = 0

т.е. это плохой пример, потому что ваша условная энтропия всегда равна 0. Может быть, это поможет: http://www.onlamp.com/pub/a/php/2005/03/24/joint_entropy.html?page=3

Другие вопросы по тегам