我使用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)
然后,我遇到了错误
ValueError:不支持的参数集:仅当dual ='false'时,支持penalty ='l1'。,参数:penalty ='l1',loss ='hinge',dual = False
稍后我将代码更改为:
clf = GridSearchCV(LinearSVC(penalty='l1',dual=False),verbose=2)
我遇到了错误
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)
但是,我仍然有错误
ValueError:不支持的参数集:仅当dual ='false'时,支持penalty ='l1'。,参数:penalty ='l1',loss ='squared_hinge',dual = False
任何人都知道我该怎么做才能解决这个问题?
答案 0 :(得分:2)
如果模型使用GridSearchCV
参数抛出异常,则一个选项是指示error_score
手动设置分数。请参阅my answer here。
答案 1 :(得分:1)
在进行稀疏SVM时我也遇到了这个问题。我在此页面SVM module explanation找到了一段可用的演示代码。希望它可能有所帮助。
clf = LinearSVC(loss='l2', penalty='l1', dual=False)
答案 2 :(得分:0)
产生此错误消息的代码是here。我不知道是什么原因导致这种情况偶尔发生,但除此之外的其他意味着除了惩罚='l1',双='假'组合之外其他东西不可能。
答案 3 :(得分:0)
遇到类似的问题,在我的案例中,它是在某些情况下写了十二个12
而不是“ el two” l2
。