决策树系列算法总结——决策树

来源:互联网 发布:linux shell 内置变量 编辑:程序博客网 时间:2024/04/29 18:43

在机器习算学法中,如果留意的话会一直看到这几个算法的身影。下面对这三个算法进行一下梳理。

Decision Tree ——>Random Forest ——>DBDT

基本概念:

Decision Tree:决策树

Random Forest:中文称随机森林

GBDT:Gradient Boosting Decision Tree(梯度提升决策树)。

三者关系:
提到森林,我们就会联想到是一棵棵的树构成了庞大的森林,而本文中的”树“,指的就是Decision Tree —— 决策树。随机森林就是一棵棵决策树的组合,也就是说随机森林=boosting+决策树,这样就好理解多了吧。再来说说GBDT,GBDT全称是Gradient Boosting Decision Tree,就是梯度提升决策树,与随机森林的思想很像,但是比随机森林稍稍的难一点,当然效果相对于前者而言,也会好许多。

Decision Tree

决策树。看到这个名称的时候,相信有的人会attention到tree,于是脑海中就是一个树。有编程基础的你可能会联想到数据结构里面树的结构。而决策树就是利用了树的思想。

定义:

决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。

举一个例子:(借用人家一个简单的例子)
这里写图片描述
该案例用于预测贷款用户是否具有偿还贷款的能力。贷款用户主要具备三个属性:是否拥有房产,是否结婚,平均月收入。每一个内部节点都表示一个属性条件判断,叶子节点表示贷款用户是否具有偿还能力

决策树构造:

可以通过特征选择、剪枝,介绍如何根据已有的样本数据建立一棵决策树。首先介绍下特征选择。选择一个合适的特征作为判断节点,可以快速的分类,减少决策树的深度。决策树的目标就是把数据集按对应的类标签进行分类。最理想的情况是,通过特征的选择能把不同类别的数据集贴上对应类标签。特征选择的目标使得分类后的数据集比较纯。如何衡量一个数据集纯度,这里就需要引入数据纯度函数。下面将介绍两种表示数据纯度的函数。

a、信息增益
信息熵表示的是不确定度。均匀分布时,不确定度最大,此时熵就最大。当选择某个特征对数据集进行分类时,分类后的数据集信息熵会比分类前的小,其差值表示为信息增益。信息增益可以衡量某个特征对分类结果的影响大小。(略)

b、基尼指数
基尼指数是另一种数据的不纯度的度量方法。(略)

算法原理:

Decision Tree算法是一个分类算法。相比贝叶斯算法(后面会补充上贝叶斯和贝叶斯网络两种分类算法),决策树的优势在于构造过程不需要任何领域知识或参数设置,因此在实际应用中,对于探测式的知识发现,决策树更加适用。

总结下,决策数有两大优点:1)决策树模型可以读性好,具有描述性,有助于人工分析;2)效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度。

算法推导

0 0
原创粉丝点击