分类算法——决策树(1)

决策树归纳是从类标记的训练元组学习决策树。决策树是一种类似于流程图的结构,其中,每个内部节点(非树叶节点)表示在一个属性上的测试,每个分枝代表一个测试输出,而每个树叶节点(或终节点)存放一个类标号。树的最顶层节点是根节点,一颗典型的决策树如下图所示:

分类算法——决策树(1)

1 决策树归纳

典型的算法有ID3 (迭代的二分器)、C4.5CART(分类与回归树),三种算法均采用贪心(即非回溯的)方法,其中决策树以自顶向下递归的分支方式构造。

基本决策树算法如下图所示:

分类算法——决策树(1)

 

给定训练集D,算法的计算复杂度为O(n×|D|×log(|D|)),其中n是描述D中元祖的属性个数,|D|D中训练元组树。

2    属性选择度量

决策树算法之间的差别包括在创建树时如何选择属性和用于剪枝的机制。属性选择度量是一种选择分裂准则,将给定类标记的训练元组的数据划分D“最好”地分成个体类的启发式方法。具有最好度量得分的属性被选作给定元组的分类属性。

设数据划分D为类标记的元组的训练集。假定类标号属性具有m个不同值,定义m个不同的类Ci(i=1,2,,m)。设Ci,DDCi类的元组集合,|D||Ci,D|分别是DCiD中元组个数。

1)信息增益

ID3使用信息增益作为属性选择度量。设节点N代表或存放划分D的元组,选择具有最高信息增益的属性作为节点N的分裂属性。

分类算法——决策树(1)

 

假设现在按属性A划分D中的元组,其中属性A根据训练数据的观测具有V个不同的值{a1,a2,,av}。如果A是离散值的,则这些值直接对应于A上测试的v个输出。可以用属性AD划分为v个子集{D1,D2,,Dv},其中Dj包含D中的元组,它们在A上具有值aj,此时为了得到准确的分类,还需要的信息量为:

分类算法——决策树(1)

 

假定属性A是连续值时,分裂点是A上的阈值。先将A的值按递增排序,每对相邻值的中点都看作是可能的分裂点。这样,给定Av个值,则需要计算v-1个可能的分裂。

2)增益率

ID3的后继C4.5使用信息增益率作为属性选择度量。分裂信息类似于Info(D),定义如下:

分类算法——决策树(1)

 

3Gini指标

Gini指标在CART中使用,Gini指标度量数据划分或训练元组集D的不纯度,定义为:

分类算法——决策树(1)

 

基尼指数考虑每个属性的二元划分。如果A的二元划分将D划分为D1D2,则给定该划分,D的基尼指数为

分类算法——决策树(1)

 

对于每个属性,考虑每种可能的二元划分。对于离散值属性,选择该属性产生最小基尼指数的子集作为它的分裂子集。对于离散属性,其策略类似于信息增益。

对离散或连续属性A的二元划分导致的不纯度降低为

分类算法——决策树(1)

 

最大化不纯度降低(等价地,具有最小基尼指数)的属性为分裂属性。

3    树剪枝

在决策树创建时,由于数据中的噪声和离群点,许多分枝反映的是训练数据中的异常。剪枝方法处理这种过分拟合问题。常用的剪枝方法:先剪枝和后剪枝

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章