【发布时间】:2020-02-03 17:19:10
【问题描述】:
请在下面查看我的管道,我收到错误但我不明白为什么:
n_estimators = [12,60]
min_samples_leaf = [2, 4]
models = {
'DecisionTreeClassifier': DecisionTreeClassifier(),
'RandomForestClassifier': RandomForestClassifier(),
'NaiveBayes': GaussianNB(),
'LogisticRegression': LogisticRegression()
}
params= {
'DecisionTreeClassifier':{
"max_depth":[2,4,6,8,10],
"criterion": ['gini', 'entropy'],
},
'RandomForestClassifier': {
'n_estimators': n_estimators,
'min_samples_leaf': min_samples_leaf
},
'NaiveBayes': {
},
'LogisticRegression':{
'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000] #Regularization Coefficnet
}
}
for name in models.keys():
est = models[name]
est_params = params[name] # in cross validation we are really only traning the model on a small portion of the data
pipeline = Pipeline([('imputation', SimpleImputer(strategy='most_frequent')),('model',models[name])])
gscv = GridSearchCV(pipeline, param_grid=est_params, cv=5,return_train_score=True) #return_train_score=False
gscv.fit(x_train_values, y_train)
但是我得到一个错误:ValueError: Invalid parameter criteria for estimator Pipeline(memory=None,
我不知道为什么会出现这个错误,我试图通过查看一个分类器来分解它,例如:
pipeline = Pipeline([('imputation', SimpleImputer(strategy='most_frequent')),('model',models['LogisticRegression'])])
gscv = GridSearchCV(pipeline, param_grid=params['LogisticRegression'], cv=5,return_train_score=True) #return_train_score=False
gscv.fit(x_train_values, y_train)
然而这是同样的错误。我也试图得到我应该调用的参数,但它输出了我已经拥有的东西(C)
for param in models['LogisticRegression'].get_params().keys():
print(param)
【问题讨论】:
标签: python machine-learning pipeline training-data grid-search