时间序列预测(三)—— Xgboost模型
欢迎大家来我的个人博客网站观看原文:https://xkw168.github.io/2019/05/20/时间序列预测-三-Xgboost模型.html
文章链接
模型原理
Xgboost(Extreme Gradient Boost)模型,是一种特殊的梯度提升决策树(GBDT,Gradient Boosting Decision Tree),只不过是力求将速度和效率发挥到了极致,故叫X(Extreme)gradientboost。Xgboost其本质上还是基于树结构并结合集成学习的一种方法,其基础树结构为分类回归树(CART,Classification and Regression Tree)。类似于局部加权线性回归算法,基于树的回归算法也是一类局部的回归算法,通过将数据集切分成多份,在每一份数据上单独建模。但不同的是基于树的回归算法是一种基于参数的学习算法,利用训练数据训练完模型后,参数一旦确定,无需再改变。分类回归树是一种基于决策树的结构,既可以用于解决分类问题也可以用于解决回归问题,是国际权威的学术组织The IEEE International Conference on DataMining (ICDM)早前评选出了数据挖掘领域的十大经典算法之一。
CART算法核心内容包含以下三个方面:
- 二分(Binary Split):在每次判断过程中,都是对观察变量进行二分。CART算法采用一种二分递归分割的技术,算法总是将当前样本集分割为两个子样本集,使得生成的决策树的每个非叶结点都只有两个分枝。因此CART算法生成的决策树是结构简洁的二叉树;
- 单变量分割(Split Based on One Variable):每次最优划分都是针对单个变量;
- 剪枝策略:CART算法的关键点,也是所有基于树(Tree-Based)算法的关键步骤
决策树的生成就是递归地构建二叉决策树的过程,核心思想为在训练数据集所在的输入空间中,递归地将每个区域划分为两个子区域并决定每个子区域上输出值。划分子区域的标准取决于树的种类,对回归树用平方误差最小化准则,对分类树用基尼指数最小化准则。回归树的生成具体步骤如下:
- 选择最优切分变量j与切分点s,求解
m i n [ m i n ∑ x i ∈ R 1 ( j , s ) ( y i − c 1 ) 2 + m i n ∑ x j ∈ R 2 ( j , s ) ( y j − c 2 ) 2 ] min[min{\sum_{x_i \in R_1(j,s)} (y_i-c_1)^2} + min{\sum_{x_j \in R_2(j,s)} (y_j-c_2)^2}] min[minxi∈R1(j,s)∑(yi−c1)2+minxj∈R2(j,s)∑(yj−c2)