首页 > 代码库 > 决策树分类
决策树分类
决策树( Decision Tree )又称为判定树,是运用于分类的一种树结构。当中的每一个内部结点( internal node )代表对某个属性的一次測试,每条边代表一个測试结果,叶结点( leaf )代表某个类( class )或者类的分布( class distribution ),最上面的结点是根结点。决策树分为分类树和回归树两种,分类树对离散变量做决策树,回归树对连续变量做决策树。
构造决策树是採用自上而下的递归构造方法。决策树构造的结果是一棵二叉或多叉树,它的输入是一组带有类别标记的训练数据。二叉树的内部结点(非叶结点)一般表示为一个逻辑推断,如形式为 (a = b) 的逻辑推断,当中 a 是属性, b 是该属性的某个属性值;树的边是逻辑推断的分支结果。多叉树( ID3 )的内部结点是属性,边是该属性的全部取值,有几个属性值,就有几条边。树的叶结点都是类别标记。
使用决策树进行分类分为两步:
第 1 步:利用训练集建立并精化一棵决策树,建立决策树模型。这个过程实际上是一个从数据中获取知识,进行机器学习的过程。
第 2 步:利用生成完成的决策树对输入数据进行分类。对输入的记录,从根结点依次測试记录的属性值,直到到达某个叶结点,从而找到该记录所在的类。
问题的关键是建立一棵决策树。这个过程通常分为两个阶段:
(1) 建树( Tree Building ):决策树建树算法见下,能够看得出,这是一个递归的过程,终于将得到一棵树。
(2) 剪枝( Tree Pruning ):剪枝是目的是减少因为训练集存在噪声而产生的起伏。
决策树方法的评价。
长处
与其它分类算法相比决策树有例如以下长处:
(1) 速度快:计算量相对较小,且easy转化成分类规则。仅仅要沿着树根向下一直走到叶,沿途的分裂条件就行唯一确定一条分类的谓词。
(2) 准确性高:挖掘出的分类规则准确性高,便于理解,决策树能够清晰的显示哪些字段比較重要。
缺点
一般决策树的劣势:
(1) 缺乏伸缩性:因为进行深度优先搜索,所以算法受内存限制大小,难于处理大训练集。一个样例:在 Irvine 机器学习知识库中,最大能够同意的数据集只为 700KB , 2000 条记录。而现代的数据仓库动辄存储几个 G-Bytes 的海量数据。用曾经的方法是显然不行的。
(2) 为了处理大数据集或连续量的种种改进算法(离散化、取样)不仅添加了分类算法的额外开销,并且减少了分类的准确性,对连续性的字段比較难预測,当类别太多时,错误可能就会添加的比較快,对有时间顺序的数据,须要非常多预处理的工作。
可是,所用的基于分类挖掘的决策树算法没有考虑噪声问题,生成的决策树非常完美,这仅仅只是是理论上的,在实际应用过程中,大量的现实世界中的数据都不是以的意愿来定的,可能某些字段上缺值( missing values );可能数据不准确含有噪声或者是错误的;可能是缺少必须的数据造成了数据的不完整。
另外决策树技术本身也存在一些不足的地方,比如当类别非常多的时候,它的错误就可能出现甚至非常多。并且它对连续性的字段比較难作出准确的预測。并且一般算法在分类的时候,仅仅是依据一个属性来分类的。
在有噪声的情况下,全然拟合将导致过分拟合( overfitting ),即对训练数据的全然拟合反而不具有非常好的预測性能。剪枝是一种克服噪声的技术,同一时候它也能使树得到简化而变得更easy理解。另外,决策树技术也可能产生子树复制和碎片问题。
决策树分类