我试图计算条件熵以计算决策树的信息增益。我在Java中实现有点麻烦。示例可能如下所示:
X Y f(x)
1 0 A
1 0 A
0 1 B
在这个例子中,我将如何计算Java中的条件熵?我理解它背后的数学,但我对实现感到困惑。
答案 0 :(得分:0)
变量Y的条件熵:
(Y = 0的概率)(当Y = 0时f(x)的熵)+(Y = 1的问题)(当Y = 1时f(x)的熵)
在你的例子中:
(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