决策树Sklearn -Depth树和准确性

时间:2018-03-14 23:27:36

标签: python scikit-learn decision-tree

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

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

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

2 个答案:

答案 0 :(得分:4)

max_depth就是这个名字所暗示的:你允许树长到的最大深度。您允许的越深,您的模型就越复杂。

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

对于测试错误,它不太明显。如果您将max_depth 设置得太高,那么决策树可能会过度拟合训练数据,而不会像我们希望的那样捕获有用的模式;这将导致测试错误增加。但如果你设置太低,那也不好;那么你可能会给决策树提供太少的灵活性来捕获训练数据中的模式和交互。这也会导致测试错误增加。

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

答案 1 :(得分:0)

理想参数实际上取决于您的数据。太低会导致不合适,太高会导致过度拟合。最好通过实验来寻找最佳位置。但是,决策树总是会简单地记住您的数据集。

此外,您可能需要查看GridSearchCV。它使实验过程自动化并找到理想的参数。