我正在尝试创建一个GridSearch CV函数,该函数可以接受多个模型。然而,我遇到了以下错误:TypeError: not all arguments converted 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_searchclf = [('DecisionTree',DT()),('RandomForest',RF())n_folds = 15for model in clf: print('\nWorking on ', model[0]) grid_search = grid(model,X_train,y_train)
回答:
您将模型存储在一个元组列表中(请注意,在您的示例中,实际上缺少闭合括号):
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) # <-- 这一行需要修改