我可以在python字典中引用变量吗?如何编写一个网格搜索程序来搜索相互依赖的超参数?

我可以在python字典中引用变量吗?如何编写一个网格搜索程序来搜索相互依赖的超参数?,python,dictionary,scikit-learn,hyperparameters,Python,Dictionary,Scikit Learn,Hyperparameters,我想使用randomizedsearchCV优化定制sklearn模型的超参数 不幸的是,有两个参数相互依赖 含义:n\u单位的大小取决于k 示例:当k为2时,n\u单位应为大小为2的列表。 当k为3时,则n_单位的大小必须为3 所以我基本上需要这样的东西: dict(K=scipy.stats.randint(1,50), n_units=[np.random.randint(1,60,K)]) 然而,这是行不通的。有什么方法可以搜索相互依赖的超参数吗?能否将字典分配给变量?如果可以,并且键

我想使用
randomizedsearchCV
优化定制sklearn模型的超参数

不幸的是,有两个参数相互依赖

含义:
n\u单位的大小取决于
k

示例:当
k
为2时,
n\u单位
应为大小为2的列表。 当
k
为3时,则
n_单位的大小必须为3

所以我基本上需要这样的东西:

dict(K=scipy.stats.randint(1,50),
n_units=[np.random.randint(1,60,K)])

然而,这是行不通的。有什么方法可以搜索相互依赖的超参数吗?

能否将字典分配给变量?如果可以,并且键的名称(K)不会更改,那么可以使用n_units=[np.random.randint(1,60,myDict.get(K,一些默认值))]),这不是一个好主意。要么只将可接受的组合作为元组传递,并配置估计器使用它们,要么只将所有可用的可能性传递给搜索,然后在估计器中注意两者之间的关系。如果不满足约束,则应引发错误。RandomizedSearchCV有一个param
error\u score
,您可以使用它来处理估计器产生的错误。显示您的完整代码,我们就可以找到解决方案。尝试重新编写问题,使其更清楚,并改进了一点格式。@VivekKumar整个代码是什么意思?我现在使用了一种变通方法,正如你所说的,只包括有效的组合(所有n_单位都有最大k值的大小,因此对于较小的值,就不使用单位数组的其余部分)。我还考虑了错误评分机制。谢谢