Sklearn中使用GridSearchCV进行一对多分类
当我尝试通过以下方式来搜索最佳的 C
和 gamma
参数,用于 rbf 核心的支持向量机(SVM)时:
params = dict(C = C_range, gamma = gamma_range)
clf = GridSearchCV(OneVsRestClassifier(SVC()),params, cv = 5)
结果出现了一个错误,提示说 C
不是 OneVsRestClassifier
的参数。那么,针对多分类 SVM,进行参数的网格搜索的正确方法是什么呢?
1 个回答
4
网格搜索使用了一种自定义的嵌套属性语法来实现这个功能:
params = dict(estimator__C=C_range, estimator__gamma=gamma_range)
这里的名字 estimator
对应的是 OneVsRestClassifier
这个构造函数的参数。注意这里有两个下划线。