0、万恶之源版本号

tensorflow,pytorch,显卡版本,conda版本

1、什么是GBDT?

2、xgboost在GBDT上做了哪些优化?

3、随机森林核心思想有几个,分别是什么?

4、随机森林输出由什么决定?

5、xgboost怎么处理缺失值?

6、xgboost并行化怎么体现?

7、xgboost为什么用泰勒二阶展开?

1、gradient boosting decision tree

一种基于boosting增强策略的加法模型,训练的时候采用前向分布算法进行贪婪的学习,每次迭代都学习一棵CART树来拟合之前 t-1 棵树的预测结果与训练样本真实值的残差。

一种基于boosting增强策略的加法模型,训练时采用前向分布算法进行贪婪学习,每次迭代都学习一棵CART(classification and regression tree)树拟合前t-1棵树的预测结果与训练样本真实值的残差。

增强策略:boosting bagging

2、损失函数进行了二阶泰勒展开

目标函数加入正则项

3、2个,采样和完全分裂

完全分裂:决策树每一次分裂扩张节点时,能分裂必须分裂,分裂依据可以是信息增益/信息增益比

采样:行采样/列采样  分别对应 样本/特征

行采样:模型从M条数据中随机采样m条数据,m一般是M的平方根大小。分别作为每一棵决策树的训练集

保证每棵决策树使用不用的训练集,一定程度上防止过拟合

列采样:每棵决策树都从M个特征中随机挑选m个特征作为节点分裂特征计算

         全局/局部列采样

全局:一棵树建树过程用同一批采样特征

局部:每一次节点分裂时,均匀单独随机挑选m个特征进行扩展。

列采样进一步保证了随机森林不会出现过拟合问题

 4、随机森林输出由每一棵决策树的结果共同决定

分类树 投票

回归树 所有结果的平均值

5、对树中每个非叶子节点,xgboost可以自动学出其默认的分裂方向,若某个样本该特征值缺失,会将其划入默认分支

6、并行化是对特征维度的并行,树还是串行的

xgboost预先将每个特征按特征值排好序,存储为块结构,在后面查找特征分割点的时候可以重复使用,分裂结点时采用多线程并行查找每个特征的最优分裂点,极大提升了训练速度

7、两点

精确性:GBDT一阶泰勒展开,xgboost二阶泰勒展开,更精准的逼近真实的损失函数

可扩展性:支持损失函数自定义,只需新损失函数二阶可导

posted on 2020-07-29 08:58  黑暗尽头的超音速炬火  阅读(132)  评论(0编辑  收藏  举报