我正在尝试在 sklearn 中执行类似于 GridSearch 的操作:我想获取三个模型的列表,其中所有参数都是固定的,除了对应于每个模型中的 1、10 和 100 的 C。我有以下两个功能。
def params_GridSearch(dic_params):
keys, values = dic_params.keys(), dic_params.values()
lst_params = []
for vs in itertools.product(*values):
lst_params.append( {k:v for k,v in zip(keys,vs)} )
return lst_params
def models_GridSearch(model, dic_params):
models = [ model.set_params(**params) for params in params_GridSearch(dic_params) ]
return models
然后我建立一个模型并指定一个参数字典。
from sklearn.svm import SVC
model = SVC()
dic = {'C': [1,10,100]}
并使用我刚刚定义的函数生成模型。
models = models_GridSearch(model, dic)
然而,结果是相同的模型(使用最后一个参数,即 100)被重复 3 次。似乎发生了一些混叠。