1 ID3算法
1.1 定义:
从根结点开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征的不同取值的结点建立子结点,然后对子结点递归地调用以上方法,构建决策树。
1.2 过程:
输入训练数据集D,特征集A和阈值
阈值是用来和最大信息增益比较的,若最大信息增益
大于阈值
,则按照上面的流程构造子结点。阈值的作用是为了过拟合和控制决策树复杂度。
#举个例子
天气状况 |
温度 |
湿度 |
风速 |
是否打高尔夫球 |
晴 |
高 |
低 |
强 |
否 |
晴 |
高 |
高 |
强 |
否 |
阴 |
高 |
高 |
强 |
是 |
雨 |
中 |
高 |
弱 |
是 |
雨 |
低 |
高 |
弱 |
是 |
雨 |
低 |
低 |
强 |
否 |
阴 |
中 |
低 |
强 |
是 |
晴 |
中 |
低 |
弱 |
是 |
晴 |
低 |
低 |
弱 |
是 |
雨 |
中 |
低 |
强 |
是 |
1.3 剪枝
剪枝分为预剪枝和后剪枝
1.3.1 预剪枝:在决策树构建过程中,在节点划分前进行估计,如果当前节点划分不能带来决策树泛化性能的提升,就停止划分,将当前节点标记为叶节点。
前面的设置信息增益的阈值也是一种预剪枝。除此之外还有
设定深度阈值:限制决策树的最大深度,当树的深度达到设定值时,停止生长。
例如,设定最大深度为 3,当决策树生长到 3 层时,不再进行节点划分。
设定最小样本数阈值:当节点包含的样本数小于某个设定值时,不再对该节点进行划分。
比如,设定最小样本数为 5,若某个节点的样本数小于 5,则该节点成为叶节点。
1.3.2 后剪枝:
决策树的学习的损失函数定义如下:
是树T的叶结点个数
是t结点的样本点数
是控制决策树的复杂度和对训练数据拟合程度之间的权衡。
是t结点的经验熵,其中定义如下:
其中是t结点第k类的样本书,就以前面的高尔夫例子来说,假如这个结点是天气状况,那定义
就是晴天且打高尔夫的数量,
晴天且不打高尔夫的数量,以此类推。
我们再定义:
为模型对训练数据的预测误差
为模型复杂度
#理解
剪枝的过程:
从叶结点开始,分别计算每个叶结点的经验熵,再计算叶结点回缩到其父结点时的树的损失函数,与当前树的损失函数比较,若当前树的损失函数大于回缩到父结点的损失函数,则进行剪枝,即把父结点变成叶结点。重复以上步骤,知道得到损失函数最小的子树。
#举个例子
2 C4.5算法
C4.5的算法与ID3算法区别就是在特征选择的时候不采用信息增益而采用信息增益比,这样可以避免划分特征时选择取值较多的特征。