决策树的网格搜索参数

Grid search parameters for Decision Tree

我正在使用决策树分类器,我想使用 cv 来找到可能的最佳参数。我可以指定为:

     parameter_grid = {
    'max_depth': range(2, 10),
    'max_features': range(2, 14)}

首先,我如何决定使用哪些参数范围?它是随机的还是背后有最佳实践?另一点是,一旦我这样做了,有没有办法通过代码获取每个单独的参数及其值?谢谢

你在这里能做的最好是在文档中搜索,或者使用其他可靠的资源,这是每个算法的参数搜索的常用和最合适的设置或启发式方法。要准确了解设置每个参数的值需要很好地了解它们在做什么。

以下是您分享的一些想法:

  • max_depth:理论上只要训练样本量多,当然会完全过拟合。但是,将其保持过低可能会导致模型欠拟合。所以通常你想把这个保持在相当小的范围内,比如你用过的那个。

  • max_features:这基本上限制了要查看的特征数量,以定义树的每个分裂。在具有大量特征的情况下,限制它的值是个好主意,否则默认情况下你将拥有 max_features=n_features。尽管您可以搜索文档中提出的这些推荐的 经验法则 方法,而不是在此处指定范围:

    • max_features:整数、浮点数或{“auto”、“sqrt”、“log2”}
    • 如果“自动”,则max_features=sqrt(n_features).
    • 如果“sqrt”,则max_features=sqrt(n_features).
    • 如果“log2”,则max_features=log2(n_features).

所以总的来说我建议你仔细看看他们每个人的作用,并遵循可靠资源的建议。请注意,在 docs 中您还为几个参数提供了建议值。