我正在尝试使用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之类的各种示例,但我不理解,当然也没有用。