AdaBoost D Tree有了新的权重的概念。
现在的优化目标,如何进行优化呢?
不更改算法的部门,而想办法在输入的数据方面做修改。
权重的意义就是被重复取到的数据的次数。这样的话,根据权重的比例进行重复的抽样。最后的结果也和之前一样能够表达权重的意义在里面了。
在一个fully grown tree的情况下:
应对办法:
如果剪枝剪到极限的时候:
就是AdaBoost Stump。
在AdaBoost中:
有阴影的部分就是用来投票决定G最终结果的。这个方程式延伸一下:
对他们这样投票的过程可以类比SVM里margin的概念。voting score也可以看成是一种距离。这个距离也是越大越好。
又成了一个最佳化的过程。
随着AdaBoost进行,这个值会越来越小。
最终想要优化的目标:
所以我们会有一个exponential error measure来对AdaBoost的上界进行bound。下面就是数学上进行优化了。
按照梯度下降的思路进行最佳化:
所以,在AdaBoost中的A就是好的gt了。下面就是优化步幅η了。
微分一下:
根据以上思路进行拓展:
Gradient Boost可以对任何的error function进行拓展。
拓展到regression问题的时候:
加上正则化的惩罚项:
最终得出了GBDT的形式:
最后对几个ensemble的模型进行一些总结:
总结:
时间: 2024-10-18 18:17:38