XGBoost сходится на большой глубине и весе ребенка - PullRequest
0 голосов
/ 11 сентября 2018

Я использую XGBoost для задачи прогнозирования временных рядов.Я выполняю gridsearch с перекрестной проверкой временных рядов.Как ни странно, gridsearch многократно сходится на большом количестве деревьев и минимальном весе ребенка.

Вот мой код

scaler = StandardScaler()

X_scaled = scaler.fit_transform(X)

tscv = TimeSeriesSplit(n_splits=3, max_train_size = 1500)

model = xgboost.XGBRegressor()

grid_search = GridSearchCV(model,
                    param_grid = param_grid,
                    cv = tscv.split(X_scaled),
                    n_jobs = -1,
                    scoring = 'explained_variance',
                    verbose=True)

grid_search.fit(X_scaled, y)

print (grid_search.best_params_)

Моя сетка параметров

param_grid = {'learning_rate': [0.01, 0.1], 
          'max_depth': [4,8,12],
          'min_child_weight': [3,5,10,20,35,50],
          'subsample': [0.5, 0.75],
          'colsample_bytree': [0.5, 0.75],
          'n_estimators': [100, 300],
}

Поиск по сетке сходится на

{'colsample_bytree': 0.5, 'learning_rate': 0.01, 'max_depth': 12, 'min_child_weight': 50, 'n_estimators': 300, 'subsample': 0.5}

Существуют ли явные причины, по которымпочему глубина дерева и минимальный вес ребенка так высоки?К сожалению, я не могу выпустить свой набор данных.Я просто ищу общие причины того, почему это может происходить, и если сходящиеся параметры являются разумными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...