Я пытаюсь делать прогнозы временных рядов, используя 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>
Я попытался настроить параметры микро, но мне не удалось уменьшить ошибку больше, чем это.
Я нашел кое-что о формате даты, может в этом проблема? Мои данные таковы: гггг-мм-дд чч: мм.
Я новичок в машинном обучении, и это то, что мне удалось сделать после нескольких примеров и учебных пособий. Что я должен сделать, чтобы понизить это, или что я должен искать, чтобы учиться?
Я упоминаю, что нашел различные примеры, например , этот , но я не понял, и, конечно, это не сработало.