Java 利用增益比实现ID3

Java 利用增益比实现ID3,java,decision-tree,id3,Java,Decision Tree,Id3,我已经实现了ID3(使用信息增益选择最佳属性),它工作得很好。然而,现在我正在试验其他的启发式方法,比如增益比。增益比的计算是正确的,但当我使用增益比的值来分割树时,它确实变得奇怪和复杂。 您必须对增益比值做些什么,还是在使用信息增益时使用它(即选择增益比最大的属性)?首先,请注意GR=IG/IV(其中GR是,IG是信息增益,IV是信息值(也称为内在值)),因此,如果IV=0,GR未定义。这种情况的一个例子是,所有训练示例的属性值都相同 现在,昆兰定义了GR,以抵消IG对多值属性的偏见。然而,他

我已经实现了ID3(使用信息增益选择最佳属性),它工作得很好。然而,现在我正在试验其他的启发式方法,比如增益比。增益比的计算是正确的,但当我使用增益比的值来分割树时,它确实变得奇怪和复杂。

您必须对增益比值做些什么,还是在使用信息增益时使用它(即选择增益比最大的属性)?

首先,请注意
GR=IG/IV
(其中
GR
是,
IG
是信息增益,
IV
是信息值(也称为内在值)),因此,如果
IV=0
GR
未定义。这种情况的一个例子是,所有训练示例的属性值都相同

现在,昆兰定义了
GR
,以抵消
IG
对多值属性的偏见。然而,他也指出,
GR
可能偏向于
IV
非常小的属性。
为了克服这种偏倚,Quinlan指出,在选择具有最高增益比的属性时,只应考虑其<代码> IG的属性是平均的或更好的。


如果我理解正确,只考虑具有平均值或更好的
IG
属性有助于抵消对具有非常小的
IV
属性的偏见,因为
IG谢谢,但没有准确回答我的问题:(