【问题标题】:Build a grid search for tuning hyperparameters构建用于调整超参数的网格搜索
【发布时间】:2021-02-07 23:14:24
【问题描述】:

我需要构建一个网格搜索来调整超参数。假设有两个范围: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: 
      ...

但我不知道如何继续。

【问题讨论】:

  • 您需要提供一个最小的示例代码,我们可以将其复制并粘贴到单个文件中并运行它
  • @TuanTran 我创建了一个小代码来展示我对这个问题的看法。它有帮助吗?我只是不知道如何构建网格搜索来为我的CustomSVM() 挑选最好的 sigma 和 lambda

标签: python scikit-learn grid-search hyperparameters


【解决方案1】:

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, 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 文档以获取想法。

【讨论】:

  • 我知道,但我不能使用 GridSearchCV
  • @David 不使用 GridSearchCV 的原因是什么?显示的解决方案是实现目标的干净和 Pythonic(sklearnish)方式。
猜你喜欢
  • 2019-10-15
  • 2021-06-14
  • 2019-12-23
  • 2021-08-24
  • 2023-03-09
  • 2019-06-02
  • 2016-07-12
  • 2023-02-03
  • 2020-02-25
相关资源
最近更新 更多