我用scikit运行了一堆模型来学习解决分类问题。在
以下是在运行过程中应执行的代码:
for model_name, classifier, param_grid, cv, cv_name in tqdm(zip(model_names, classifiers, param_grids, cvs, cv_names)):
pipeline = Pipeline(steps=[('preprocessor', preprocessor),
('classifier', classifier)])
train_and_score_model(model_name, pipeline, param_grid, cv=cv)
我的问题是,如何保留train_and_score_model
函数的输出?它返回一个cv对象,即模型。在
我试图做的是创建一个列表cv_names = ['dm_cv', 'lr_cv', 'knn_cv', 'svm_cv', 'dt_cv', 'rf_cv', 'nb_cv']
,并将每个列表设置为for循环运行,但我认为这是不对的。这是for循环头中的cv_name
迭代器。在
但我不认为这是对的,因为我不会设置一个字符串,而不是一个变量?就像在,我真正应该拥有的是cv_names = [dm_cv, lr_cv, knn_cv, svm_cv, dt_cv, rf_cv, nb_cv]
,但我不认为我能有这样的列表。在
我想到的另一种方法是将每个模型保存在字典中,其中的键将是我上面概述的列表中的元素。不过,我不知道是否可以用一个模型作为字典值。在
下面是我当前在for循环中运行的笨拙、重复的代码:
^{pr2}$
您可以使用 它们的信息,即对象和参数网格:
迭代字典中的每个键值对并构建管道:
相关问题 更多 >
编程相关推荐