决策树性能,机器学习

Decision Tree Performance, ML

如果不给max_depthminimum number of samples for nodes等约束,决策树总能给出0训练误差吗?还是取决于数据集?显示的数据集呢?

edit- 拆分可能会导致精度低于父节点,对吗?根据决策树的理论,即使多次分裂后的最终结果很好,也应该停止分裂!我对么?

决策树总会找到改进的拆分 accuracy/score

例如,我已经根据与您类似的数据构建了决策树:

如果没有 2 个具有相同特征值但标签不同的样本,决策树可以在任何数据集上达到 100% 的准确率。

这是决策树容易过度拟合的原因之一,尤其是在许多特征或具有许多选项的分类数据上。

确实,有时,如果拆分产生的改进不够高,我们会阻止节点拆分。这是有问题的,因为某些关系,例如 y=x_1 xor x_2 不能用具有此限制的树来表达。

通常情况下,树不会因为无法在训练数据上改进模型而停止。 你看不到 100% 准确率的树的原因是因为我们使用技术来减少过度拟合,例如:

  1. 修剪树木like this relatively new example。这基本上意味着您构建了整棵树,然后返回并修剪对模型性能贡献不足的节点。
  2. 使用 ratio 而不是增益进行拆分。基本上,这是一种表达我们期望 50%-50% 拆分比 10%-90% 拆分改进更少这一事实的方式。
  3. 设置超参数,例如max_depthmin_samples_leaf,以防止树分裂太多。