我试图在Java中使用与熵和信息增益相关的一些微积分,我使用如下公式:info_gain = infogain - nr1 / nr2 * nr3。
nr1,nr2,nr3和infogain是双打。
问题是nr1 / nr2 * nr3的结果是corect。但是当我做减法时,我会得到一些难看的结果。
例如,nr1 / nr2 * nr3为0.574716,并且infogain的初始值为0.575306。 当我做减法时,我得到0.000589。 这不正确或者不应该返回(我在纸上做了微积分)。
我尝试使用MathContext.DECIMAL64和divide(nr,10,RoundingMode.HALF_UP)来使用BigDecimal。
那么,是否有任何可能从0.001以上得到结果? (或类似的东西,但不是0.000589)。
答案 0 :(得分:2)
嗯,0.575306 - 0.574716实际上是0.00059。