A.
Boosting:级联顺序训练,不能Model并行(只能每个弱分类器内部Data并行);样本有权重;弱分类器有权重;
Bagging:可并行训练;
偏差:由于分类器的表达能力有限导致的系统性错误,表现在训练误差不收敛;(例如假设错误,比如数据本来符合二次函数,而建模用了一次函数)(在训练集上即可体现出来)
方差:由于分类器对于样本分布过于敏感,导致在训练样本数较少时,产生过拟合;(模型的复杂度相对于样本数过高导致;例如一共100个训练样本,用了复杂的高阶模型)(在训练集上效果特好,在测试集上效果差)
Boosting: 通过逐步聚焦分错的样本,减少集成分类器的偏差;
Bagging: 通过对训练集的多次采样,训练多个不同的模型,来减少集成分类器的方差;
B.
合并基分类器的方法:voting,stacking;
Adaboost: 不是每次都用所有样本,根据样本权重,进行样本采样;
C.
为什么常用的弱分类器是决策树:
1. 便于把样本权重正整合到训练里;(不需要用过采样来加权)
2. 决策树的表达能力和泛化能力,可以通过层数来做折中;
3. “不稳定学习器”更适合做弱分类器;样本点分裂时,随机选择一个特征子集找其中的最优特征,引入了随机性;
神经网络也可,满足“不稳定”,可调各种参数来引入“随机性”;
RandomForest为什么常用决策树:
RandomForest属于Bagging类的集成学习,集成起来降低方差;所以弱分类器最好对样本分布敏感(即不稳定的分类器),这样Bagging才有用武之地。线性分类器或者KNN都是较稳定的分类器,本身方差不大。
D.
梯度提升(例如GBDT),是对函数空间F求导,新F沿着老F梯度的反方向走一步;
梯度下降,是对参数空间W求导,新W沿着老W梯度的反方向走一步;
GBDT的优点:
1. 预测阶段计算速度快(树和树之间可并行)
2. 在分布稠密的数据集上,泛化能力和表达能力都很好,竞赛之王;
3. 决策树做弱分类器,有较好的解释性和鲁棒性,能自动发现特征之间的高阶关系,不需要对输入数据做特征归一化;
GBDT的缺点:
1. 在高维稀疏的数据集上,效果差,不如SVM和DNN;
2. 在文本分类特征上,不如数值特征上效果好;
3. 训练需要串行训练,所以不适合online训练;
E.
xgBoost, 对进行二阶泰勒展开(做自变量,做delta),然后求最优的来使式子最小化;
用贪心法构建不一定最优的树结构;
分裂前后损失函数的差值,一定要大于0,否则就应该停止分裂(预剪枝)