Как оптимизировать модель регрессии XGB? - PullRequest
0 голосов
/ 06 апреля 2019

Я пытаюсь делать прогнозы временных рядов, используя XGBoost. (XGBRegressor)

Я использовал GrindSearchCV так:

parameters = {'nthread': [4],
              'objective': ['reg:linear'],
              'learning_rate': [0.01, 0.03, 0.05],
              'max_depth': [3, 4, 5, 6, 7, 7],
              'min_child_weight': [4],
              'silent': [1],
              'subsample': [1],
              'colsample_bytree': [0.7, 0.8],
              'n_estimators': [500]}
xgb_grid = GridSearchCV(xgb, parameters, cv=2, n_jobs=5,
                        verbose=True)
xgb_grid.fit(x_train, y_train,
             eval_set=[(x_train, y_train), (x_test, y_test)],
             early_stopping_rounds=100,
             verbose=True)

print(xgb_grid.best_score_)
print(xgb_grid.best_params_)

И получил те:

0.307153826086191
{'colsample_bytree': 0.7, 'learning_rate': 0.03, 'max_depth': 4, 'min_child_weight': 4, 'n_estimators': 500, 'nthread': 4, 'objective': 'reg:linear', 'silent': 1, 'subsample': 1}

Я попытался реализовать эти параметры и вычислить ошибку. Я получил это:

MSE: 4.579726929529167
MAE: 1.6753722069363144

Я знаю, что ошибка 1.6 не очень хороша для предсказаний. Должно быть <0,9. </p>

Я попытался настроить параметры микро, но мне не удалось уменьшить ошибку больше, чем это.

Я нашел кое-что о формате даты, может в этом проблема? Мои данные таковы: гггг-мм-дд чч: мм.

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

Я упоминаю, что нашел различные примеры, например , этот , но я не понял, и, конечно, это не сработало.

...