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)