在构建决策树时,在每个节点处,我们选择最佳特征,然后选择该特征的最佳分割位置。 但是,当当前节点/集中的样本的最佳特征的所有值均为0时,我该怎么办?所有样本保持分组到一侧(< = 0分支),并且发生无限循环。 例如:
#left: 1500, #right: 0
然后,
#left: 1500, #right: 0
依旧......
仅供参考,我正在遵循以下伪代码。
GrowTree(S)
if (y_i = C for all i in S and some class C) then {
return new leaf(C)
} else {
choose best splitting feature j and splitting point beta (*)
I choose the one that gives me the max entropy drop
S_l = {i : X_ij < beta}
S_r = {i : X_ij >= beta}
return new node(j, beta, GrowTree(S_l), GrowTree(S_r))
}
答案 0 :(得分:2)
这根本不可能。您应该选择阈值,这会导致模型确定性的最大变化。使用将每个实例放在同一分支中的阈值可以使模型确定性增加0,因此不是最佳分割。当且仅当杂质/熵在此特征中已经为0时才会发生这种情况,但这是在决策树中创建叶子的停止标准。