相关疑难解决方法(0)

使用GridSearchCV时发生值错误

我使用GridSearchCV进行分类,我的代码是:

parameter_grid_SVM = {'dual':[True,False],
                    'loss':["squared_hinge","hinge"],
                    'penalty':["l1","l2"] 
                    }
clf = GridSearchCV(LinearSVC(),param_grid=parameter_grid_SVM,verbose=2)
clf.fit(trian_data, labels)
Run Code Online (Sandbox Code Playgroud)

然后,我遇到了错误

ValueError:不支持的参数集:仅当dual ='false'时支持penalty ='l1'.,参数:penalty ='l1',loss ='hinge',dual = False

稍后我将我的代码更改为:

clf = GridSearchCV(LinearSVC(penalty='l1',dual=False),verbose=2)
Run Code Online (Sandbox Code Playgroud)

我遇到了错误

TypeError:init()至少需要3个参数(给定3个)

我也尝试过:

parameter_grid_SVM = {
                    'loss':["squared_hinge"]
                    }
clf = GridSearchCV(LinearSVC(penalty='l1',dual=False),param_grid=parameter_grid_SVM,verbose=2)
clf.fit(trian_data, labels)
Run Code Online (Sandbox Code Playgroud)

但是,我仍然有错误

ValueError:不支持的参数集:仅当dual ='false'时,支持penalty ='l1'.,参数:penalty ='l1',loss ='squared_hinge',dual = False

任何人都知道我该怎么做才能解决这个问题?

python classification svm

6
推荐指数
1
解决办法
4294
查看次数

避免使用GridSearchCV中的某些参数组合

我正在使用scikit-learn GridSearchCV来迭代参数空间来调整模型.具体来说,我用它来测试神经网络中的不同超参数.网格如下:

params = {'num_hidden_layers': [0,1,2],
          'hidden_layer_size': [64,128,256],
          'activation': ['sigmoid', 'relu', 'tanh']}
Run Code Online (Sandbox Code Playgroud)

问题是当隐藏num_hidden_layers设置为时,我最终运行冗余模型0.它将运行一个具有0个隐藏层和64个单元的模型,另一个具有128个单元,另一个具有256个单元.所有这些模型都是等价的,因为没有隐藏层.这是非常低效的,这意味着我需要编写更多代码来删除结果中的冗余.

有没有办法防止这样的参数组合,可能是通过传递一个参数元组?

python parameters machine-learning scikit-learn grid-search

5
推荐指数
2
解决办法
1668
查看次数

如何使用sklearn禁用ConvergenceWarning?

我正在使用GridSearchCV优化SVM的超参数。我设置了最大迭代次数,因为我迫不及待要几个小时才能得到结果。我知道会有收敛警告。我只想忽略这些警告,而不显示在终端中。

提前致谢。

warnings scikit-learn

4
推荐指数
4
解决办法
4039
查看次数