从决策树到GBDT
来源:互联网 发布:cnc编程兼职群 编辑:程序博客网 时间:2024/05/22 03:49
决策树
非参数模型:不能用有限个参数来描述,随样本数量变化。
优点:
- 容易解释
- 可扩展到大规模数据,
- 不要求对特征做预处理
- 能处理离散和连续值混合的输入
- 对特征的单调变换,如log、标准化等,不敏感,只与数据的排序有关;
- 能自动进行特征选择;
- 可处理缺失数据等。
缺点:
- 预测正确率不高。+boosing=GBDT
- 模型不稳定,输入数据小的变化(如一两个数据点的取值变化)会带来树结构的变化。+bagging=RamdomForest
- 样本太少时容易过拟合
如何建树
建树目标
使训练集上模型的预测值与真值差距越来越小
建树过程
- 根节点包含全部样本
- 分裂。目标:减小该节点的 [ 不纯净度]。方法:对特征j和阈值T,小于的样本分到左子节点,大于的样本分到右子节点。对左右节点分别计算节点的不纯净度,加权平均作为分裂后的总不纯净度,与父节点的不纯净度进行比较。选择【分裂后的总不纯净度】最小的特征j和阈值T进行分裂。sklearn中DecisionTree穷举搜索所有特征的所有可能取值,把连续特征当作离散特征处理,没有实现剪枝。
- 继续对左右子节点进行分裂。
- 停止分裂。(1)不纯净度减少太少;(2)树的深度超过了最大深度,或叶子节点超过一定数目;(3)左右分支的样本分布足够纯净;(4)左右分支中样本数目足够少。
建树指标
不纯净度
- 分类决策树
- 错分率:
H(D)=1|D|∑i∈DI(yi≠y^)=1−π^y^ - 熵:
H(D)=−∑Cc=1π^clogπ^c - Gini系数:
H(D)=∑Cc=1π^c(1−π^c)=1−∑Cπ^2c
- 错分率:
其中
以5个样本为例,类别分别为[1,1,2,3,4],
错分率为
- 回归决策树
- 属于某一结点的所有样本的y的方差,即L2损失
如何剪枝
剪枝描述
使用校验集来进行剪枝,类似线性模型中的正则项,保证模型复杂度不要太高,防止过拟合
剪枝准则:Cost complexity pruning
其中
剪枝过程
自底向上进行剪枝,直至根节点。
当
GBDT(Gradient boosting descision tree)
Boosting 与 AdaBoost
http://www.jianshu.com/p/a6426f4c4e64
boosting描述:模型输出为多个弱学习器的加权平均
adaptive boosting描述:初始每个样本的权重(分布概率)均为
如何选择弱学习器的权重
确定样本权重w
目标:指数损失最小。考虑两类分类问题,样本标签
如何求解
原问题等价于求解
当
可得
对于
对所有样本求和,可得
若令
即为样本权重更新公式。
确定弱学习器权重α
目标:指数损失最小。此时损失已可以表述为
令
其中
Gradient Boosting
其中
Random Forest(bagging)
模型描述:
其中
阅读全文
0 0
- 从决策树到GBDT
- 从决策树到GBDT再到XGBoost
- 从决策树到GBDT梯度提升决策树和XGBoost
- 【机器学习算法】从决策树到GBDT(一)
- 从决策树到RF,以及boosting Adaboost到GBDT算感悟
- 从决策树到RF,以及boosting Adaboost到GBDT算感悟
- 从gbdt到xgboost
- 从gbdt到xgboost
- 从GBDT到Xgboost
- 从gbdt到xgboost
- 从回归树到GBDT
- 从回归树到GBDT
- 从DT到Random Forest、GBDT
- 从AdaBoost到GBDT(part 1)
- 从AdaBoost到GBDT(part 2)
- GBDT 梯度下降决策树
- 决策树-GBDT-RF-Xgboost
- GBDT:梯度提升决策树
- 趣图:记一次百思不得其解的 Bug/异常
- 最全的常用正则表达式大全
- 自定义String类(C++)----------测试(一)
- 随便说说字符集和编码
- 新人报道
- 从决策树到GBDT
- 什么是数据分析/数据科学?
- Android studio 3.0导入工程遇到的错误
- DPDK Pktgen+Docker搭建VNF环境及验证
- Java交流共享群
- [2017集训队作业自选题#117]Monkey and Tree
- FragmentPagerAdapter与FragmentStatePagerAdapter区别
- aop面向切面编程(aspectJweaver)
- Superset 二次开发