博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
集成学习专题之GBDT面试
阅读量:4222 次
发布时间:2019-05-26

本文共 2482 字,大约阅读时间需要 8 分钟。

题目和答案来自于网络,相关链接已贴。

春招不易,且学且珍惜~

Q1:GBDT的算法流程?

A:GBDT是通过采用加法模型(基函数的线性组合),不断减小训练过程产生的残差来达到将数据分类或者回归的算法。针对一般损失函数优化困难问题,利用损失函数的负梯度在当前模型的值作为残差的近似值进行求解。

Q2:GBDT如何选择特征?(CART Tree中的特征选择方法)

A:遍历每个特征,然后对每个特征遍历它所有可能的切分点,找到最优特征m的最优切分点j

Q3:GBDT如何构建特征?

A:将样本输入到GBDT生成的树中,所有树的叶子结点可以构建一个向量,输入样本可以获得一个关于叶子结点的0-1向量,将这个向量作为该样本的组合特征,和原来的特征一起输入到逻辑回归当中训练(CTR中GBDT+LR)

Q4:GBDT 如何用于分类?

A:针对样本x每个可能的类都训练一个分类回归树,即每轮的训练都是同时训练k棵树,使用softmax来产生概率。

Q1~Q4 source:

Q5:GBDT通过什么方式减少误差?

A:每棵树都是在拟合当前模型的预测值和真实值之间的误差,GBDT是通过不断迭代来使得误差见小的过程。

Q6:GBDT的效果相比于传统的LR,SVM效果为什么好一些

A:GBDT基于树模型,继承了树模型的优点 [对异常点鲁棒、不相关的特征干扰性低(LR需要加正则)、可以很好地处理缺失值、受噪音的干扰小]
source:

Q7:GBDT 如何加速训练

A:小数据集使用True,可以加快训练。是否预排序,预排序可以加速查找最佳分裂点(不确定)

Q8:GBDT的参数有哪些?

A:分为三类
第一类Miscellaneous Parameters: Other parameters for overall functioning. 没啥用
其实主要是前两种参数。
第二类:Boosting Parameters: These affect the boosting operation in the model.
n_estimators 最大弱学习器的个数,太小欠拟合,太大过拟合
learning_rate 学习率,太大过拟合,一般很小0.1,和n_estimators一起调
subsample 子采样,防止过拟合,太小欠拟合。GBDT中是不放回采样
第三类:Tree-Specific Parameters: These affect each individual tree in the model.
max_features 最大特征数
max_depth 最大树深,太大过拟合
min_samples_split 内部节点再划分所需最小样本数,越大越防过拟合
min_weight_fraction_leaf 叶子节点最小的样本权重和。如果存在较多样本有缺失值,或者分类树样本的分布类别偏差很大,就会引入样本权重,这时我们就要注意这个值了。越大越防过拟合
max_leaf_nodes:最大叶子节点数 ,太大过拟合
min_impurity_split:节点划分最小不纯度
presort:是否对数据进行预分类,以加快拟合中最佳分裂点的发现。默认False,适用于大数据集。小数据集使用True,可以加快训练。是否预排序,预排序可以加速查找最佳分裂点,对于稀疏数据不管用,Bool,auto:非稀疏数据则预排序,若稀疏数据则不预排序

Q9:GBDT如何调参?

A:以上便是整个寻优的过程,接下来把整个过程整理一下:
1、首先使用默认的参数,进行数据拟合;
2、从步长(learning rate)和迭代次数(n_estimators)入手;一般来说,开始选择一个较小的步长来网格搜索最好的迭代次数。这里,可以将步长初始值设置为0.1。对于迭代次数进行网格搜索;
3、接下来对决策树的参数进行寻优
4、首先我们对决策树最大深度max_depth和内部节点再划分所需最小样本数min_samples_split进行网格搜索。【min_samples_split暂时不能一起定下来,因为这个还和决策树其他的参数存在关联】
5、接着再对内部节点再划分所需最小样本数min_samples_split和叶子节点最少样本数min_samples_leaf一起调参;做到这里,min_samples_split要做两次网格寻优,一次是树的最大深度max_depth,一次是叶子节点最少样本数min_samples_leaf。
【具体观察min_samples_split的值是否落在边界上,如果是可以进一步寻优】
6、继续对最大特征数max_features进行网格搜索。做完这一步可以看看寻找出的最优参数组合给出的分类器的效果。
7、可以进一步考虑对子采样的比例进行网格搜索,得到subsample的寻优参数
8、回归到第2步调整设定的步长(learning rate)和迭代次数(n_estimators),注意两者的乘积保持不变,这里可以分析得到:通过减小步长可以提高泛化能力,但是步长设定过小,也会导致拟合效果反而变差,也就是说,步长不能设置的过小。

Q8~Q9 source:

[1]
[2]

Q10:GBDT 实战当中遇到的一些问题 ?

A:略

Q11:GBDT优缺点

A:优点  
可以灵活处理各种类型的数据,包括连续值和离散值。
在相对少的调参时间情况下,预测的准备率也可以比较高。这个是相对SVM来说的。
使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。
缺点:由于弱学习器之间存在依赖关系,难以并行训练数据。不过可以通过自采样的SGBT来达到部分并行。(慢?)[待补充SGBT知识]

Q12:GBDT如何进行正则化?

A:
(1)与Adaboost类似的正则项,即learning_rate
(2)子采样比例subsample
(3)针对基学习器的正则化剪枝操作

Q11~Q12 source:

转载地址:http://kbqmi.baihongyu.com/

你可能感兴趣的文章
关键路径
查看>>
Web前端学习笔记——JavaScript之事件详解
查看>>
Web前端学习笔记——JavaScript之事件、创建元素、节点操作
查看>>
Web前端学习笔记——JavaScript之正则表达式、伪数组、垃圾回收
查看>>
Web前端学习笔记——JavaScript 之继承、函数进阶
查看>>
Web前端学习笔记——JavaScript之面向对象游戏案例:贪吃蛇
查看>>
不做单元测试?小心得不偿失!嵌入式系统单元测试工具,自动生成测试用例
查看>>
一种实用的联网汽车无线攻击方法及车载安全协议
查看>>
光靠欺骗检测是不够的:对抗多目标跟踪的攻击
查看>>
基于微区块链的V2X地理动态入侵检测
查看>>
面向V2C场景的ADAS数字孪生模型构建方法
查看>>
Comma2k19数据集使用
查看>>
面向自动驾驶车辆验证的抽象仿真场景生成
查看>>
一种应用于GPS反欺骗的基于MLE的RAIM改进方法
查看>>
自动驾驶汽车CAN总线数字孪生建模(二)
查看>>
自动驾驶汽车GPS系统数字孪生建模(一)
查看>>
自动驾驶汽车GPS系统数字孪生建模(二)
查看>>
上海控安入选首批工控安全防护能力贯标咨询机构名单
查看>>
自动驾驶汽车传感器数字孪生建模(一)
查看>>
CUDA 学习(四)、线程
查看>>