解释下:这里的gt(x)就是一棵决策树,给它写成一个函数gt(x),当成黑盒,代表给我一个x,告诉你一个结果。二分类就是给我一个函数,告诉你是+1还是-1。多分类就是给我一个函数,告诉你是1,2,还是3。给它写成gt(x)就代表它是决策树的预测结果。t代表它的序号,是从1到T,代表我们有T个弱分类器,其中每一个gt(x)代表某一个弱分类器的结果,假设正例是+1,负例是-1的情况下,把它们统统加起来,假如最后结果是正的,就代表投票的+1比较多;最后的结果是负的,代表-1比较多。sign是一个简单的取符号的运算,当这个里边的计算结果为正的时候,比如+100,前面加上sign,结果就等于+1;假如运算结果是-10000,前面加上sign,结果等于-1。也就是G(x)最后的结果,要么是+1,要么是-1。假如是多分类问题,就很难通过解析式来表达了,它无非还是一个投票,有一百个弱分类器,50个是1,20个是2,30个是3,最后的投票结果就是1。这是对于分类问题,如果是回归问题,每一个弱分类器会给出一个结果,假设第一个弱分类器是100,第二120,第三200,第四500,那么最终把它们取个平均数,就作为最终的预测结果。我们称这种聚合方式叫做均匀混合(uiform blending ),Blend是搅拌混合的意思,就是说训练好了若干个弱分类器之后,一条数据分别交给它们预测,把它们的预测结果杂糅在一起,最后汇总出的结果,这个过程就叫做Blending。
第二种:还是投票 牛x一点的朋友多给几票, 弱鸡一点的少给几票
解释下:这里面的αt代表每一个弱分类器给它一个单独的权重,如果弱分类器表现好,我就给你的αt大点,如果表现的不好,我就给你的αt小点,如果还是投票,厉害的人票多,代表α要大一点;对于买什么什么赔的,他的α一定是负数,这个式子表达的就是赋予每个人不同票数的这种投票方式。如果训练出来的弱分类器正确率低于50%的情况下,会有两种处理方式,第一种就是给它投一个负票,但它有可能是由极端的偶然导致的,因为它训练出来的结果太差了,不代表什么意义,所以第二种处理方式会把它丢弃,这也正是为什么αt>=0的原因。
对于均匀混合(uiform blending )方式,已知所有的gt(x),把它的均匀的聚合到一起,就得到了一个最终的结果,但假如所有的gt(x)都是相同的,就独裁了,相当于一千个投票一千个人意见都是一样的,投票没有任何意义了。所以只有一些不同的朋友们给你带来各种各样的意见的情况下,投票才能带来一些提升。所以这就意味着我们在生成gt(x)的时候应该考虑制造一些每个人看法迥异,但多少都有些道理的gt(x)。
那具体怎么生成gt(x)呢?我们这里引入两个概念:分别为Bagging和Boosting。
Bagging通过一个叫bootstrap的抽样,进行有放回的对原始数据集进行均匀抽样。假如现在有一百条数据,用有放回地进行抽样话,原来有100条数据,现在还有100条数据,抽到的数据有可能会跟原来一模一样的。当这个值不是100,而是足够大的一个值的时候,我们要抽一些数据作为每一个弱分类器的训练样本,一些数据肯定会被多次抽中,也有一些数据永远不会被抽中。在集成学习里面,我们并不强调每个gt(x)是什么,因为它就对应一个弱分类器,这里gt(x)可以是任何一个算法,svm ,逻辑回归等等,类似于分类器的一个黑盒子。当这里gt(x)是决策树的时候,我们称这种集成方式为随机森林。假如随机森林需要一百棵树投票,那么就制造100份训练集,每一个训练集怎么生成的,就是通过有放回的随机抽样生成100个与众不同的训练集。这种抽样方法对每个人都是公平的,最后用一百个树公平的投票。因为我们是均匀的随机抽样,所以虽然这些树里面有好有坏,但是我对它们一视同仁,因为我也不知道哪一棵树好,哪一棵树坏,按理说,只要坏数据少,生成的坏树应该比好树少,那最后投票的时候,会把坏树的意见屏蔽掉,这样操作之后,训练集的准确性会提高。另一方面我们看下随机森林的原始论文定义: