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})
**
运算符将字典转换为关键字参数。这是否是个好主意值得商榷。
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})
**
运算符将字典转换为关键字参数。这是否是个好主意值得商榷。