机器学习岗位面试问题汇总 之 集成学习

自己结合网络内容总结,欢迎指正欢迎补充。

最新更新:20170626—版本1(只给出问题)
最近更新:20170627—版本2(补充答案)

总体性问题

1.学习器结合可能带来的好处
(1)提高泛化能力 (2)减低局部最优风险 (3)假设空间扩大,更好相似

2.模型融合的方法/策略
(1)2个平均 (2)3个投票 (3)学习法:stacking

3.常见融合框架的原理;优缺点;融合一定会提升性能么?为什么融合可能会提高预测效果?
原理:多个比一个好+保证准确度、防止过拟合+弱学习器明显+好而不同
常见:bagging(并行+少方差),boosting(串行+少偏差),stacking(输出–>输入)
不一定,好而不同
模型有差异、体现不同表达能力

4.Bagging 和 Boosting 的区别和联系
联系:多个基学习器学习+多基学习器共同预测
区别:(1)取样方式==>精度 (2)训练集相关性===>并行/串行 (3)预测函数是否含权重

5.为什么说Bagging是减少了方差(variance),而Boosting是减少了偏差(bias)?
Bagging和boosting的原理导致的

R F

1.简要说明RF
一种集成方法、bagging的思想、分类和回归、树构成、学习过程+预测过程、优缺点

2.RF与传统bagging的区别
(1)采样:RF有放回选取和整体样本数目相同的样本,一般bagging用的样本<总体样本数 (2)特征采样:RF对特征进行采样,BAGGING用全部特征

3.RF的学习过程和预测过程
学习过程:N个样本有放回选N个,M个特征选m个,训练树(全分裂=无法继续分裂/所有样本指向同一分类),如此重复直至训练k棵树
预测过程:k棵树分别训练,多数投票/均值得最终结论

4.RF的随机性体现在哪里?
取样本、选特征

5.RF的参数问题(sklearn)
弱学习器最大迭代次数,oob_score,max_feature特征数:M=sqrt(M)/log2,树的深度,树的个数(与具体样本有关),叶子节点最小分裂数
N_estimators—>max_depth+min_samples_split—>min_samples_split+min_samples_leaf—->max_feature
参考:
RF调参经验:http://www.cnblogs.com/pinard/p/6160412.html
RF分类官方API:
http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html#sklearn.ensemble.RandomForestClassifier
RF回归官方API:
http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestRegressor.html#sklearn.ensemble.RandomForestRegressor

6.RF的泛化误差估计
Oob,用未被选择到的样本进行误差估计

7.RF的学习算法
ID3:离散 C4.5:连续 CART:离散或连续

8.RF的优点
(1)在数据集上表现良好,在当先很多数据集上要优于现有的很多算法 (2)可以并行,且不是对所有属性进行训练,训练速度相对较快 (3)防止过拟合 (4)能够处理高维特征,且不用做特征选择,可以给出特征重要性的评分,训练过程中,可以检测到feature的相互影响 (5)泛化误差估计 (6)实现简单 (7)创建RF时,对泛化误差进行的是无偏估计

GBDT

1.简要说明GBDT
Boosting算法,但与传统boosting有区别、拟合上一步的残差,传统意义上说不能并行,只能用CART回归树,降低偏差

2.GBDT与传统Boosting(AdaBoost)的区别
迭代思路不同:传统boosting对训练样本进行加权,GBDT则是拟合残差,下一棵树沿残差梯度下降的方向进行拟合

3.GBDT正则化的方式
(1)同AdaBoost,通过步长 (2)CART树的剪枝 (3)子抽样,不放回,SGBT,可以实现一定程度上的并行

4.GBDT的优缺点
优点:(1)调参少的情况下,准确率也高(SVM) (2)灵活处理各种数据,包括连续和离散,无需归一化处理(LR) (3)模型非线性变换多,特征不用经过复杂处理即可表达复杂信息 (4)从一定程度上可以防止过拟合,小步而非大步拟合
缺点:(1)一般来说传统的GBDT只能串行,但是也可以通过子采样比例(0.5~0.8)实现某种意义上的并行,但一般这就不叫GBDT了。 (2)对异常值敏感,但是可以采取一些健壮的损失函数缓解,如Huber./Quantile损失函数

