机器学习: ensemble learning

版权声明: 本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/u011467621/article/details/85037944

机器学习: ensemble learning

ensemble learning即把多个模型综合成一个模型。这样往往能达到不错的效果。原因为: 不同的模型可能采用了不同的数据、或对数据的刻画方式角度不一样;直觉上讲,如果一个问题从多个角度去看,那么效果往往会比从单角度看效果更好。

各种ensemble的方法,据说在kaggle比赛中也有明显的效果

ensemble的方式大致分几类:

bagging (bootstrap aggregation):

bootstrap 代表:有放回的重采样。bagging即在原始数据中,首先有放回的重采样出多份数据,每一份数据训练出一个model, 然后再把model组合起来(分类一般采用投票法,回归采用平均法)。

  • bagging可以有效降低模型的variance(可能提高bias), 因为多个模型放在一起,提升了泛化性. 所以bagging对高方差的模型比较有效,比如树模型
  • 多个模型的训练是不互相依赖的,即多个模型可以并行训练

boosting

Boosting involves incrementally building an ensemble by training each new model instance to emphasize the training instances that previous models mis-classified. In some cases, boosting has been shown to yield better accuracy than bagging, but it also tends to be more likely to over-fit the training data(wiki)

  • boosting can give good results even if the base classifier is weak learner(only slightly better than random)
  • base classifier are trained in sequence(注意这里必须串行训练,每一个模型的训练依赖之前的模型,和bagging不同)
  • 所有模型训练完成后,在将所有模型组合到一起
  • 特点: 可以提升对训练数据的拟合,减小bias, 但是可能造成overfitting(增加variance)
  • 例子: adboost, gbdt, gbdt

stacking

分两层,第一层是多种模型利用数据训练出的不同模型,第一层所有模型的输出是第二层模型的输入,第二层模型的输出是最终结果。(个人理解,普通的模型输出综合无非是平均法、投票法。而stacking把所有模型的输出当作了输入,这样就可以学到比平均/投票法更复杂的模型融合方法)

其他

  • Bayes optimal classifier(wiki,T代表training data, h_i 代表第i个假设,最终的结果是多个假设计算出的模型,按照概率加权投票)
    y = arg max c j C h i H P ( c j h i ) P ( h i T ) y=\arg \max_{c_j \in C} \sum_{h_i \in H} P(c_j|h_i) P(h_i|T)

  • Bayesian model combination

猜你喜欢

转载自blog.csdn.net/u011467621/article/details/85037944