Machine learning sp_randint如何工作?

Machine learning sp_randint如何工作?,machine-learning,python,optimization,scikit-learn,scipy,Machine Learning,Python,Optimization,Scikit Learn,Scipy,我正在做随机森林分类器的超参数优化。我计划使用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],

我正在做随机森林分类器的超参数优化。我计划使用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),
                 }
谢谢。

可以获得一个
param_distributions
参数,将参数映射到支持
rvs
方法的随机分布

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

您可以将其更改为任何其他有意义地支持
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],
             }
这也行

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