Skip to content

Commit

Permalink
xgboost部分
Browse files Browse the repository at this point in the history
  • Loading branch information
shataowei committed Nov 20, 2019
1 parent d2cb0bc commit 8af8d46
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 38 deletions.
51 changes: 14 additions & 37 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -233,11 +233,13 @@
- [gbdt和randomforest区别](机器学习/集成学习/GBDT.md#L164)
- [GBDT和LR的差异](机器学习/集成学习/GBDT.md#L164)
- [xgboost对比gbdt/boosting Tree有了哪些方向上的优化](机器学习/集成学习/Xgboost.md#L164)
- [xgboost和gbdt的区别](机器学习/集成学习/Xgboost.md#L164)
- [xgboost优化目标/损失函数改变成什么样](机器学习/集成学习/Xgboost.md#L164)
- [xgboost如何使用MAE或MAPE作为目标函数](机器学习/集成学习/Xgboost.md#L164)
- [xgboost如何寻找分裂节点的候选集](机器学习/集成学习/Xgboost.md#L164)
- [xgboost如何处理缺失值](机器学习/集成学习/Xgboost.md#L164)
- [xgboost在计算速度上有了哪些点上提升](机器学习/集成学习/Xgboost.md#L164)
- [xgboost特征重要性是如何得到的](机器学习/集成学习/Xgboost.md#L164)
- FM/FFM
- SVM
- [简单介绍SVM](机器学习/支持向量机/支持向量机.md#L164)
Expand Down
13 changes: 12 additions & 1 deletion 机器学习/集成学习/Xgboost.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@
- 数据事先排序并且以block形式存储,有利于并行计算
- 基于分布式通信框架rabit,可以运行在MPI和yarn上
- 实现做了面向体系结构的优化,针对cache和内存做了性能优化

# xgboost和gbdt的区别?
- gbdt用的是cart回归树作为基模型,xgboost还可以用线性模型,加上天生的正则项,就是带L1和L2逻辑回归(分类)和线性回归(回归)
- gbdt对loss是泰勒一阶展开,xgboost是泰勒二阶展开
- gbdt没有在loss中带入结点个数和预测值的正则项
- xgboost在对特征进行了分block预排序,使得在做特征分裂的时候,最终选增益最大的那个特征去做分裂,那么各个特征的增益计算就可以开多线程进行

# xgboost优化目标/损失函数改变成什么样?
- 原始:![](https://tva1.sinaimg.cn/large/006y8mN6gy1g94mjezeisj307401fmx0.jpg)
Expand Down Expand Up @@ -39,4 +45,9 @@ MAPE:![](https://tva1.sinaimg.cn/large/006y8mN6gy1g94mx7uyuej303f0170sj.jpg)
# xgboost在计算速度上有了哪些点上提升?
- 特征预排序
- 按特征进行存储,每一个block代表一个特征的值,样本在该block中按照它在该特征的值排好序。这些block只需要在程序开始的时候计算一次,后续排序只需要线性扫描这些block即可
- block可以仅存放样本的索引,而不是样本本身,这样节省了大量的存储空间
- block可以仅存放样本的索引,而不是样本本身,这样节省了大量的存储空间

# xgboost特征重要性是如何得到的?
- ’weight‘:代表着某个特征被选作分裂结点的次数;
- ’gain‘:使用该特征作为分类结点的信息增益;
- ’cover‘:某特征作为划分结点,覆盖样本总数的平均值;

0 comments on commit 8af8d46

Please sign in to comment.