Расчет условной энтропии для дерева решений
Я пытаюсь вычислить условную энтропию, чтобы рассчитать прирост информации для деревьев решений. У меня небольшие проблемы с реализацией на 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