XGBoost
极端梯度提升(Extreme Gradient Boosting,XGBoost,有时候也直接叫做XGB)和GBDT类似,也会定义一个损失函数。不同于GBDT的是只会用到一阶导数信息,XGBoost会利用泰勒展开式把损失函数展开到二阶之后求导,利用了二阶导数信息,这样在训练集上的收敛就会更快
参数介绍
主要参数 | 解释 |
---|---|
max_depth | 数的最大深度,一般值为【3,4,5】 |
gamma | 学习速率,决定收敛速率以及正确率 |
subsample | 训练每棵树时所选样本占总训练集比例 |
colsample_bytree | 训练每棵树时所选特征占据总体特征比例 |
n_estimators | 迭代次数(树的数量) |
min_child_weight | 最小叶子节点样本权重和,值越大泛化能力越强 |
项目实战(股票风险走势预测)
方法讨论
其实针对这个问题我知道的最好办法就是用LSTM循环神经网络去处理(但是毕竟我们在讲XGBoost,所以不要在意这些细节【狗头】)
利用XGBoost处理这类时间序列问题我能想到的有两种方法
将前几天的数据作为特征集,今天的股票close列作为标签,这种方法的优点就是准确率高,但是缺点也很明显,
他只能预测未来一天。。。。。。
用当天的股票数据作为特征,当天的close列作为标签,用来训练模型(就像咱们普通的回归预测一样),然后将所有选取的特征各自建立时间序列模型,预测他们未来几天的数据,然后将该数据作为特征集,用训练好的模型predict,得到的就是咱们要预测的未来几天的数据 ,这个方法的优点就是能够预测未来几天的数据嘿嘿,缺点就是正确率不如前者,往后预测的天数