基本流程
核心思想:通过构建一个树状模型来对新样本进行预测
-
主要结构:一棵决策树包含一个根节点、若干内部节点与叶结点。叶结点对应于决策结果,其他节点对应于一个测试属性。每个样本根据测试属性被划分到子节点中,根节点包含样本全集。
image-20200513074241388.png CHAID
Chi-square automatic interaction detection (CHAID) is a decision tree technique, based on adjusted significance testing (Bonferroni testing). The technique was developed in South Africa and was published in 1980 by Gordon V. Kass, who had completed a PhD thesis on this topic. CHAID can be used for prediction (in a similar fashion to regression analysis, this version of CHAID being originally known as XAID) as well as classification, and for detection of interaction between variables. CHAID is based on a formal extension of the United States' AID (Automatic Interaction Detection) and THAID (THeta Automatic Interaction Detection) procedures of the 1960s and 1970s, which in turn were extensions of earlier research, including that performed in the UK in the 1950s.
CHAID(2*2)
目标变量 | Y | |||
---|---|---|---|---|
Positive | Negtive | |||
Left | ||||
X | Right | |||
在垂直X的方向上寻找一个分界线使得Y在分割线左右的分布差异最大,等价于最大化统计量
-
决策树学习算法
image-20200513075900540.png-
递归返回条件:
当前结点包含的样本全属于同一个类别,无法划分
-
当前属性集为空或所有样本在所有属性上取值相同,无法划分
将当前结点标记为叶结点,并将其类别设定为大多数样本的类别,利用了当前样本的后验分布
-
当前结点包含的样本集合为空
将当前结点标记为叶结点,并将其类别设定为父节点大多数样本的类别,利用了当前样本的先验分布
-
信息熵
假定当前样本集合中第
类样本(分类变量)所占比例为
,则其信息熵定义为
假定离散属性有
个可能的取值
,使用
来对样本集
进行划分,会产生
个分支结点,其中第
个分支结点包含了
中所有在属性上取值为
的样本,记为
则可计算出
的信息熵,再考虑不同分支结点包含的样本数的不同,给分支结点赋予权重
,计算出如下的信息增益:
根据信息增益选择对应的属性作为分支属性
ID3(迭代二分器)决策树学习法以信息增益为准则选择划分属性
-
熵和Bit
一个等概率的二选一事件具有1Bit的不确定性,信息熵的单位是Bit
-
离散型随机变量与连续型随机变量关于熵的定义
离散型随机变量
只取有限个数值
连续随机向量有类似定义,更一般地,对于连续随机向量X,如果有联合密度分布,则
-
-
熵的性质
image-20200513232726681.png
image-20200513233405545.png 条件熵
条件熵的交换性质
联合熵
对于一对随机变量(X,Y),具有联合分布P(x,y)可以定义联合熵
对于两个以上的变量,该式有一般形式
存在不等式
-
决策树划分依据
信息增益(ID3决策树)[最大]
增益率(C4.5决策树)[最大]
基尼指数(CART决策树)[最小]
-
剪枝
-
预剪枝:
对每个结点在划分前先进行估计,若该结点的划分不能带来决策树泛化性能提升,则停止划分.
预剪枝基于"贪心"本质,所以有欠拟合的风险.
-
后剪枝
先生成一棵完整的决策树,然后自底向上对非叶结点考察,若该结点替换为叶结点能带来决策树泛化性能提升,则将子树替换为叶结点.
缺点是时间开销大.
若后剪枝过程中减去一个结点和保留结点对泛化性能无影响,仍应该减去(奥卡姆剃刀原则)
-
-
连续值处理
选择依据
- 不同临界值的同名连续值变量可在决策树的一个分支上多次出现(对比类别变量)
-
缺失值处理
-
划分属性选择
给定训练集
和属性
,令
表示
中在属性
上没有缺失值的样本子集。
假定属性
有
个可取值
,令
表示
中在属性
上取值为
的样本子集,
表示
中属于第
类
的样本子集
假定为每个样本
赋予一个权重
,并定义
基于此,我们将信息增益的计算式推广为
- 样本划分
- 若样本在划分属性上取值已知,则将样本划入与其取值对应的子结点,且样本权值在子结点中保持不变
- 若样本在划分属性上取值未知,则将样本同时划入所有子结点,且样本权值在与属性值对应的子结点中调整为
-
多变量决策树
单变量决策树生产的分类边界平行于坐标轴,但存在不足:生成决策树的深度较大,这意味着更多次的循环与递归,计算开销过大
多变量决策树使用倾斜的划分边界,在该类决策树中,非叶结点是一个形如的线性分类器,其 中
是属性
的权重,
和
可以在该结点所含的样本集和属性集上学得
CART回归树
-
回归模型
数据由
个输入值和一个返回值组成,即对于
个观测值:
其中
,
训练算法将决定在选择哪些分量作为划分变量以及其划分位置
假设我们最初有一个划分能将特征空间划分为
个区域
,根据每个区域内样例的返回值
作为常量,得到如下回归模型:
如果将作为确定
得到标准,则:
之后采用贪婪算法,按照如下规则找到划分变量与划分位置
得到特征空间的一个划分-
如何确定树的深度?(浅会导致欠拟合,深会导致过拟合)
树的大小是一个需要基于数据集特征进行调节训练得到的参数
仅仅根据结点数据的误差平方和是否超过某一阈值来进行判断是目光短浅的做法,因为下一层的结点可能会有更小的误差平方和
因此采用先生成完整树再进行剪枝的方式找到最优树
-
cost-complexity pruning
定义子树
给树的每一个结点编号,第
个结点代表区域
用
表示树中的终端结点
由此定义cost complexity criterion
对于给定的找到使得
最小的子树
weakest link pruning:
连续地压缩这样的内部结点,有最小的
直到产生单节点(根)树
这会产生一个子树序列,一定包含使得
最小的子树
-
小结
-
树的主要问题是较高的方差,通常数据的一个微小变化将导致一系列不同的分裂,使得解释具有不稳定性
造成这种不稳定的主要原因是过程的分层本质:顶层分裂中的错误影响将被传播到下层的所有分裂
通过尝试使用较稳定的分裂准则,可以在某种程度上缓解这种影响,但无法消除这种固有的不稳定性
决策树只适用于预测变量无关的情形,缺乏光滑性
在各个阶段可以考虑对每个结点进行多路分裂来分成多个组,而不是把每个结点都分裂成两组。但多路分类会导致子树过快到达叶结点,降低树的深度。(多路分类可以由一系列的二叉分裂实现,所以在树的算法里都使用二叉分裂[类似对连续属性的处理])
决策树的量化评估标准
- 预测的准确性:停止准则
- 模型的稳健性:剪枝
- 描述的精炼性:
- 选择拆分变量
- 拆分变量的次序
- 计算的复杂性:
- 拆分的数量
- 树的结构
- 处理的规模性:训练数据的大小
参考资料
机器学习 周志华
信息论(3)——联合熵,条件熵,熵的性质 https://zhuanlan.zhihu.com/p/36385989
The Elements of Statistic Learning