GridSearchCV for MLPClassifier does not return best_estimato



我使用GridSearchCV来调整MLPClassifier参数:

def fit(self, X, y):
param_grid = {
'hidden_layer_sizes': [(7, 7), (128,), (128, 7)],
'tol': [1e-2, 1e-3, 1e-4, 1e-5, 1e-6],
'epsilon': [1e-3, 1e-7, 1e-8, 1e-9, 1e-8]
}
self.estimator = GridSearchCV(
MLPClassifier(learning_rate='adaptive', learning_rate_init=1., early_stopping=True, shuffle=True),
param_grid=param_grid, n_jobs=-1)
self.estimator.fit(X, y)
self.estimator = self.estimator.best_estimator_
print self.estimator.best_estimator_
return self

通过使用print self.estimator.best_estimator_,我得到这个错误:

AttributeError: 'MLPClassifier' object has no attribute 'best_estimator_'

我无法获得为结果模型选择的参数。我该如何解决这个问题?

在这里:

self.estimator = self.estimator.best_estimator_

您正在获取最佳估计器(MLPClassifier)并将其存储到变量self.estimator中,覆盖原始变量self.estimator

但随后:

self.estimator.best_estimator_

是错误的,因为self.estimator已经是最好的估计器,但它没有像这样命名的属性。由于您之前的操作,您确实损失了一层!

这由错误AttributeError: 'MLPClassifier' object has no attribute 'best_estimator_'指示,它告诉您,self.estimator是 MLPClassifier 类型的对象,但不是典型的 GridSearchCV 结果类型。

相关内容

  • 没有找到相关文章

最新更新