首页 文章

构建决策树

提问于
浏览
1

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

  • 2

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

相关问题