Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Machine learning 决策树性能_Machine Learning_Decision Tree - Fatal编程技术网

Machine learning 决策树性能

Machine learning 决策树性能,machine-learning,decision-tree,Machine Learning,Decision Tree,如果我们不给出任何约束,例如max_depth,节点的最小样本数,决策树是否总能给出0个训练错误?还是取决于数据集?显示的数据集呢 编辑-可能会有一个分割,其精度低于父节点,对吗?根据决策树理论,即使经过多次拆分后的最终结果良好,也应该停止拆分!我说得对吗 决策树总是会找到一个提高准确性/分数的分割 例如,我在与您相似的数据上构建了一个决策树: 在没有两个样本具有相同的特征值但标签不同的情况下,决策树可以在任何数据集上获得100%的准确性 这就是决策树倾向于过度拟合的原因之一,特别是在许多功能

如果我们不给出任何约束,例如
max_depth
节点的最小样本数
,决策树是否总能给出0个训练错误?还是取决于数据集?显示的数据集呢

编辑-可能会有一个分割,其精度低于父节点,对吗?根据决策树理论,即使经过多次拆分后的最终结果良好,也应该停止拆分!我说得对吗


决策树总是会找到一个提高准确性/分数的分割

例如,我在与您相似的数据上构建了一个决策树:

在没有两个样本具有相同的特征值但标签不同的情况下,决策树可以在任何数据集上获得100%的准确性

这就是决策树倾向于过度拟合的原因之一,特别是在许多功能或具有许多选项的分类数据上

事实上,有时,如果分割带来的改进不够高,我们会阻止节点分割。这是有问题的,因为一些关系,如
y=x_1 xor x_2
不能用具有此限制的树来表示

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

  • 修剪树木。这基本上意味着您构建了整个树,但随后返回并修剪对模型性能贡献不足的节点
  • 使用a代替增益进行分割。基本上,这是一种表达这样一个事实的方式,即我们期望50%-50%的分割比10%-90%的分割改善更少
  • 设置超参数,例如
    max\u depth
    min\u samples\u leaf
    ,以防止树分裂过多

  • 谢谢,解释得很好。我想在这条评论中添加一个数字,但不能。所以你能看看这个吗?很难说清楚分裂的确切位置,因为基尼杂质和熵都很难让我们简单地想象。我想说的是,在这种情况下,以及在上述情况下,第一次拆分类似于问题中显示的输入(在决策树中拆分),它将拆分一个白色(+1)数据点,其余作为其子数据点,对吗?但我们最终会预测白色(+1)数据点为负值,对吗?那么我们就无法获得100%的训练准确率!!你能在这里回答这个问题吗?stackoverflow.com/questions/61364693/spliting-in-decision-tree