我已经实现了ID3(使用信息增益来选择最佳属性),并且它工作正常。但是,现在我正在尝试其他启发式方法,例如增益比率。正确计算增益比,但是当我使用增益比的值来分割树时,它确实变得奇怪而复杂。
您是否必须对增益比值做一些事情,或者只是在使用信息增益时使用它(即选择具有最大增益比的属性)?
答案 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/IV
是gain ratio,GR
是信息增益,IG
是信息值(又称内在值)) ,因此在IV
,IV = 0
未定义的情况下。这种情况的一个示例是,所有训练示例的属性值都相同。
现在,Quinlan在Induction of decision trees中定义了GR
,以抵消GR
对具有多个值的属性的偏见。但是,他还指出IG
可能偏向于GR
很小的属性。
为了克服这种偏见,昆兰指出,在选择具有最高增益比率的属性时,应该只考虑IV
的平均或更好的属性。
如果我理解正确,那么仅考虑具有平均或更好的IG
的属性有助于抵消对IG
很小的属性的偏见,因为IV
。 (有关更多信息,请参见here。)
也许这可以改善您的结果。