这意味着您的超参数空间是树状的:为一个超参数选择的值决定了接下来将选择什么超参数以及可用的值。
从HyperOpt 示例中,首先选择模型类型,并根据不同的超参数可用:
space = hp.choice('classifier_type', [
{
'type': 'naive_bayes',
},
{
'type': 'svm',
'C': hp.lognormal('svm_C', 0, 1),
'kernel': hp.choice('svm_kernel', [
{'ktype': 'linear'},
{'ktype': 'RBF', 'width': hp.lognormal('svm_rbf_width', 0, 1)},
]),
},
{
'type': 'dtree',
'criterion': hp.choice('dtree_criterion', ['gini', 'entropy']),
'max_depth': hp.choice('dtree_max_depth',
[None, hp.qlognormal('dtree_max_depth_int', 3, 1, 1)]),
'min_samples_split': hp.qlognormal('dtree_min_samples_split', 2, 1, 1),
},
])
从原始论文:
在这项工作中,我们将自己限制在树结构的配置空间中。配置空间是树形结构的,因为某些叶变量(例如 DBN 的第二层中的隐藏单元的数量)仅在节点变量(例如,使用多少层的离散选择)特别重要时才被明确定义价值观。