【发布时间】:2014-05-27 01:05:36
【问题描述】:
我正在尝试计算条件熵以计算决策树的信息增益。我在 Java 中的实现有点麻烦。一个示例可能如下所示:
X Y f(x)
1 0 A
1 0 A
0 1 B
鉴于这个例子,我将如何在 Java 中计算条件熵?我了解它背后的数学原理,但对实现感到困惑。
【问题讨论】:
-
你能给出数学算法吗?如果可以,那我可以帮你
我正在尝试计算条件熵以计算决策树的信息增益。我在 Java 中的实现有点麻烦。一个示例可能如下所示:
X Y f(x)
1 0 A
1 0 A
0 1 B
鉴于这个例子,我将如何在 Java 中计算条件熵?我了解它背后的数学原理,但对实现感到困惑。
【问题讨论】:
变量 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
【讨论】: