【发布时间】:2012-10-14 15:21:48
【问题描述】:
是否可以执行 GridSearchCV(以获得最佳 SVM 的 C)并使用 scikit-learn 指定 sample_weight?
这是我的代码和我遇到的错误:
gs = GridSearchCV(
svm.SVC(C=1),
[{
'kernel': ['linear'],
'C': [.1, 1, 10],
'probability': [True],
'sample_weight': sw_train,
}]
)
gs.fit(Xtrain, ytrain)
>> ValueError:估计器 SVC 的参数 sample_weight 无效
编辑:我通过获取最新的 scikit-learn 版本并使用以下内容解决了这个问题:
gs.fit(Xtrain, ytrain, fit_params={'sample_weight': sw_train})
【问题讨论】:
-
如果您有答案,请将其作为答案发布并接受。否则,问题就会悬而未决。
-
我确认
fit_params技巧是正确的答案。请回答你自己并验证你的答案。 -
@ogrisel 会不会导致
fit被调用时使用每个折叠的整个权重列表,而不仅仅是折叠中数据点的权重? -
这是一个很好的评论,但这种情况实际上是由内部交叉验证例程正确处理的:github.com/scikit-learn/scikit-learn/blob/master/sklearn/…
-
@ogrisel 很好的发现,谢谢。
标签: python scikit-learn