是否可以执行grid_search(以获得最佳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无效
谢谢
[编辑]
感谢FP:我需要获得最新版本的SKL并使用以下内容:
gs.fit(Xtrain,ytrain,fit_params = {'sample_weight':sw_train})
试图结束这个悬而未决的问题......
您需要获取SKL的最新版本并使用以下内容:
gs.fit(Xtrain, ytrain, fit_params={'sample_weight': sw_train})
Run Code Online (Sandbox Code Playgroud)
但是,它更符合传递fit_params给构造函数的文档:
gs = GridSearchCV(svm.SVC(C=1), [{'kernel': ['linear'], 'C': [.1, 1, 10], 'probability': [True], 'sample_weight': sw_train}], fit_params={'sample_weight': sw_train})
gs.fit(Xtrain, ytrain)
Run Code Online (Sandbox Code Playgroud)
以前的答案现在已经过时了。字典fit_params应该传递给fit方法。
从GridSearchCV的文档中:
fit_params : 字典,可选
传递给 fit 方法的参数。
0.19 版后已弃用:作为构造函数参数的 fit_params 在 0.19 版中已弃用,并将在 0.21 版中删除。改为将 fit 参数传递给 fit 方法。
在0.16.1版本中,如果使用Pipeline,则需要将参数传递给GridSearchCV构造函数:
clf = pipeline.Pipeline([('svm', svm_model)])
model = grid_search.GridSearchCV(estimator = clf, param_grid=param_grid,
fit_params={'svm__sample_weight': sw_train})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5481 次 |
| 最近记录: |