如何优化xgb回归模型?

时间:2019-04-05 21:31:44

标签: python-3.x machine-learning prediction xgboost grid-search

我正在尝试使用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。

我试图微调参数,但是我没有设法减少错误。

我发现了一些有关日期格式的信息,也许是问题所在?我的数据是这样的:yyyy-MM-dd HH:mm。

我是机器学习的新手,这是我在完成一些示例和教程之后所要做的。我应该怎么做才能降低它,或者我应该寻找什么来学习?

我提到我发现了诸如this one之类的各种示例,但我不理解,当然也没有用。

0 个答案:

没有答案