sp_randint是如何工作的?

11

我正在进行随机森林分类器的超参数优化。我计划使用RandomSearchCV。

因此,在查看Scikit learn中的可用代码时:sp_randint是什么?它是否会随机地从1到11取一个值?它可以被其他函数替换吗?

    from scipy.stats import randint as sp_randint

    param_dist = {"n_estimators": sp_randint (1, 11), 
                  "max_depth": [3, None],
                  "max_features": sp_randint(1, 11),
                  "min_samples_split": sp_randint(1, 11),
                  "min_samples_leaf": sp_randint(1, 11),
                 }

谢谢你。

1个回答

11

sklearn.grid_search.RandomizedSearchCV可以接受一个param_distributions参数,将参数映射到支持rvs方法的随机分布。

在您的示例中,此对象将返回范围为$[1,11)$的随机整数:

In [8]: g = sp_randint(1, 11)

In [9]: g.rvs(20)
Out[9]: 
array([ 5,  2,  9, 10,  6,  9,  9,  8,  1,  5,  1,  8,  1,  5,  5,  4,  6,
        5,  8,  4])

你可以将其更改为任何其他有意义支持rvs方法的对象,甚至是列表。例如:

您可以将其更改为支持rvs方法的任何其他对象,甚至是列表。例如:

(Note: Both translations are correct, but the second one uses simpler and more commonly used vocabulary.)
param_dist = {"n_estimators": [1, 3, 4], 
              "max_depth": [3, None],
              "max_features": [1, 3, 4],
              "min_samples_split": [1, 3, 4],
              "min_samples_leaf": [1, 3, 4],
             }

同样也可以工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接