ID3算法和C4.5算法

1 ID3算法

1.1 定义:

从根结点开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征的不同取值的结点建立子结点,然后对子结点递归地调用以上方法,构建决策树。

1.2 过程:

输入训练数据集D,特征集A和阈值\varepsilon

阈值是用来和最大信息增益A_{g}比较的,若最大信息增益A_{g}大于阈值\varepsilon,则按照上面的流程构造子结点。阈值的作用是为了过拟合和控制决策树复杂度。

#举个例子

天气状况

温度

湿度

风速

是否打高尔夫球

1.3 剪枝

剪枝分为预剪枝和后剪枝

1.3.1 预剪枝:在决策树构建过程中,在节点划分前进行估计,如果当前节点划分不能带来决策树泛化性能的提升,就停止划分,将当前节点标记为叶节点。

前面的设置信息增益的阈值也是一种预剪枝。除此之外还有

设定深度阈值:限制决策树的最大深度,当树的深度达到设定值时,停止生长。

例如,设定最大深度为 3,当决策树生长到 3 层时,不再进行节点划分。

设定最小样本数阈值:当节点包含的样本数小于某个设定值时,不再对该节点进行划分。

比如,设定最小样本数为 5,若某个节点的样本数小于 5,则该节点成为叶节点。

1.3.2 后剪枝:

决策树的学习的损失函数定义如下:

C_{\alpha }(T)=\sum_{t=1}^{\left | T \right |}N_{t}H_{t}(T)+\alpha \left | T \right |

\left | T \right |是树T的叶结点个数

N_{t}是t结点的样本点数

\alpha是控制决策树的复杂度和对训练数据拟合程度之间的权衡。

H_{t}(T)是t结点的经验熵,其中定义如下:

H_{t}(T)=-\sum_{k}^{}\frac{N_{tk}}{N_{t}}log\frac{N_{tk}}{N_{t}}

        其中N_{tk}是t结点第k类的样本书,就以前面的高尔夫例子来说,假如这个结点是天气状况,那定义N_{11}就是晴天且打高尔夫的数量,N_{12}晴天且不打高尔夫的数量,以此类推。

我们再定义:

\sum_{t=1}^{\left | T \right |}N_{t}H_{t}(T) 为模型对训练数据的预测误差

\left | T \right |为模型复杂度

#理解

剪枝的过程:

从叶结点开始,分别计算每个叶结点的经验熵,再计算叶结点回缩到其父结点时的树的损失函数,与当前树的损失函数比较,若当前树的损失函数大于回缩到父结点的损失函数,则进行剪枝,即把父结点变成叶结点。重复以上步骤,知道得到损失函数最小的子树。

#举个例子

2 C4.5算法

C4.5的算法与ID3算法区别就是在特征选择的时候不采用信息增益而采用信息增益比,这样可以避免划分特征时选择取值较多的特征。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值