机器学习笔记-Decision Tree
来源:互联网 发布:淘宝培训班杭州 编辑:程序博客网 时间:2024/05/23 00:02
集成学习系列:
- Blending and Bagging
- Adaptive Boosting
- Decision Tree
- Random Forest
- Gradient Boosted Decision Tree
Decision Tree
上一篇讲解了
Decision Tree Hypothesis
总结aggregation
到现在为止, 这一篇和上一篇都属于
Uniform 方式:如果所有的g 的重要性都是一样的, 我们可以使用uniform 的方式,通过投票或者平均来进行融合,或者说给每一个g 的权重都设置为1Non -uniform 方式:如果g 的重要性是不同的, 那么可以使用non -uniform 的形式来对g 进行融合。这时可以将所有的g 当成是一个特征转换,将进行了特征转换之后的数据丢到一个linear model 里面去求解参数作为各自的重要性就可以了conditional 方式:如果要在不同的情形下使用不同的g ,同样的我们的做法是将所有的g 当成是特征转换,在two level learning 的第二层的学习的时候,不再使用linear model ,而是使用一个非线性的模型,这样就可以做到conditional 的blending 。
另一种面向是我们并不知道有哪些
- 如果想要做
uniform 的aggregation 的话,就是用Bagging ,在Bagging 中,我们首先针对资料D 做bootstrap 来得到一些不同的资料D~t ,再在这些资料的副本上得到不同的g ,最后将它们uniform 的融合起来。 - 如果是要做
linear 的aggregation 的话,可以使用Adaboost ,在AdaBoost 中通过调整样本的权重,得到不同的g ,然后linear 的将它们融合起来。 decision tree 解决的问题是要在不同的条件下使用不同的g , 并且g 和conditional 事先不知道,需要通过学习获取的情形。
以上的内容可以总结为如下的表格:
一个决策树的示例
如下图就是一棵决策树,用于决策下班之后要不要学习在线课程。 例如,我要先看下下班的时间早不早,如果下班早的话,再看看有没有约,如果没有约的话就学习在线视频,如果有约的话就不学习了。等等。所以一个判断的过程就是从决策树的
一棵
gt(x) 称为base hypothesis ,在这里表示的是叶子节点上的决策,这里使用的是常数,和在bagging 和adaboost 中一样gt 是组成G 的部分。qt(x) 是condition ,即判断特征是否满足条件,或者是不是在某些路径path 上。
或者我们从数据结构角度出发,可以通过如下的递归的方式来描述决策树:
其中,
综合可以得到决策树的两种视角:
- Path View:
G(x)=∑Tt=1|[x on path t]|⋅leaft(x) - Recursive View:
G(x)=∑Cc=1|[b(x)=c]|⋅Gc(x)
以上只是给出了对决策树模型的一些定义和数学上的描述,不是很重要,我们需要知道的是
Decision Tree Algorithm
决策树算法介绍
上一小节我们介绍了
通过这样的一个对决策树的递归的表示我们也可以大概的写出决策树的构造步骤。
构造
Decision Tree(input:D={(xn,yn)}Nn=1 )
if 终止条件满足
返回 base hypothesis gt(x)
else
1. 从资料中找出最好的用于划分资料的特征
2. 根据以上找到的特征将资料划分为若干块 Dc ,具体分为几块(c 的大小)视该特征的不同的取值的个数,或者算法具体使用的技巧而定。
3. 使用每一个 Dc 构造一个子树
4. 将所有的子树合并起来形成最后的 Decision Tree , 即G(x)
通过上面的描述要想从
- 如何决定进行划分数据的特征
- 分支的个数
- 终止的条件
- 满足终止条件的情况下怎么决定返回的
base hypothesis
Classification and Regression Tree(CART)
Impurity
怎么衡量不纯度
- 对于
regression 来说,首先计算划分后的数据的所有真实值的均值y¯=average of {yn} , 不纯度的计算公式如下:impurity(D)=1N∑n=1N(yn−y¯)2(1) - 对于
classification 来说,找到数据中出现次数最多的类别y∗ ,即y∗=majority of {yn} , 剩下的其他的类别的个数的总和就可以描述该数据集的不纯度,其中N 为该数据子集的大小:impurity(D)=1N∑n=1N|[yn≠y∗]|
当有了不纯度的定义之后, 就可以在所有的
对于
例如对于
在
四个基本的问题中还剩一个问题,终止条件是什么。第一种情况是当所有的
Decision Tree Heuristics in CART
CART算法的流程
if cannot branch anymore
return gt(x)=Ein optimal constant
else
1.learn branching criteria
b(x)=argmindecision stumps h(x)∑c=12|Dc with h|⋅impurity(Dc with h)
2.plit D to 2 parts Dc={(xn,yn):b(xn)=c}
3.build sub tree Gc⟵DecisionTree(Dc)
4.return G(x)=∑2c=1|[b(x)=c]|Gc(x)
简单总结一下
加规则化因子
如果所有
定义
现在我们的目标就是要在所有的决策树中找
实际操作中, 我们首先通过
Decision Tree的一些其他的特点
在实际的应用中,可能
另外一个优点是,
CART算法的表现
针对如下的这个二元分类问题,我们来对于以下
以下是
看到这个图以及在下一个数据集上的分割线,发现自己有一个疑惑。在决策树的另一种实现算法
贴几个复杂的资料上的结果,加深对
在
在
在
在
CART在实际应用中的优点
- 结果的可解释性
- 可以轻易的处理多类别的分类
- 可以应对
categorical features - 可以解决特征缺失的问题
- 能非常高效的得到一个非线性的模型
- 训练和测试的效率都比较高
总结
这篇讲解了
- 机器学习笔记-Decision Tree
- 机器学习笔记-Gradient Boosted Decision Tree
- 【机器学习】决策树(Decision Tree) 学习笔记
- 机器学习技法课程学习笔记9 -- Decision Tree
- 机器学习技法-Decision Tree
- 【机器学习】决策树(Decision Tree)
- 《机器学习技法》第九讲:Decision Tree
- 机器学习: 决策树(Decision Tree)
- 机器学习之决策树(Decision Tree)
- 机器学习:决策树(Decision Tree)
- 机器学习之:决策树(Decision Tree)
- 机器学习算法实践:决策树 (Decision Tree)
- 机器学习(三)决策树算法Decision Tree
- 深入机器学习系列6-decision-tree
- 决策树(Decision Tree)-机器学习ML
- 机器学习---决策树(decision tree)算法
- 机器学习---决策树decision tree的应用
- 机器学习技法-Gradient Boosted Decision Tree
- 区块链开发(一)搭建基于以太坊的私有链环境
- 千里追踪博客之殇
- Java 抽象类和接口的区别
- 1008. 数组元素循环右移问题 (20)
- 文件系统
- 机器学习笔记-Decision Tree
- 遗传算法
- 自定义带箭头圆圈,自定义点击事件可以加减速,暂停继续,自动旋转
- Impala简介
- Tyvj1147
- Redis常用数据类型介绍、使用场景及其操作命令
- web部分笔记(1)servlet/jsp
- 为什么类和接口不能使用private和protected?接口的方法不能使用private、protected、default
- HDU 6194 String String String (后缀数组+线段树, 2017 ACM/ICPC Asia Regional Shenyang Online)