赞
踩
决策树模型是树形结构,既可以用于分类,也可以用于回归。一颗决策树由结点和有向边组成,结点分为内部结点(包括根结点,表示特征)和叶结点(表示类),有向边的权值表示特征的一个取值。
为了方便描述,设训练数据集D = {(x1,y1),(x2,y2),…,(xN,yN)},其中N为样本个数,|D|表示数据集D的样本容量,|D|=N。
xi = {xi(1),xi(2),…,xi(n)}为输入实例(内部结点),n为特征个数,为了简洁,我们用{A1,A2,…,An,} 来代替{xi(1),xi(2),…,xi(n)},特征Ai有m个不同的取值{a1,a2,…,am}。
根据特征Ai的不同取值将D划分为m个子集D1,D2,…,Dm。|Di|为Di的样本个数,
∑
i
=
1
m
∣
D
i
∣
=
∣
D
∣
\sum_{i=1}^{m}|D_i|=|D|
∑i=1m∣Di∣=∣D∣。
设数据集D有K个类Ck,|Ck|为属于类Ck的样本个数,
∑
k
=
1
K
∣
C
k
∣
=
∣
D
∣
\sum_{k=1}^{K}|C_k|=|D|
∑k=1K∣Ck∣=∣D∣。|Dik|为子集Di中属于类Ck的样本个数。
yi 为类标记(叶结点),我们要做的就是用训练集T构建一个决策树模型,使它能够对实例xi进行正确的分类。
决策树学习算法递归地选择最优特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类的过程。
特征选择在于选取对训练数据具有分类能力的特征,一个没有分类能力的特征是可以扔掉的。
那么什么是没有分类能力的特征呢?用一个特征进行分类的结果和随机分类的结果没有很大区别时,就称该特征没有分类能力。
特征选择的准则是信息增益或信息增益比。为了更好地解释这个准则,我们需要一步步介绍这几个概念。
生成决策树的经典算法主要是ID3和C4.5。
ID3算法用信息增益准则递归地选择最优特征构建决策树,用极大似然估计法计算信息增益,直到所有特征的信息增益均很小或无特征可选为止。但该算法只有树的生成,没有剪枝操作,容易产生过拟合。
ID3算法的具体步骤如下:
C4.5是ID3的改进,唯一的区别是使用信息增益比准则来选择最优特征。
当决策树生成算法过多地考虑如何精确分类训练数据集时,就会构建出过于茂盛的决策树,导致泛化能力不是很高,即出现过拟合。解决过拟合的办法就是简化已生成的树,也就是裁掉一些子树,进行剪枝。
剪枝算法的主要思想为极小化决策树整体的损失函数。
下面来学习一下如何计算这个损失函数。
学会计算决策树的损失函数后,树的剪枝算法就非常好理解了,具体步骤如下:
注:步骤3中每次只从两个树中选择更优的树,此处可以借助动态规划思想实现。
CART算法的全称是分类与回归树模型,顾名思义,既可以用于分类,也可以用于回归,最后生成的决策树是二叉树,左分支取值为“是”,右分支取值为“否”。
CART算法主要由生成和剪枝两部分组成:
基于训练数据集递归地构建尽可能大的二叉决策树。
准则:平方误差最小化
最终生成的回归树相当于把输入空间划分成了M个区域R1,R2,…,RM,每个区域都根据某个准则选则一个输出(比如投票或者求平均值),就像下图这样,把输入空间划分成了4个区域,每个区域对应着一个输出(+1或-1):
最后预测的时候,输入落在哪个区域,就输出哪个区域对应的输出结果。
生成回归树的步骤如下:
准则:基尼指数最小化
与回归树不同的是,分类树将基尼指数最小的特征和特征下的切分点作为最优特征和最优切分点。
基尼指数值越大,集合的不确定性越大,也就越混乱,这一点与之前学的熵相似。
生成分类树的步骤如下:
基于验证数据集(注意在生成过程中用的是训练数据集)对前面步骤生成的树进行剪枝,得到最优决策树。
关于这部分内容,有一篇知乎写的很好
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。