【问题标题】:Grid search parameters for Decision Tree决策树的网格搜索参数
【发布时间】:2020-07-28 04:19:20
【问题描述】:

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

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

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

【问题讨论】:

    标签: python machine-learning scikit-learn decision-tree grid-search


    【解决方案1】:

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

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

    • ma​​x_depth:理论上它可能与训练样本的数量一样高,这当然会导致完全过拟合。但是,将其保持得太低可能会导致模型拟合不足。因此,通常您希望将其保持在相当小的范围内,例如您使用过的那个。

    • ma​​x_features:这基本上限制了定义树的每个拆分时要查看的特征数量。在拥有大量功能的情况下,最好限制其值,否则默认情况下您将拥有 max_features=n_features。虽然也许您可以搜索文档中提出的这些推荐的经验法则方法,而不是在此处指定范围:

      • ma​​x_features:int、float 或 {“auto”、“sqrt”、“log2”}
      • 如果“自动”,则 max_features=sqrt(n_features)。
      • 如果“sqrt”,则 max_features=sqrt(n_features)。
      • 如果“log2”,则 max_features=log2(n_features)。

    因此,总的来说,我建议您仔细查看它们各自的功能,并遵循可靠资源的建议。请注意,在docs 中,您还为多个参数提供了建议值。

    【讨论】:

    • 谢谢,您对问题的第二部分有何看法?
    • IIUC 只需使用 GridSearch 或 scikit-learn 中可用的搜索选项之一,然后调用其 best_params_ 方法,它们都有 @Fabiana
    • 是否可以在 best_params_ 上使用迭代器通过代码获取 param:value?
    • 是的,它返回一个字典。字典是可迭代的@fabiana
    • 我通常看解释清楚的 kaggles :) @Fabiana
    猜你喜欢
    • 2021-05-16
    • 1970-01-01
    • 2019-10-11
    • 2020-06-05
    • 2014-06-15
    • 2018-06-23
    • 2016-10-07
    • 2023-03-09
    • 2012-12-14
    相关资源
    最近更新 更多