Я хотел реализовать ранние остановки в моем 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)