用于多个模型的 GridSearchCV

Posted

技术标签:

【中文标题】用于多个模型的 GridSearchCV【英文标题】:GridSearchCV for multiple models 【发布时间】:2020-11-29 14:59:23 【问题描述】:

我正在尝试创建一个 GridSearch CV 函数,该函数将采用多个模型。但是,我有以下错误: TypeError: not all arguments convert during string formatting

def grid(model, X_train,y_train):
    grid_search = GridSearchCV(model, parameters, cv=5)
    grid_search.fit(X_train, y_train)
    prediction = grid_search.predict(X_test)
    best_classifier = grid_search.best_estimator_

    return grid_search

clf = [('DecisionTree',DT()),('RandomForest',RF())

n_folds = 15

for model in clf:
    
    print('\nWorking on ', model[0])
    
    grid_search = grid(model,X_train,y_train)

【问题讨论】:

【参考方案1】:

您已将模型存储在元组列表中(请注意,在您的示例中实际上缺少右括号):

clf = [('DecisionTree', DT()), ('RandomForest', RF())]

由于您遍历所有元组并且您的实际模型存储在每个元组的索引 1 中,因此您必须将 model[1] 传递给您的函数:

for model in clf:
    print('\nWorking on ', model[0])
    grid_search = grid(model[1], X_train, y_train) # <-- change in this line

【讨论】:

以上是关于用于多个模型的 GridSearchCV的主要内容,如果未能解决你的问题,请参考以下文章

用于视图模型的具有多个 DataTemplate 的 ItemsControl

分页列表不适用于具有多个模型的视图

ruby 用于将多个模型并置为单个索引中的类型的Rake任务。

OctoberCMS:在一个 API 端点中设置多个模型

为不相关的实体集使用和添加多个 Core Data 模型文件

sklearn 将标签编码器序列化到磁盘以用于多个分类列