AdaBoost-DTree
根据AdaBoost的思想,
我们希望在生成多个分类器的时候,增加一个类似于adaboost的权重,即,在最后组成最终分类器的时候,增加权重,这是整体的思路。
那么现在的问题是如何嵌入一个,使得,注意到之前的Random-Forest等算法中的仅仅是.
如上图所示,本来加入应该是在中进行的,但是这不一定能很好地解出,所以这里讲其看成一个black box。注意到在adaboost是怎么引进来的,他是由boost抽样引进的,所以,我们采用红框所示的抽样方法。即对每一组数据按的比例概率来抽取,这样的话可以近似地处理且不用改最优化的框架(仅仅是“改”了数据)。
权重仍采用和adaboost一样的操作。
adaboost-DT用于二分类问题
如上更新,注意到由于是二分类问题是±1,那么可以有很好地表达式,这个结果和我们要回传的长得十分类似。
如上图所示,用一种粗糙的解释,实际上上上图中橙色框的部分表示的是一种类似于SVM中的margin,我们希望margin越大越好,即如上图灰色框所示,我们最终希望越下越好,那么我们可以再弱一些,我们希望能deresases.
采用的是GD,对exp在原点附近泰勒展开后得知我们需要使得最小化,其中是变量,进一步化简,
这里的推导说明,实际上最小化相当于最小化,所以推来推去,我们发现了最好的实际上就是可以通过adaboost来解决的,即由和来获得,忘记的同学可以回到adaboost去查看。
得到最优的之后,接下来,我们要处理最优的步长,由上面的推导,我们能得出最优的步长就是!实在是震精!
Gradient Boosting for Regression
推广上面adaboost-DT的loss项,可以推广到一般形式,下面将考虑regression问题,即考虑squared-error。
按照上面的推导的话遇到了一个问题,如果要min只要直接取就好了,不过实际上仅仅是代表一个方向而已(想一想GD),长度应该是由步长控制的,所以,我们尝试对做点限制,增加一个项
通过配方,我们发现了一个惊人的事实,如果假设是线性的话,那么直接对做LR即可以得到一个最优解!
得到最优之后,考虑步长,稍微做点代数边形,我们发现一个事实,最优的步长也是可以通过线性回归获得,而且是一元!
对算法重新总结一下即