我已经查过了
这个问题
但是答案并不管用。
我正在尝试在GridSearchCV中使用带有感知器的预处理方法,如StandardScaler和Normalizer:
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)当我运行代码时,我得到:
ValueError: Invalid parameter class_weight for estimator Pipeline(steps=[('scale', StandardScaler()), ('clf', Perceptron())]). Check the list of available parameters with `estimator.get_params().keys()`.我认为这个错误是作为
提供的不适用于
..。另外,当我打印
我得到了:
我该如何修复它?
发布于 2021-02-18 04:12:22
您应该指定管道中的哪个转换
应应用参数:
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]
}]https://stackoverflow.com/questions/66246443
复制相似问题