5.GBDT预测时每一棵树是否能并行?
可以,训练需串行,预测可并行

6.GBDT和RF的区别与联系
联系:多棵树进行训练+多棵树共同进行预测
区别:(1)取样方式 (2)预测时,RF多数投票,GBDT加权累加 (3)样本的关系—>并行和串行 (4)学期器的种类,GBDT只能用CART回归树 (5)对异常值的敏感性 (6)通过减少方差/偏差提高性能

7.GBDT的调参
Learning-rate+n_estimators—->max_deep+min_samples_split—>min_samples_split+min_samples_leaf—->max_feature—>subsample—->learning_rate/2+n_estimators*2
参考:
调参经验:http://www.cnblogs.com/pinard/p/6143927.html
GBDT分类官方API:
http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingClassifier.html#sklearn.ensemble.GradientBoostingClassifier
GBDT回归官方API:
http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingRegressor.html#sklearn.ensemble.GradientBoostingRegressor

8.GBDT的算法推导
见打印资料
参考:http://www.cnblogs.com/pinard/p/6140514.html

XGBOOST

1.XGBOOST相比于GBDT有何不同?XGBOOST为什么快?XGBOOST如何支持并行?
(1)GBDT只能用CART回归树,而XGBOOST可以用CART树(回归/分类),还可以用用想LR之类的线性模型,相当于加入L1、L2正则项的LR或线性回归 (2)列抽样,可以并行,不是树粒度上的,是特征粒度上的,block块,并行计算所有信息增益等信息 (3)可处理多种特征,且对缺失值也不用进行处理 (4)GBDT在残差梯度下降方向拟合,一阶导;XGBOOST泰勒展开至二阶导 (5)近似直方图算法,高效生产候选分割点 (6)shrink,缩减,叶子节点同时乘,防止过拟合 (7)可以自己定义评价函数 (8)代价函数含正则化项,防止过拟合

2.XGBOOST调参
Booster:‘gbtree’;
Objective: “reg:linear”-线性回归/ “reg:logistic”-逻辑回归/ “binary:logistic”-二分类的逻辑回归问题,输出为概率
树模型调参
参考:
调参经验1:http://blog.csdn.net/u010414589/article/details/51153310
调参经验2:http://blog.csdn.net/zc02051126/article/details/46711047
官方API:
http://xgboost.readthedocs.io/en/latest/parameter.html#general-parameters

3.XGBOOST的推导
见打印资料
参考:
xgboost原理:http://blog.csdn.net/a819825294/article/details/51206410
陈天奇xgboost讲义:http://download.csdn.net/detail/u010496169/9881566

AdaBoost

1.简述AdaBoost
扯扯为什么集成,扯扯boosting方法,说明AdaBoost,基学习器可选择多,但一般用决策树(CART)和神经网络

2.AdaBoost的正则化
Rate(步长)

3.AdaBoost的优缺点
优点:(1)容易理解、实现简单 (2)易编码 (3)分类精度高 (4)可以使用各种回归模型构建基分类器,非常灵活 (5)作为二元分类器是,构造简单、结果可理解、少参数 (6)相对来说,不宜过拟合
缺点:(1)只能串行 (2)对异常值敏感

4.AdaBoost的算法步骤
Step1: 初始所有样本权重1/N
Step2: for k in range(K):
Step3: 构建基学习器hk
Step4: 计算错误率:ek
Step5: if ek>0/5 then break;
Step6: 计算该分类器权重:ak
Step7: 计算新的样本权重:wk
Step8: 终止,输出加权最终强学习器
参考:见西瓜书(《机器学习》,周志华)

5.AdaBoost的推导
见西瓜书(《机器学习》,周志华)

6.前向分布算法过程
见《统计学习方法》

参考
《统计学习方法》,李航
《机器学习》,周志华

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值