决策树 Sklearn -树的深度和准确性

sko*_*din 1 python decision-tree scikit-learn

我正在使用 sklearn 将决策树应用于数据集

在 Sklearn 中有一个参数来选择树的深度 - dtree = DecisionTreeClassifier(max_depth=10)。

我的问题是 max_depth 参数如何帮助模型。高/低 max_depth 如何帮助更准确地预测测试数据?

Cih*_*han 10

max_depth顾名思义:您允许树生长到的最大深度。你允许的越深,你的模型就会变得越复杂。

对于训练误差,很容易看出会发生什么。如果增加max_depth,训练误差将始终下降(或至少不会上升)。

对于测试错误,它变得不那么明显。如果你设置的max_depth 太高,那么决策树可能会简单地过度拟合训练数据,而不会像我们想要的那样捕获有用的模式;这会导致测试误差增加。但是如果你把它设置得太低,那也不好;那么您可能给决策树的灵活性太小,无法捕获训练数据中的模式和交互。这也会导致测试误差增加。

在太高和太低的极端之间有一个很好的黄金点。通常,建模者会将 视为max_depth超参数,并使用某种带有交叉验证的网格/随机搜索来找到 的好数字max_depth