组合(集成)方法目前主要基于两种思想:Boosting和Boostrap,他们的共同点就是由多个弱个体学习器组合得到一个强学习器。但我们是否有曾想过为什么多个弱学习器组合就能得到一个强学习器?大家平时听得最多的可能就是将组合方法类比一句名言:三个臭皮匠顶个诸葛亮。这看似很合理,因为这是中华民族流传已久的至理名言,也非常容易理解。本文则试着从另一个角度来解释组合方法的优越性(并不是严格的证明)。 废话不多说,正文我们从一个例子开始:
如果某人欲竞选当地领导,假定该地有49%的人不支持他,那么随机问一个人,都有49%的可能不选他(假定该地选民总数很大,这样每问一个人就近似地相当于一个伯努利(Bernoulli)试验,相应的概率p=0.49)。如果从该地随机选择1000人来投票,按照简单多数当选原则,那么他不被选上的概率是多少,即1000人中有超过半数的人(至少501人)不选他的概率是多少?
各位看官如果没学过统计可能觉得太简单了,题设都说了是49%啊,太naive了,学过统计的可能想,此例中,服从参数为n=1000和p=0.49的二项分布,那么超过半数不选他的概率是C_n^i p^i 〖(1-p)〗^(n-i)啊,其中i=501呀,那我就要说同样的naive了(我不会告诉你本人最初其实就是这么想的),对于这类同学说明你的概率论统计掉得差不多了,老司机提醒你该回去捡捡了。来来来,敲黑板了,公布正解:
0.2532
大家一看到可能会觉得,我***,楼主你不会是骗我的吧!比0.49差那么多,只有一半了?没错,我就是没骗你!确实如学过统计的同学所说,此例中,服从参数为n=1000和p=0.49的二项分布,但P(x>=501)(只要超过501个人不选他的情况都要算上)才应该是正解,而非P(x=501),因此:
P(x>=501)=∑_(i=501)^nP(x=i)=∑_(i=501)^n C_n^i p^i 〖(1-p)〗^(n-i)=0.2532498
事实胜于雄辩, 为简单起见,可随机选择3人进行投票(各位看官可手动算一算),则x~binum(3,0.49):
P(x>=2)=P(x=2)+P(x=3)=C_3^2 〖0.49〗^2 〖(1-0.49)〗^(3-2)+C_3^3 〖0.49〗^3 〖(1-0.49)〗^(3- 3)=3*0.49^2*0.51+0.49^3=0.485002
也要比0.49小,但比1000个人投票时不当选的概率要大。是不是有什么启发?没错,大声说出你的答案:人越多当选的概率越大
!当群体样本越大时,所做决策越近似于期望的结果,比如此例中,该leader尽管只有51%的人支持他,但当人口基数够大时,他当选的几率就会越大。这么说可能大家觉得我在瞎编,下面来点干货,看下图:
看到这里,大家可能有点恍然大悟了,哦,原来如此。我这里解释一下,上图给出了在个体数目为n时(个体是随机选择的,在总体中可近似为放回抽样),个体做某个决策时的概率p1(横坐标)与个体数目为n的群体按照少数服从多数的投票原则做出该项决策的概率p2(纵坐标)之间关系的曲线图。个体决策概率p1小于50%时,样本量越大,群体决策概率相对于个体决策概率p1越小,越接近于0;而个体决策概率p1大于50%时,则有相反的结论!
讲半天,大家可能已经自主地将这个和组合算法联系在一起了,组合算法的个体学习器好比此例的选民(就是我这种没有任何机会投票的屁民),支持与否类比目标变量的0-1,人群(样本量)越多,越有可能做出正确的决策。当然这里与集成学习还是有一定差异的,在集成学习中没有哪一个个体学习器是完全独立的,所以随机森林不仅从样本抽取是随机的,每个节点的候选特征选择也是随机的,以减少各个个体学习器之间的相关程度。尽管非完全独立的伯努利试验,但依旧不妨碍组合方法的优越性。
以上属个人观点,不当之处请指正!