《机器学习》(西瓜书)第四章

4.1 决策树基本流程

在对一个事例进行判定时,通常会进行一系列的“子决策”,下一步的考虑基于上一步的前提。一颗决策树包含一个根结点,若干个内部结点和若干个叶结点;叶结点对应于决策结果,其他每个结点对应于一个属性测试;每个结点包含的样本集合根据属性测试的结果被划分到子结点中;根结点包含样本全集。从根结点到每个叶结点的路径对应了一个判定测试序列。

直观地理解:ifelse语句,对一个东西多次判断正反。因此,我们不难得出在决策树中,如何设定判定条件更大可能的将我们需要的东西区别出来十分重要。

三种情形导致递归返回:1:样本全属于同一类别;2:在该属性上取值相同,或属性集为空;3:样本集合为空。

4.2 划分选择

我们希望决策树的分支结点所包含的样本尽可能属于同一类别。选择最优划分属性。

4.2.1 信息增益(ID3决策树学习算法)

信息熵:度量样本集合纯度的一种指标。信息熵越小纯度越高。

Ent\left ( D \right )=-\sum pklog2pk   D的信息熵:第k类样本所占的比例是pk。

注:规定当p为0时,认为信息熵为0。

信息增益:其越大,意味着使用a来作为划分所获得的“纯度提升”越大。对一个属性a有v个可能取值,那么我们可以算出v个分支各自的信息熵。再考虑不同分支上样本数不同,加上Dv/D这个权重。

Gain(D,a)=Ent(D)—\sum \frac{Dv}{D}Ent\left ( Dv \right )

这种方法对可取值数目较多的属性有偏好。

4.2.2 增益率(C4.5决策树算法)

为减少信息增益计算时带来的不好影响,故而使用增益率。

Gain_ratio(D,a)=\frac{Gain(D,a)}{IV(a)}

其中IV\left ( a \right )=-\sum \frac{Dv}{D}log2\frac{Dv}{D}

称为属性a的“固有值”,属性a可能取值多(v多),IV(a)通常大。

这种方法对可能取值少的属性有所偏好,因此C4.5算法并不是直接使用增益率最大的来划分属性,而是使用了一种“启发式”。

启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。

4.2.3 基尼指数(CART指数)

基尼值:Gini\left ( D \right )=1-\sum \left ( pk \right )^{2}(4.5)(该处原式不好键入,详见书上)

基尼值越小,纯度越高。直观:基尼值反应了从数据集D中随机抽取两个样本,其类别标记不一致的概率。

属性a的基尼指数:

Giniindex(D,a)=\sum \frac{Dv}{D}Gini(Dv)

4.3 剪枝处理

为了对付过拟合。我们使用“留出法”,留出一部分作为“验证集”。

4.3.1 预剪枝

对划分前后的泛化性能进行估计。可能会出现这一步泛化能力下降,但是在以后的分支后泛化能力提升许多的情况,导致欠拟合。

4.3.2 后剪枝

先训练出完整的树,然后自底向上对非叶结点考察,如果该子树替换为叶可以提升泛化能力,则剪枝。其相比于预剪枝保留了更多分支,欠拟合风险小,泛化性能好。

4.4 连续与缺失值

4.4.1连续值处理

针对连续属性,利用连续属性离散化技术。采用二分法对连续属性处理(C4.5算法的机制)。给定样本集D和连续属性a,a在D上出现了n个不同取值,按大小排序,基于划分点t,可讲D划分为Dt+和Dt-。可将划分点设为该属性在训练集中出现的不大于中位点的最大值,使得最终决策树使用的划分点都在训练集中出现过。

注意,与离散属性不同,若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性。

4.4.2 缺失值处理

1 如何在属性值缺失的情况下进行划分属性选择?

我们仅可以根据在该属性上没有缺失值的样本子集来判断该属性。

2 给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?

若某个样本在划分属性上的取值已知,则划入对应子结点;若未知,则将其划入所有子结点,且样本权值在于属性值av对应的子结点中调整为rv*wx。(让同一个样本以不同的概率进入不同的子结点中)

4.5 多变量决策树

将每个属性视为一个坐标轴,d个属性意味着d维空间,那么我们对样本分类就是在找不同类样本之间的分类边界,对于决策树而言,其所形成的分类边界有一个特点:“轴平行”。

但当学习任务真实分类比较复杂时就出现了难以近似的问题。

因此,需要多变量决策树“也称斜决策树”来实现对多个属性组合的结果进行分类,所以我们不是要找一个最优划分属性,而是要找合适的线性分类器,整合某几个属性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值