我正在使用随机林分类器,使用gridsearch获取最佳参数
所以当我得到我的参数时,它们就在我的var中:
params = {'bootstrap': 'True',
'criterion': 'entropy',
'max_depth': 'None',
'max_features': '3',
'min_samples_leaf': '4',
'min_samples_split': '3'}
我想做那样的事情:
clf = RandomForestClassifier(params)
但是这里params
取代了n_estimators
,所以我遇到了一些错误:
ValueError: n_estimators must be an integer, got <class 'dict'>.
答案 0 :(得分:2)
您需要使用
解压缩函数调用的参数clf = RandomForestClassifier(**params)
让我向您展示使用dict作为具有默认参数的函数的函数参数的各种方法的结果。函数调用后的注释是打印的结果。
def foo(bar=None, baz=None):
print(bar, baz)
params = { "bar": "Hello", "baz": "World"}
# pass params as the first parameter
foo(params) # {'baz': 'World', 'bar': 'Hello'} None
# pass keys of params as parameters (order is out of our hands)
foo(*params) # baz bar
# unpacks params with key=value as parameters
foo(**params) # Hello World
我注意到你总是在你的值中使用字符串表示,即使是None
或True
- 如果函数实际需要None
或布尔值,你可能会遇到麻烦而不是一个字符串。更好地检查API哪些值有效。