Использование ранних раундов остановки с XGboost - PullRequest
0 голосов
/ 26 апреля 2020

Я хотел реализовать ранние остановки в моем xgboost. Однако прошлые примеры на этом сайте больше не работают. Этот вопрос использует fit_params внутри объявления GridSearchCV. Однако это приводит к ошибке: __init__() got an unexpected keyword argument 'fit_params'. В документации GridSearchCV говорится, что в файле .fit () объявлено fit_params. Поэтому я сделал следующее и получил эту ошибку: Pipeline.fit does not accept the early_stopping_rounds parameter. You can pass parameters to specific steps of your pipeline using the stepname__parameter format, e.g. Pipeline.fit(X, y, logisticregression__sample_weight=sample_weight). Как мне ввести ранние остановки для моей модели xgboost?

model = XGBRegressor(booster ='gbtree', random_state = 13)
mymodel = Pipeline(steps = [('preprocessor', preprocessor),
                            ('model', model)
                            ])    
fit_params={"early_stopping_rounds":50, 
                "eval_metric" : "rmse", 
                "eval_set" : [[X_test, y_test]]}

gs = GridSearchCV(mymodel
                  ,param_grid = param_grid
                  ,scoring = 'neg_mean_squared_error'
                  ,n_jobs = -1
                  ,cv = cv_folds
                  ,refit = 'neg_mean_squared_error'

                  )
gs.fit(X_train,transformed_y_train, **fit_params)
...