Я хочу выполнить жадный поиск во всем пространстве параметров моего классификатора опорных векторов, используя GridSearchCV. Однако некоторые комбинации параметров запрещены LinearSVC и выбросить исключение. В частности, существуют взаимоисключающие комбинации параметров dual
, penalty
и loss
:
Например, такой код:
from sklearn import svm, datasets
from sklearn.model_selection import GridSearchCV
iris = datasets.load_iris()
parameters = {'dual':[True, False], 'penalty' : ['l1', 'l2'], \
'loss': ['hinge', 'squared_hinge']}
svc = svm.LinearSVC()
clf = GridSearchCV(svc, parameters)
clf.fit(iris.data, iris.target)
Возвращает ValueError: Unsupported set of arguments: The combination of penalty='l2' and loss='hinge' are not supported when dual=False, Parameters: penalty='l2', loss='hinge', dual=False
Мой вопрос: можно ли заставить GridSearchCV пропускать комбинации параметров, которые модель запрещает? Если нет, есть ли простой способ создать пространство параметров, не нарушающее правила?