1.GBDT整体上的效果相当于将数据集划分成了很多小的子空间,用子空间的均值作为空间内样本的估计值。
2.学习方法是提升方法,先用一个弱学习器作为基本预测y0=f(x),此时预测值y0和真实值Y之间会有误差,然后将这个误差通过一个损失函数进行扭曲和放大;损失函数自变量是y0,因变量是L,思路是希望调整y0使L变小。
3.使L变小最快的方法将y0沿损失函数负梯度方向调整,也即梯度下降。实现上是将y0加上一个负梯度方向的y1,即y0=y0+y1 (y1是用样本生成的一个新的预测函数,预测目标是损失函数负梯度) 。
4.y0=y0+y1作为新的预测值,会产生新的误差,因为y0是沿损失函数负梯度方法变化的,所以整体上的损失会变小。
5.沿以上思路,不断用新的学习器y1拟合上一轮的负梯度,不断更新y0,损失不断减小。最后得到的f(x)=y0+y1+....yn即是我们要找的最终预测函数。
6.论文名字是梯度提升决策树,实现上基本都是用的回归树,每次找一个最优特征上的最优切分点对样本空间进切分,用回归树预测结果y1来拟合上一轮负梯度。
7.损失函数的目的是对样本点误差进行加权,加权样本点的同时相当于对模型进行扭曲,范数阶数高的损失函数会更关注预测奇异值。一阶损失各样本点平均对待;二阶相对一阶更照顾偏差较大的样本点;huber损失在样本偏差小时用二阶,样本偏差大时用一阶,防止奇异样本点过度扭曲模型;分类中用到的exp(-Y*f(x)),真实值与预测值同号时损失小,异号时损失大,而且异号差距越大,损失越大,指数级损失,为防止噪声等样本点对模型的过度影响,可以将指数损失再过对数函数,还原到一阶损失log(1+exp(-Y*f(x)))。
8.GBDT+LR是用GBDT来选特征,GBDT最后的预测结果是由K颗树的预测结果相加,将这些树的每个叶子当成一个特征,每个样本会在每颗树落在一个叶子上,也即每个样本在K颗树上会对应到K个特征,将这些特征过逻辑回归,用逻辑回归的预测结果作为最后输出。至于为什么GBDT+LR会比单用GBDT或LR效果好,原因可能有这样几个:GBDT如果是基于树结构,树结构很容易由于样本不均匀造成过拟合,依赖于好的剪枝,而且提升方法中前面的预测模型会直接影响后面的模型,造成偏差累积;逻辑回归因为模型比较简单,如果只用一维特征效果不好很正常,而且逻辑回归不容易将特征量纲控制在一个级别上。两者结合后使用GBDT的组合特征一方面利用了GBDT对空间的划分,保证了特征的稀疏性,别一方面逻辑回归更容易控制模型的复杂度,保证准确性。