起初,我做了一个 GridsearchCV,发现最好的参数是 100,即只有 100 棵树的随机森林。我的火车有 80,000 行和 669 列。我的测试集有 20,000 行和 669 列。
这么少的树怎么可能就够了?
通过其他帖子,这似乎是您对随机森林的 n_estimators 没有清晰的直觉。
我将假设您指的是 n_estimators (来自另一个问题)。n_estimators 是您的“森林”拥有的树木数量。不是你树的深度。那是另一个参数。
如果您指的是 max_depth = 100, 100 分割可能很多。随意绘制一棵树,看看它在做什么。看到这个链接
行数和列数不一定重要,重要的是问题的复杂性。
我的 2 美分:我喜欢挑战 max_leaf_nodes(在本例中为 5)然后将其可视化。我建议从 3 开始,然后稍微增加它(这同样适用于你的随机森林)。一般来说,在 5 左右,我看到过拟合。对于您的大型数据集,您可能需要更多(即 max_leaf_nodes = 10?)。
为什么?或者你的问题的答案......那些基于树的算法能够非常快速地捕捉高度非线性问题,但随后开始过度拟合。