首页 > 解决方案 > 构建用于调整超参数的网格搜索

问题描述

我需要建立一个网格搜索来调整超参数。假设有两个范围: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()with和methods。我想在该类上创建一个搜索网格,以查看哪些参数最适合。fit()predict()score()

我曾想过

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

但我不知道如何继续。

标签: pythonscikit-learngrid-searchhyperparameters

解决方案


Sklearn有一个网格搜索类,你能用这个吗?

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)

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


推荐阅读