使用GridSearchCV时发生值错误

gla*_*313 6 python classification svm

我使用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

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

小智 0

产生此错误消息的代码位于此处。我不明白什么会导致这种情况偶尔发生,但裸露的 else 意味着可能是除了penalty='l1'、dual='false' 组合之外的其他东西。