目录html
更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:http://www.javashuo.com/article/p-vozphyqp-cm.htmlpython
梯度提高树(gradien boosting decision tree,GBDT)在工业上用途普遍,属于最流行、最实用的算法之一,梯度提高树能够当作是提高树的优化版。算法
梯度提高树其实流程和提高树差很少,可是在损失函数拟合方面,提高树损失函数拟合用的是平方损失,而梯度提高树则是使用损失函数的负梯度来拟合本轮损失的近似值,进而拟合一个回归树。数据结构
第\(t\)轮第\(i\)样本的损失函数的负梯度表示为
\[ r_{ti}=-{[\frac{\partial{L(y_i,f(x_i))}}{\partial{f(x_i)}}]}_{f(x)=f_{t-1}(x)} \]
利用\((x_i,r_{ti}),\quad(i=1,2,\cdots,m)\),咱们能够拟合一颗CART回归树,获得了第\(t\)棵回归树,它对应的叶节点区域为\(R_{tj},\quad(j=1,2,\cdots,J)\),其中\(J\)为叶子节点数。机器学习
有\(m\)个数据\(n\)个特征的训练数据集\(T=\{(x_,y_1),(x_2,y_2),\cdots,(x_m,y_m)\}\),损失函数为\(L(y,f(x))\)。函数
回归树\(\hat{f(x)}\)。学习
梯度提高树虽然在某种程度解决了提高树对于分类和回归问题使用不一样的损失函数的问题,而且使用损失函数的负梯度做为提高树算法残差值的近似值,提高了模型的准确度,可是他还没法作到并行。下面介绍的XgBoost做为GBDT的升级版,将会解决这个问题。优化