机器学习----第四章决策树 学习笔记

引入

  • 决策树希望从给定训练数据集学得一个模型用以对新示例进行分类。一棵决策树的根节点包含的是样本全集,内部结点表示各种判断元素,每个节点的连接路径对应一个判断测试序列,叶子结点即表示分类结果。

  • 决策树是基于树结构来进行决策的,看起来比较简单,但在实际操作过程中,不仅要考虑要将数据的哪些属性纳入决策树判断来,而且要考虑这些属性在决策树中作用的先后顺序。

划分选择

  • 如何选择最优属性,我们可以由信息熵及信息增益来得出。其中,熵就相当于对于一种事物的不确定性;信息就是一种可以调整概率/排除干扰/清楚不确定性/确定情况的物理量。

计算方法:对于一个属性(如色泽),我们先计算该属性里各个分支(如青绿、乌黑、浅白)的信息熵,再由信息熵算出该属性的信息增益;算出该数据集所有属性的信息增益后,相比较即可知道哪个应该优先划分。信息增益最大的就应该做第一轮分支。随后分支分来之后,要再重新计算分别在不同的分支单独的信息熵和信息增益,如此重复。

信息增益对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,C4.5使用增益率来代替信息增益。
CART决策树使用基尼指数(Gini index)来选择划分属性,Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率,即Gini(D)越小,数据集D的纯度越高。

剪枝处理

剪枝(pruning)是决策树学习算法对付“过拟合”(学习得太好以至于反而判断错误)的主要手段。

  • 预剪枝:建立决策树时,我们将该节点划分前后的验证集精度相比较,要是划分后的精度大于划分前的,则该节点应该划分,若划分后的精度大于划分前的,则预剪枝策略将禁止该节点被划分。
  • 后剪枝:先从训练集生成一棵完整决策树。从最下一个非叶节点开始考虑,若是将其剪枝能够提高精度,才进行剪枝。比较:
    1.后剪枝决策树通常比预剪枝决策树保留了更多的分支;
    2.后剪枝决策树的欠拟合风险较少,泛化性能低于预剪枝决策树;
    3.后剪枝由于是自底向上对树中非叶节点逐一考查,所以它的训练时间开销要比预剪枝大得多。

连续与缺失值

  • 前面讨论的都是基于离散属性来生成决策树,但现实学习任务重常常会遇到连续属性,所以我们有必要讨论如何在决策树中使用连续属性。在这里先理解一下离散属性和连续属性的意思:
    离散属性:属性的取值为有限的几个离散的值,如瓜的色泽只有绿、黑、白;
    连续属性:属性的取值为一段联系的区间,如瓜的直径有10cm~30cm。

连续属性的取值不再像离散属性一样是有限的,所以不能像之前那样根据属性的可取值进行划分,而要使用二分法。
二分法:样本集中连续属性的取值有n个,将它们由小到大进行排序,选定某划分点将样本划分为D-和D+,随后我们就可以像离散属性一样使用信息熵和信息增益来考查这些划分点。遍历完每个划分点后,找出信息增益最大的点作为划分点。

  • 缺失值:现实任务上很有可能会出现很多不完整的样本,就是样本中某些数据的某些属性是缺失的。但我们也不能轻易的放弃这些不完整的样本,所以接下来讨论:
    1.如何在属性缺失的情况下进行要划分的属性选择;
    2.若选择划分的属性是缺失的,应该怎么划分。

缺失值处理:对于每个属性,都有一些当前属性缺失了的样本,我们先找出当前属性不缺失的样例,只用不缺失的来计算信息熵和信息增益,再用不缺失的比例(17个样本中有14个不缺失比例为14/17)乘以信息增益,就得到这个属性真正的信息增益。
最后跟之前普通算法一样比较信息增益,决定划分过程,递归执行上述计过程,最后生成决策树。

多变量决策树:能实现斜划分(划分线不平行于坐标轴)甚至复杂划分的决策树。

你可能感兴趣的:(西瓜书,机器学习,机器学习,决策树)