参数中的RandomForest分类器对象

时间:2018-03-27 13:44:16

标签: python random arguments classification

我正在使用随机林分类器,使用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'>.

1 个答案:

答案 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

我注意到你总是在你的值中使用字符串表示,即使是NoneTrue - 如果函数实际需要None或布尔值,你可能会遇到麻烦而不是一个字符串。更好地检查API哪些值有效。