假设我们正在尝试找到max_depth的最佳RandomForestClassifier参数。我们正在使用RandomizedSearchCV

from scipy.stats import randint as sp_randint
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import RandomizedSearchCV

rf_params = {              # Is this somehow possible?
              'max_depth': [sp_randint(1, 100), None],
            }

n_iter = 10

random_search = RandomizedSearchCV(RandomForestClassifier(),
                                   verbose=50,
                                   param_distributions=rf_params,
                                   n_iter=n_iter,
                                   n_jobs=-1,
                                   scoring='f1_micro')

random_search.fit(X_train, y_train)


是否可以告诉RandomizedSearchCV从指定的分布sp_randint(1, 100)中进行选择,还是将参数设置为None,这将(如docs中所示):“ ...展开为节点,直到所有叶子都是纯净的,或者直到所有叶子都包含更少的为止比min_samples_split个样本...”?

当我现在运行此代码时,我将收到此错误:


  python - 如何告诉RandomizedSearchCV从分布或无值中选择?-LMLPHP

最佳答案

同样来自docs:“如果给出列表,则对其进行统一采样。”用这个:

'max_depth': list(range(1, 100)) + [None]

关于python - 如何告诉RandomizedSearchCV从分布或无值中选择?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43562952/

10-10 10:29