建立网格搜索以调整超参数

问题描述

我需要建立一个网格搜索来调整超参数。设置两个范围:lambda = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1]sigma = [0.1,1]。如何建立自定义网格搜索?我使用CustomSVM()fit()predict()方法创建了一个名为score()自定义SVM类。我想在该类上创建一个搜索网格,以查看最适合的参数。

我想过

for x in lambda:
   for y in sigma: 
      ...

但我不确定如何设置。

解决方法

Sklearn有一个网格搜索类,可以使用this?

from sklearn.model_selection import GridSearchCV

parameters = {
            'lambda': [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1],'sigma': [0.1,1]}

svm_gs = GridSearchCV(customSVM,parameters)
svm_gs.fit(your.data,your.target)

我不明白为什么您的for loop解决方案也无法正常工作;您可以参考GridSearchCV文档以获取想法。