您的位置:首页 > 其它

《机器学习》读书笔记 6 第4章 决策树

2017-08-27 11:34 225 查看
一 基本流程

决策树是基于树结构来进行决策的。决策过程中提出的每个判定问题都是对某个属性的测试(判断)。

对训练集D、属性A,决策树生成函数TreeGenerate(D,A):

TreeGenerate(D,A)

{

生成节点node

if D中样本都属于类C :将node标记为C类叶节点,return

if A为空集 或 D中在A上取值都相同(所有样本在所有属性上取值相同,无法划分):将node记为叶节点,其类别标记为D中样本最多的类,return

从A中选择最优划分属性a*

for a*的每个取值a*v do

为node生成一个分支,令Dv表示D中在a*上取值为a*v的样本子集;

if Dv为空:将分支节点记为叶节点,其类别标记为D中样本最多的类;return

else 以TreeGenerate(Dv,A\{a*})为分支结点

end for

}

二 划分选择

决策树学习的关键是选择最优划分属性。

1.信息增益

信息熵:是度量样本集合纯度最常用的一种指标。假定当前样本集合D中第k类样本所占的比例为,则D的信息熵定义为:

Ent(D)的值越小,则D的纯度越高。

信息增益:假定离散属性a有V个可能的取值,若使用a来对样本集D进行划分,则会产生V个分支结点,其中第v个分支结点包含了D中所有在属性a上取值为av的样本,记为Dv,用属性a对样本集D进行划分所获得信息增益的公式为:

信息增益越大,则意味着使用属性a来进行划分所获得的纯度提升越大。ID3决策树就是使用信息增益来选择划分属性的。

2.增益率

信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好的不利影响。C4.5决策树使用增益率来选择最优划分属性。

增益率定义为:

其中

 称为属性a的固有值。

增益率准则对可取值数目较少的属性有所偏好,C4.5先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。

3.基尼指数

CART(分类和回归树)决策树使用基尼指数来选择划分属性。

数据集D的纯度可用基尼值来度量:

直观来说,基尼值反映了从数据集D中随机抽取两个样本,其类别不一致的概率。

属性a的基尼指数定义为

选择那个使得划分后基尼指数最小的属性作为最优划分属性。

三 剪枝处理

剪枝是决策树对付过拟合的主要手段。基本策略有预剪枝、后剪枝。

预剪枝:是指在决策树生成过程中,对每个结点在划分前进行估计,若当前结点的划分不能带来决策树泛化性能的提升,则停止划分,将当前结点设为叶节点。

后剪枝:先训练出决策树,然后自底而上对非叶结点进行考察,若将该结点替换为叶节点能够带来泛化性能的提升,则将该结点设为叶节点。

预剪枝可以减少训练、测试开销。但有些分支的当前划分虽不能提升泛化性能,但后续分支有可能提升泛化性能。预剪枝还可能导致欠拟合。

后剪枝通常保留更多分支,欠拟合风险小,但训练开销要比预剪枝大的多。测试开销也较大。

四 连续与缺失值

1.连续值处理

连续属性的取值数目不再有限,不能直接根据连续属性的可取值来对结点进行划分。因此需要使用连续属性离散化技术,最简单的策略是二分法。

给定样本集D和连续属性a,假设a在D上出现了n个值,将这些值从小到大排序,记为{a1,a2,...an}。划分点t,可将D划分为两个子集。对相邻的属性取值ai、ai+1来说,t在半闭半开区间ai, ai+1中任意值所产生的划分结果相同。因此,对连续属性a,我们可以考察包含n-1个元素的候选划分点集合(所有属性值的两两中位点)。

对信息增益函数略加改造,作为划分标准。

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

2.缺失值处理

现实任务中常会遇到不完整样本,即样本的某些属性值缺失。

让同一个样本以不同概率(一般是各取值的出现比例)划入到不同子结点中去。

五 多变量决策树

若我们把每个属性视为坐标空间的一个坐标轴,则d个属性描述的样本就对应d纬空间中的一个数据点,对样本分类,则意味着在这个坐标空间中找不同样本之间的分类边界。决策树所形成的分类边界有一个明显特点:轴平行,即它的分类边界由若干个与坐标轴平行的分段组成。

若使用斜的划分边界,则决策树模型会大为简化。多变量决策树中,非叶结点不再是某个属性,而是对属性的线性组合。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: