Funny issue here - I have GridSearchCV
results, which after cherry-picking from grid_search_cv.results_
attribute are captured as follows:
Input: pd.DataFrame(grid_clf_rf.cv_results_).iloc[4966]['params']
Output: {'rf__max_depth': 40, 'rf__max_features': 2, 'rf__n_estimators': 310}
Now, as I understand, Imbalanced Learn package's Pipeline object is a wrapper around SciKit-Learn's Pipeline, and it should accept **fit_params
parameter in it's .fit()
method, as follows:
clf = BalancedRandomForestClassifier(random_state = random_state,
n_jobs = n_jobs)
pipeline = Pipeline([('nt', nt), ('rf', clf)])
pipeline.fit(X_train, y_train, **pd.DataFrame(grid_clf_rf.cv_results_).iloc[4966]['params'])
However, when I execute the above expression, I get the following result:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-64-a26424dc8038> in <module>
4 pipeline = Pipeline([('nt', nt), ('rf', clf)])
5
----> 6 pipeline.fit(X_train, y_train, **pd.DataFrame(grid_clf_rf.cv_results_).iloc[4966]['params'])
7
8 print_scores(pipeline, X_train, y_train, X_test, y_test)
/opt/conda/lib/python3.7/site-packages/imblearn/pipeline.py in fit(self, X, y, **fit_params)
237 Xt, yt, fit_params = self._fit(X, y, **fit_params)
238 if self._final_estimator is not None:
--> 239 self._final_estimator.fit(Xt, yt, **fit_params)
240 return self
241
TypeError: fit() got an unexpected keyword argument 'max_features'
Any ideas what am I doing wrong?