sp_randint是如何工作的



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

所以通过检查Scikit中可用的代码来学习: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),
                 }

谢谢。

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方法的对象,甚至是列表。例如:

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],
             }

相关内容

  • 没有找到相关文章

最新更新