首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在GridSearchCV中使用感知器对数据进行预处理?

如何在GridSearchCV中使用感知器对数据进行预处理?
EN

Stack Overflow用户
提问于 2021-02-18 00:52:30
回答 1查看 58关注 0票数 0

我已经查过了

这个问题

但是答案并不管用。

我正在尝试在GridSearchCV中使用带有感知器的预处理方法,如StandardScaler和Normalizer:

代码语言:javascript
运行
复制
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler, Normalizer
from sklearn.linear_model import Perceptron

param_grid = [{
    'tol': [1e-1, 1e-3, 1e-5],
    'penalty': ['l2', 'l1', 'elasticnet'],
    'eta0': [0.0001, 0.001, 0.01, 0.1, 1.0]
}]

scoring = {
    'AUC-ROC': 'roc_auc',
    'Accuracy': 'accuracy',
    'AUC-PR': 'average_precision'
}

pipe = Pipeline([('scale', StandardScaler()), ('clf', Perceptron())])

search = GridSearchCV(pipe,
                      param_grid,
                      scoring=scoring,
                      refit='AUC-ROC',
                      cv=skf,
                      return_train_score=True)

results = search.fit(Xtrain, ytrain)

当我运行代码时,我得到:

代码语言:javascript
运行
复制
ValueError: Invalid parameter class_weight for estimator Pipeline(steps=[('scale', StandardScaler()), ('clf', Perceptron())]). Check the list of available parameters with `estimator.get_params().keys()`.

我认为这个错误是作为

提供的不适用于

..。另外,当我打印

我得到了:

我该如何修复它?

EN

Stack Overflow用户

回答已采纳

发布于 2021-02-18 04:12:22

您应该指定管道中的哪个转换

应应用参数:

代码语言:javascript
运行
复制
param_grid = [{
    'clf__tol': [1e-1, 1e-3, 1e-5],
    'clf__penalty': ['l2', 'l1', 'elasticnet'],
    'clf__eta0': [0.0001, 0.001, 0.01, 0.1, 1.0]
}]
票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66246443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档