1.bagging和bossting的区别
bagging全称Boostrap Aggregation(翻译渣,大概是提升聚合的意思吧。。。)
bagging可以理解为并联电路,即将若干个决策树并联起来,然后对他们的分类结果取众数或平均数。
典型的bagging算法有RF(Random Forest,随机森林,面试中也经常问到RF),随机森林的随机主要体现在两个方面:
1.样本随机。每棵决策树都对样本有放回地随机采样,例如有100个样本,我们规定采样比例为60%,那么每棵决策树都随机从这100个样本中取60个样本作为输入。
2.特征随机。每棵决策树训练采用的样本特征都是随机的,例如样本有10个特征,我们规定采用其中的8个特征,那么每棵决策树都随机从这10个特征中选取8个特征进行训练。
最后取所有决策树结果的众数或者平均数作为最终结果。
boosting可以理解为一个串联电路,通过不断调整缩小决策树与预期值之间的残差值,最后达到预期的分类效果。
典型的boosting算法有Adaboost和xgboost,和gbdt一样在后面都单独讲这些算法。
2.stacking和blending的区别
我的理解中,这两种算法都属于比较暴力的融合方法,是一锅大杂烩,把很多基分类器(可以是LR,SVM,RF,DT等等)混合糅杂在一起,但是就stacking和blending而言,他们之间还是有一定的区别的。
stacking先将数据集划分为训练集和测试集,先用训练集对基分类器进行训练,再用测试集通过这些分类器得到一些列输出,再将这些输出作为新样本的特征来训练一个更高层的分类器。
blending则是将样本划分为不重叠的几个部分,分别通过不同的基分类器,然后对这些分类结果取加权值。
未完待续,后面再更新Adaboost,xgboost,gbdt。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
网友评论