Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

value error happens when using GridSearchCV

I am using GridSearchCV to do classification and my codes are:

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)

And then, I meet the error

ValueError: Unsupported set of arguments: penalty='l1' is only supported when dual='false'., Parameters: penalty='l1', loss='hinge', dual=False

later on I change my code to :

clf = GridSearchCV(LinearSVC(penalty='l1',dual=False),verbose=2)

And I meet the error

TypeError: init() takes at least 3 arguments (3 given)

I also tried:

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)

However, I still have the error

ValueError: Unsupported set of arguments: penalty='l1' is only supported when dual='false'., Parameters: penalty='l1', loss='squared_hinge', dual=False

Anyone has idea what I should do to deal with that?

like image 794
gladys0313 Avatar asked Apr 27 '15 17:04

gladys0313


3 Answers

I also met this problem when doing sparse SVM. I find one piece of working demo code in this page SVM module explanation. Hope it might help.

clf = LinearSVC(loss='l2', penalty='l1', dual=False)

like image 101
William Avatar answered Nov 03 '22 11:11

William


One option is to instruct GridSearchCV to set the score manually if model throws an exception using the error_score parameter. See my answer here.

like image 30
crypdick Avatar answered Nov 03 '22 11:11

crypdick


Had a similar issue and in my case, it was writing twelve 12 instead of 'el two' l2 in some instances.

like image 2
ArdentLearner Avatar answered Nov 03 '22 12:11

ArdentLearner