- 359
- 0
- 约 10页
- 2017-05-27 发布于河南
- 举报
机器学习经典算法详解及Python实现–决策树(Decision Tree) _ 数盟
20 15/ 11/30 机器学习经典算法详解及Python实现–决策树 (Decision Tree ) | 数盟
文章 技术专区 人工智能 机器学习经典算法详解及Python实现–决策树 (Decision Tree)
机器学习经典算法详解及Python实现–决策树 (Decision Tree)
人工智能 小林子 11个月前 (12-24) 6845℃ 0评论
作者:Adan
(一)认识决策树
1 ,决策树分类原理
决策树是通过一系列规则对数据进行分类的过程。它提供一种在什么条件下会得到什么值的类似
规则的方法。决策树分为分类树和回归树两种,分类树对离散变量做决策树,回归树对连续变量
做决策树。
近来的调查表明决策树也是最经常使用的数据挖掘算法,它的概念非常简单。决策树算法之所以
如此流行,一个很重要的原因就是使用者基本上不用了解机器学习算法,也不用深究它是如何工
作的。直观看上去,决策树分类器就像判断模块和终止块组成的流程图,终止块表示分类结
果 (也就是树的叶子)。判断模块表示对一个特征取值的判断 (该特征有几个值,判断模块就有
几个分支)。
如果不考虑效率等,那么样本所有特征的判断级联起来终会将某一个样本分到一个类终止块
上。实际上,样本所有特征中有一些特征在分类时起到决定性作用,决策树的构造过程就是找到
这些具有决定性作用的特征,根据其决定性程度来构造一个倒立的树–决定性作用最大的那个特
征作为根节点,然后递归找到各分支下子数据集中次大的决定性特征,直至子数据集中所有数据
都属于同一类。所以,构造决策树的过程本质上就是根据数据特征将数据集分类的递归过程,我
们需要解决的第一个问题就是,当前数据集上哪个特征在划分数据分类时起决定性作用。
为了找到决定性的特征、划分出最好的结果,我们必须评估数据集中蕴含的每个特征,寻找分类
数据集的最好特征。完成评估之后,原始数据集就被划分为几个数据子集。这些数据子集会分布
在第一个决策点的所有分支上。如果某个分支下的数据属于同一类型,则则该分支处理完成,称
为一个叶子节点,即确定了分类。如果数据子集内的数据不属于同一类型,则需要重复划分数据
子集的过程。如何划分数据子集的算法和划分原始数据集的方法相同,直到所有具有相同类型的
数据均在一个数据子集内 (叶子节点)。如下图就是一个决策树实例 (目标是两类–见或者不
见,每个样本有年龄、长相、收入、是否公务员四个特征):
2 , 决策树的学习过程
http://dataunion .org/5107 .html 1/ 10
20 15/ 11/30 机器学习经典算法详解及Python实现–决策树 (Decision Tree ) | 数盟
一棵决策树的生成过程主要分为以下3个部分:
特征选择:特征选择是指从训练数据中众多的特征中选择一个特征作为当前节点的分裂
标准,如何选择特征有着很多不同量化评估标准标准,从而衍生出不同的决策树算法。
决策树生成: 根据选择的特征评估标准,从上至下递归地生成子节点,直到数据集不可
分则停止决策树停止生长。 树结构来说,递归结构是最容易理解的方式。
剪枝:决策树容易过拟合,一般来需要剪枝,缩小树结构规模、缓解过拟合。剪枝技术
有预剪枝和后剪枝两种。
3 ,基于信息论的三种决策树算法
划分数据集的最大原则是:使无序的数据变的有序。如果一个训练数据中有20个特征,那么选取
哪个做划分依据?这就必须采用量化的方法来判断,量化划分方法有多重,其中一项就是“信息
论度量信息分类”。基于信息论的决策树算法有ID3、CART和C4.5等算法,其中C4.5和CART两
种算法从ID3算法中衍生而来。
CART和C4.5支持数据特征为连续分布时的处理,主要通过使用二元切分来处理连续型变量,即
求一个特定的值-分裂值:特征值大于分裂值就走左子树,或者就走右子树。这个分裂值的选取
的原则是使得划分后的子树中的“混乱程度”降低,具体到C4.5和CART算法则有不同的定义方
式。
ID3算法由Ross Q
原创力文档

文档评论(0)