python 函数更改超参数名称

python function change hyperparameter name

def wklearnerExp(hyparam="max_depth"):
    param = np.arange(1,200, 5)
    for p in param:
        wkClf = DecisionTreeClassifier(max_depth=p) # Change max_depth to a hyparam defined  at hyparam="max_depth"

对于上面的函数,是否可以将超参数名称"max_depth"更改为其他名称,例如"min_samples_leaf"?这样我就可以做到:

wklearnerExp(hyparam="min_samples_leaf")

并交换函数中的超参数,而不是再次重写整个代码。

我试过以下方法但没有用

wkClf = DecisionTreeClassifier(eval(hyparam)=p)

谢谢!

这样做就可以了:

def wklearnerExp(hyparam="max_depth"):
    param = np.arange(1,200, 5)
    for p in param:
        wkClf = DecisionTreeClassifier(**{hyparam: p}) 

** 运算符将字典转换为关键字参数。这是否是个好主意值得商榷。