【发布时间】:2020-08-05 05:05:52
【问题描述】:
如果不给max_depth、minimum number of samples for nodes等任何约束条件,决策树能一直给0训练误差吗?还是取决于数据集?显示的数据集呢?
edit- 有可能进行拆分,导致准确性低于父节点,对吧?根据决策树的理论,即使多次分裂后的最终结果可能很好,它也应该停止分裂!我对么?
【问题讨论】:
标签: machine-learning decision-tree
如果不给max_depth、minimum number of samples for nodes等任何约束条件,决策树能一直给0训练误差吗?还是取决于数据集?显示的数据集呢?
edit- 有可能进行拆分,导致准确性低于父节点,对吧?根据决策树的理论,即使多次分裂后的最终结果可能很好,它也应该停止分裂!我对么?
【问题讨论】:
标签: machine-learning decision-tree
决策树总是会找到一个可以提高准确性/分数的分割
例如,我在数据上构建了一个与您类似的决策树:
在没有 2 个具有相同特征值但不同标签的样本的任何数据集上,决策树可以达到 100% 的准确度。
这是决策树倾向于过度拟合的原因之一,尤其是在许多特征或具有许多选项的分类数据上。
确实,有时,如果拆分带来的改进不够高,我们会阻止节点拆分。这是有问题的,因为某些关系,例如 y=x_1 xor x_2 不能由具有此限制的树表示。
通常情况下,一棵树不会停止,因为他无法在训练数据上改进模型。 您看不到 100% 准确度的树的原因是我们使用了一些技术来减少过度拟合,例如:
max_depth 和min_samples_leaf,以防止树分裂过多。【讨论】:
x<=T,其中T 是一个阈值,它的左侧几乎只需要一个标签。例如,在与上述类似的数据上,我得到x<=-0.04。这为我们提供了一个您几乎 100% 正确的节点(因此它非常纯净),以及 1 个您更差的较小节点。在您提供的示例中,我猜 0.7-0.8 之间的某个位置是最佳的