Ich versuche, hyperparametersuche mit scikit-learns GridSearchCV auf XGBoost zu tun. Während der Gridsearch-Suche möchte ich, dass es zu früh aufhört, da es die Suchzeit drastisch reduziert und (zu erwarten ist) bessere Ergebnisse für meine Vorhersage-/Regressionsaufgabe liefert. Ich benutze XGBoost über seine Scikit-Learn API.GridSearchCV - XGBoost - Frühes Stoppen
model = xgb.XGBRegressor()
GridSearchCV(model, paramGrid, verbose=verbose ,fit_params={'early_stopping_rounds':42}, cv=TimeSeriesSplit(n_splits=cv).get_n_splits([trainX, trainY]), n_jobs=n_jobs, iid=iid).fit(trainX,trainY)
Ich habe versucht, mit der Verwendung von fit_params frühen Stopp Parameter zu geben, aber dann wirft es diesen Fehler, die im Grunde von Validierungssatz wegen des Mangels ist die für Anfang Anhalten erforderlich ist:
/opt/anaconda/anaconda3/lib/python3.5/site-packages/xgboost/callback.py in callback(env=XGBoostCallbackEnv(model=<xgboost.core.Booster o...teration=4000, rank=0, evaluation_result_list=[]))
187 else:
188 assert env.cvfolds is not None
189
190 def callback(env):
191 """internal function"""
--> 192 score = env.evaluation_result_list[-1][1]
score = undefined
env.evaluation_result_list = []
193 if len(state) == 0:
194 init(env)
195 best_score = state['best_score']
196 best_iteration = state['best_iteration']
Wie kann ich GridSearch auf XGBoost mit early_stopping_rounds anwenden?
Anmerkung: Modell wird ohne Gridsearch funktioniert, funktioniert auch ohne Gridsearch ‚fit_params = {‘ early_stopping_rounds': 42}
Was ist der Fehler? Bitte posten Sie volle Stack-Trace. Funktioniert der Code auch ohne gridSearch, nur mit XGBRegressor.fit()? –
ja, Code funktioniert ohne gridsearch, funktioniert auch ohne 'fit_params = {' early_stopping_rounds ': 42}' – ayyayyekokojambo
Sie haben den Stack-Trace noch nicht aktualisiert. Was ist der Fehler? –