本文共 2482 字,大约阅读时间需要 8 分钟。
题目和答案来自于网络,相关链接已贴。
春招不易,且学且珍惜~Q1:GBDT的算法流程?
A:GBDT是通过采用加法模型(基函数的线性组合),不断减小训练过程产生的残差来达到将数据分类或者回归的算法。针对一般损失函数优化困难问题,利用损失函数的负梯度在当前模型的值作为残差的近似值进行求解。Q2:GBDT如何选择特征?(CART Tree中的特征选择方法)
A:遍历每个特征,然后对每个特征遍历它所有可能的切分点,找到最优特征m的最优切分点jQ3: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/