如何使用 OneVsRestClassifier 进行 GridSearchCV?

Joh*_*ass 6 python python-2.7 scikit-learn

我有一个多标签问题。我将 OneVsRestClassifier 与 SVM 一起使用。现在我想通过 GridSearchCV 调整参数。我试过

GridSearchCV(estimator=OneVsRestClassifier(svm.SVC(probability=True)), param_grid=dict(C=Cs),
                      n_jobs=-1)
Run Code Online (Sandbox Code Playgroud)

它返回各种错误信息。

如何使用 OneVsRestClassifier 进行 GridSearchCV?也许我应该做一个管道?然而,似乎 OneVsRestClassifier 与 SVM 之间的关系并不像管道函数预期的那样。


我也试过下面的代码。但是,我无法将参数传递到 svm.SVC。

parameters = {'kernel':('linear', 'rbf'), 'C':[1, 10]}
svr = OneVsRestClassifier(svm.SVC(probability=True))
clf = grid_search.GridSearchCV(svr, parameters)
clf.fit(X_ptrain, y_ptrain)
Run Code Online (Sandbox Code Playgroud)

小智 2

您可以使用估计器来参考SVC的参数,如下所示:

parameters = {'estimator__kernel':('linear', 'rbf'), 'estimator__C':[1, 10]}
svr = OneVsRestClassifier(svm.SVC(probability=True))
clf = grid_search.GridSearchCV(svr, parameters)
clf.fit(X_ptrain, y_ptrain)
Run Code Online (Sandbox Code Playgroud)