Python 构建用于调整超参数的网格搜索

Python 构建用于调整超参数的网格搜索,python,scikit-learn,grid-search,hyperparameters,Python,Scikit Learn,Grid Search,Hyperparameters,我需要建立一个网格搜索来优化超参数。提供两个范围:lambda=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1]和sigma=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1]。如何构建自定义网格搜索?我创建了一个定制的SVM类,名为CustomSVM(),使用fit()、predict()和score()方法。我想在这个类上做一个搜索网格,看看哪些参数最适合 我想 for x in lambda: for y in sigma:

我需要建立一个网格搜索来优化超参数。提供两个范围:
lambda=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1]
sigma=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1]
。如何构建自定义网格搜索?我创建了一个定制的SVM类,名为
CustomSVM()
,使用
fit()
predict()
score()
方法。我想在这个类上做一个搜索网格,看看哪些参数最适合

我想

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

但是我不知道如何使用。Sklearn有一个网格搜索类,你能使用吗


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

您需要提供一个最小的示例代码,我们可以将其复制并粘贴到单个文件中并运行it@TuanTran我创建了一个小代码来展示我是如何思考这个问题的。有帮助吗?我只是不知道如何构建网格搜索来为我的
CustomSVM()
选择最佳的sigma和lambda。我知道这一点,但我不能使用GridSearchCV@David不使用GridSearchCV的原因是什么?所展示的解决方案是干净的、符合pythonich(sklearnish)的方式来实现您的目标。
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, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]}

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