0. Motivation
Can you draw single division line for these classes? We need two lines one for threshold of x and threshold for y .Decision Tree Classifier, repetitively divides the working area(plot) into sub part by identifying lines.
1. 基本流程
递归返回:
(1)当前结点包含的样本全属于同一类别,无需划分
(2)当前属性集为空,或是所有样本在所有属性上的取值相同,无法划分。把当前结点标记为叶结点,类别为该节点所含样本最多的类别。
(3)当前结点包含的样本集合为空,不能划分。把当前结点标记为叶结点,类别设定为其父结点所含样本最多的类别。
2. 划分选择
2.1 信息增益
假定当前样本集合D中第k类样本所占的比例为
信息熵:度量样本集合纯度
信息熵越小,样本集合的纯度越高
假定离散属性a有V个可能的取值,:D中所有在属性a上取值为的样本
:根据不同分支结点所包含的样本数,给分支结点赋予权重,样本数越多的分支结点影响越大
信息增益:
信息增益越大,意味着使用属性a来进行划分所获得的“纯度”提升越大
ID3以信息增益为准则选择划分属性,即在图4.2第八行选择属性
判别是否是好瓜:,正例,反例
(1)计算根结点信息熵:
(2)计算当前属性集合{色泽,根蒂,敲声,纹理,脐部,触感}中每个属性的信息增益。
“色泽”={青绿,乌黑,浅白}
(色泽=青绿)={1,4,6,10,13,17},正例,反例,
(色泽=乌黑)={2,3,7,8,9,15},正例,反例,
(色泽=浅白)={5,11,12,14,16},正例,反例,
同理
选择“纹理”作为划分属性:
基于“纹理”属性对根节点进行划分针对“纹理=清晰”的分支结点,基于计算出各属性的信息增益:
不断对每个分支结点进行上述操作,最终得到
信息增益准则对可取值数目较多的属性有所偏好。
C4.5使用“增益率”来选择最优划分属性。
2.2 增益率
增益率:
属性a的固有值:
属性a的可取值数目越多(V越大),则IV(a)通常会越大
增益率准则对可取值数目较少的属性有所偏好。
因此,C4.5算法没有直接选择增益率最大的候选划分属性,而是先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。
2.3 基尼指数
CART决策树是用“基尼指数”来选择划分属性。
基尼值:,反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。
Gini值越小,数据集D的纯度越高。
属性a的基尼指数:
在侯选属性集合A中,选择那个使得划分后基尼指数最小的属性作为最优划分属性,即
3. 剪枝处理
预剪枝:在决策树的生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶节点。
后剪枝:先从训练集生成一颗完整的决策树,然后自底向上地对非叶节点进行考察,若将该结点对应的子树替换为叶节点能带来决策树泛化性能提升,则将该子树替换为叶节点。
划分训练集和验证集采用信息增益准则生成决策树
3.1 预剪枝
(1)若根结点“脐部”不进行划分,被标记为叶结点,其类别标记为训练样例数最多的类别,假设标记为“好瓜”。用验证集进行评估,编号{4,5,8}被正确分类,{9,11,12,13}被错误分类,精度为42.9%。用属性“脐部”划分后,{4,5,8,11,12}被正确分类,验证集精度为71.4%。因此,用“脐部”划分得以确定。
(2) 对②进行划分,基于信息增益准则挑选出”色泽“,{5}会被错分,划分后验证集精度下降,于是将禁止结点②被划分。
(3) 对③,最优划分属性为”根蒂“,划分前后精度一样,禁止划分。
(4) 对④,其所含训练样例已属于同一类,不再进行划分。
优点:降低过拟合风险,显著减少了训练和测试的时间开销
缺点:基于”贪心“,有欠拟合风险。有些分支当前划分虽然不能提升泛化性能,但在其基础上进行后续划分却有可能导致性能显著提高。
3.2 后剪枝
先从训练集生成一颗完整的决策树。图4.5中决策树的验证集精度为42.9%。
(1) 首先考虑结点⑥,剪枝后的叶结点包含编号{7,15}的训练样本,于是,该叶结点的类别标记为”好瓜“,此时验证集精度提高至57.1%。因此决定剪枝。
(2)考察结点⑤,替换后的叶结点包含{6,7,15},标记为”好瓜“,验证集精度仍为57.1%,可以不进行剪枝。
(3)对结点②,替换后的叶结点包括{1,2,3,14},标记为”好瓜”,此时验证集精度提高至71.4%,于是,决定剪枝。
(4)对结点③和①,替换后精度均未得到提高,于是得以保留。
后剪枝决策树通常比预剪枝决策树保留更多的分支。一般情况下,后剪枝决策树欠拟合风险很小,但其训练时间开销较大。
4. 连续与缺失值
4.1 连续值处理
二分法:给定样本集D和连续属性a,假定a在D上出现了n个不同的取值,捡这些值从小到大进行排序,记为基于划分点t可将D分为子集和,其中包含那些在属性a上取值不大于t的样本,而则包含那些在属性a上大于t的样本。
与离散属性不同,若当前结点划分属性为连续属性,则该属性还可作为其后代结点的划分属性。例如在父结点上使用了“密度<=0.381”,不会禁止在子结点上使用“密度<=0.294”.
4.2 缺失值处理
问题: (1)如何在属性值缺失的情况下进行划分属性选择?
给定训练集D和属性a,令表示D中在属性a上没有缺失值的样本子集。假定属性a有V个可取值,令表示中在属性a上取值为的样本子集,表示中属于第k类的样本子集,显然有,。
假定我们为每个样本x赋予一个权重,并定义
,表示无缺失值样本所占的比例
,表示无缺失值样本中第k类所占的比例,
,表示无缺失值样本中在属性a上取值为的样本所占的比例,
以表4.4的数据为例生成一颗决策树:
学习开始时,根节点包含样本集D中全部17个样例,各样例的权值为1.
属性“色泽”上无缺失值的样例子集,共14个样例。
信息熵
令分别表示在属性“色泽”上取值为“”青绿,“乌黑”,“浅白”的样本子集。
样本子集上属性“色泽”的信息增益为
于是,样本集D上属性“色泽”的信息增益为
类似地可计算出所有属性在D上的信息增益
“纹理”取得最大的信息增益,被用于对根节点进行划分。
问题:(2)给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?
若样本x在划分属性a上的取值已知,则将x划入与其取值对应的子结点,且样本权值在子结点中保持为.
若样本x在划分属性a上的取值未知,则将x划入与所有的子结点,且样本权值与属性值对应的子结点中调整为。
就是让同一个样本以不同的概率划入到不同的子结点中去。
{1,2,3,4,5,6,15}进入“纹理=清晰”分支,{7,9,13,14,15}进入“纹理=稍糊”分支,{11,12,16}进入“纹理=模糊”分支,且样本在各子结点中权重保持1.
{8}在“纹理”上属性缺失,将同时进入三个分支中,但权重在三个子结点中分别调整为。{10}类似。
5 多变量决策树
决策树分类边界的特点:轴平行,这是的学习结果有较好的可解释性,每一段划分都直接对应某个属性取值。
但在真实分类边界比较复杂时,必须使用很多段划分才能获得较好的近似。
多变量决策树:斜划分,非叶结点对属性的线性组合进行测试,不再针对某个属性。
网友评论