决策树的网格搜索参数



我使用的是决策树分类器,我想使用cv来找到尽可能好的参数。我可以指定以下内容:

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

首先,如何决定使用哪些参数范围?这是随机的还是背后有最佳实践?另一点是,一旦我完成了这项工作,是否有办法通过代码获得每个单独的参数及其值?感谢

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

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

  • max_depth:理论上,它可能与训练样本的数量一样高,当然这会导致完全过拟合。但是,将其保持得过低可能会导致模型装配不足。所以通常你想把这个保持在很小的范围内,比如你用过的那个。

  • max_features:这基本上限制了定义树的每个分割时要查看的功能数量。在具有大量功能的情况下,最好限制其值,否则默认情况下您将具有max_features=n_features。尽管您可能不需要在这里指定范围,而是可以搜索文档中建议的经验法则方法:

    • max_features:int、float或{"auto"、"sqrt"、"log2"}
    • 如果为"auto",则max_features=sqrt(n_features(
    • 如果"sqrt",则max_features=sqrt(n_features(
    • 如果为"log2",则max_features=log2(n_features(

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

最新更新