构建决策树

时间:2016-04-06 17:09:31

标签: python machine-learning decision-tree

在构建决策树时,在每个节点处,我们选择最佳特征,然后选择该特征的最佳分割位置。 但是,当当前节点/集中的样本的最佳特征的所有值均为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))

}

1 个答案:

答案 0 :(得分:2)

这根本不可能。您应该选择阈值,这会导致模型确定性的最大变化。使用将每个实例放在同一分支中的阈值可以使模型确定性增加0,因此不是最佳分割。当且仅当杂质/熵在此特征中已经为0时才会发生这种情况,但这是在决策树中创建叶子的停止标准。

相关问题