使用增益比率实现ID3

时间:2014-12-29 16:33:08

标签: java decision-tree id3

我已经实现了ID3(使用信息增益来选择最佳属性),并且它工作正常。但是,现在我正在尝试其他启发式方法,例如增益比率。正确计算增益比,但是当我使用增益比的值来分割树时,它确实变得奇怪而复杂。
您是否必须对增益比值做一些事情,或者只是在使用信息增益时使用它(即选择具有最大增益比的属性)?

1 个答案:

答案 0 :(得分:0)

首先,请注意class Foo { static staticVar = 0; // Static data member constructor() { let normalVar = 0; // Normal variable console.log('Foo.staticVar = ', ++Foo.staticVar); console.log('normalVar =', ++normalVar); } } var a = new Foo(); var b = new Foo(); var c = new Foo();(其中GR = IG/IVgain ratioGR是信息增益,IG是信息值(又称内在值)) ,因此在IVIV = 0未定义的情况下。这种情况的一个示例是,所有训练示例的属性值都相同。

现在,Quinlan在Induction of decision trees中定义了GR,以抵消GR对具有多个值的属性的偏见。但是,他还指出IG可能偏向于GR很小的属性。
为了克服这种偏见,昆兰指出,在选择具有最高增益比率的属性时,应该只考虑IV的平均或更好的属性。

如果我理解正确,那么仅考虑具有平均或更好的IG的属性有助于抵消对IG很小的属性的偏见,因为IV。 (有关更多信息,请参见here。)

也许这可以改善您的结果。