sklearn 管道的参数无效
Posted
技术标签:
【中文标题】sklearn 管道的参数无效【英文标题】:Invalid parameter for sklearn pipeline 【发布时间】:2020-09-10 18:51:37 【问题描述】:我知道这似乎是一个常见问题,并且它基于参数的特定名称,但在查看键后我仍然收到错误。
steps=[('classifier', svm.SVC(decision_function_shape="ovo"))]
pipeline = Pipeline(steps)
# Specify the hyperparameter space
parameters = 'estimator__classifier__C':[1, 10, 100],
'estimator__classifier__gamma':[0.001, 0.0001]
# Instantiate the GridSearchCV object: cv
SVM = GridSearchCV(pipeline, parameters, cv = 5)
_ = SVM.fit(X_train,y_train)
然后我得到:
ValueError: Invalid parameter estimator for estimator ... Check the list of available parameters with `estimator.get_params().keys()`.
然后我查看SVM.get_params().keys()
并获取以下组,包括我正在使用的两个组。我错过了什么?
简历 error_score 估计器__内存 估计器__steps 估算器__详细 估计器__预处理器 估计器__分类器 估计器__预处理器__n_jobs 估计器__预处理器__余数 估计器__预处理器__稀疏阈值 估计器__预处理器__变压器权重 估计器__预处理器__变压器 估计器__预处理器__详细 估计器__预处理器__规模 估计器__预处理器__onehot 估计器__预处理器__规模__内存 估计器__预处理器__规模__步骤 估计器__preprocessor__scale__verbose 估计器__预处理器__缩放器__缩放器 估计器__preprocessor__scale__scaler__copy 估计器__preprocessor__scale__scaler__with_mean 估计器__preprocessor__scale__scaler__with_std 估计器__预处理器__onehot__内存 估计器__预处理器__onehot__steps 估计器__预处理器__onehot__verbose 估计器__预处理器__onehot__onehot 估计器__预处理器__onehot__onehot__categories 估计器__预处理器__onehot__onehot__drop 估计器__预处理器__onehot__onehot__dtype 估计器__预处理器__onehot__onehot__handle_unknown 估计器__预处理器__onehot__onehot__sparse 估计器__classifier__C 估计器__分类器__break_ties 估计器__classifier__cache_size 估计器__分类器__class_weight 估计器__分类器__coef0 估计器__classifier__decision_function_shape 估计器__分类器__度 估计器__classifier__gamma 估计器__分类器__内核 估计器__分类器__max_iter 估计器__分类器__概率 估计器__分类器__随机状态 估计器__分类器__收缩 估计器__分类器__tol 估计器__分类器__详细 估计器 独立同居 n_jobs 参数网格 pre_dispatch 改装 return_train_score 计分 详细的
【问题讨论】:
【参考方案1】:您的参数网格应该是classifier__C
和classifier__gamma
。您只需要去掉前面的 estimator
,因为您在管道中将 SVC 估算器命名为 classifier
。
parameters = 'classifier__C':[1, 10, 100],
'classifier__gamma':[0.001, 0.0001]
【讨论】:
以上是关于sklearn 管道的参数无效的主要内容,如果未能解决你的问题,请参考以下文章