我使用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_'
我无法获得为结果模型选择的参数。我该如何解决这个问题?
答案 0 :(得分:3)
下面:
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结果类型。