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 f24c9a8 commit 8a4d15f
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 27 deletions.
52 changes: 27 additions & 25 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 @@ -240,6 +240,8 @@
- [xgboost如何处理缺失值](机器学习/集成学习/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
4 changes: 3 additions & 1 deletion 机器学习/集成学习/GBDT.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,11 +98,13 @@ Cart tree,但是都是回归树
- 相同:
- 都是多棵树的组合
- 不同:
- RF每次迭代的样本是从全部训练集中有放回抽样形成的,而GBDT每次使用全部样本
- gbdt对异常值比rf更加敏感
- gbdt是串行,rf是并行
- gbdt是cart回归树,rf是cart分类回归树都可以
- gbdt是提高降低偏差提高性能,rf是通过降低方差提高性能
- gbdt对输出值是进行加权求和,rf对输出值是进行投票或者平均

# GBDT和LR的差异?
从决策边界来说,线性回归的决策边界是一条直线,逻辑回归的决策边界是一条曲线,而GBDT的决策边界可能是很多条线
- 从决策边界来说,线性回归的决策边界是一条直线,逻辑回归的决策边界是一条曲线,而GBDT的决策边界可能是很多条线
- 当在高维稀疏特征的场景下,LR的效果一般会比GBDT好。因为LR有参数惩罚,GBDT容易造成过拟合
16 changes: 15 additions & 1 deletion 机器学习/集成学习/Xgboost.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,4 +62,18 @@ MAPE:![](https://tva1.sinaimg.cn/large/006y8mN6gy1g94mx7uyuej303f0170sj.jpg)
# xgboost特征重要性是如何得到的?
- ’weight‘:代表着某个特征被选作分裂结点的次数;
- ’gain‘:使用该特征作为分类结点的信息增益;
- ’cover‘:某特征作为划分结点,覆盖样本总数的平均值;
- ’cover‘:某特征作为划分结点,覆盖样本总数的平均值;

# XGBoost中如何对树进行剪枝?
- 在目标函数中增加了正则项:叶子结点树+叶子结点权重的L2模的平方
- 在结点分裂时,定义了一个阈值,如果分裂后目标函数的增益小于该阈值,则不分裂
- 当引入一次分裂后,重新计算新生成的左、右两个叶子结点的样本权重和。如果任一个叶子结点的样本权重低于某一个阈值(最小样本权重和),也会放弃此次分裂
- XGBoost 先从顶到底建立树直到最大深度,再从底到顶反向检查是否有不满足分裂条件的结点,进行剪枝

# XGBoost模型如果过拟合了怎么解决?
- 直接修改模型:
- 降低树的深度
- 增大叶子结点的权重
- 增大惩罚系数
- subsample的力度变大,降低异常点的影响
- 减小learning rate,提高estimator

0 comments on commit 8a4d15f

Please sign in to comment.