产生一颗泛化能力强,即处理未见示例能力强的决策树
随着划分的不断进行,决策树的分支结点包含的样本尽可能属于同一类别,即结点纯度应越来越高
\[ Ent(D)=-\sum_{k=1}^{|y|}{p_klog_2p_k}\tag{6.1} \]
D为当前样本集合,\(p_k\)为D中第k类样本占总样本比例(依照标记分类)。信息熵越小,D纯度越高
\[ Gain(D,a)=Ent(D)-\sum_{v=1}^{V}\frac{|D^v|}{D}Ent(D^v)\tag{6.2} \]
\(D^v\)为用离散属性\(a=\){\(a^1,a^2,\dots,a^V\)}划分后在属性\(a^V\)上的样本。信息增益越大,意味着用属性a划分所得纯度提升越大。因此最优划分算法为
\[
a_*=\underset{a \in A}{\arg \max}\text{Gain}(D,a)\tag{6.3}
\]
信息增益准则对可取值数目较多的属性有所偏好,为减少这种不利影响,C4.5决策树算法使用增益率选取最优划分属性,增益率定义为
\[
\text{Gain_ratio}(D,a)=\frac{\text{Gain(D,a)}}{\text{IV}(a)}\tag{6.4}
\]
其中
\[
\text{IV}(a)=-\sum_{v=1}^{V}\frac{|D^v|}{|D|}log_2\frac{|D^v|}{|D|}\tag{6.5}
\]
成为属性a的固有值,属性a可能取值数目V越大,IV越大
对可取值数目较少的属性有所偏好,先从划分属性中找到信息增益高于平均水平的属性,再从中选取增益率最高的作为最优划分属性,最优划分算法为
\[ a_*=\underset{a \in A}{\arg\max}\text{Gain_ratio}(D,a),\text{ when }Gain(D,a)>mean(Gain(D,a))\tag{6.6} \]
\[ \text{Gini}(D)=\sum_{k=1}^{|y|}\sum_{k'\ne k}p_kp_{k'}=1-\sum_{k=1}^{|y|}p_k^2\tag{6.7} \]
基尼指数反应了从数据集D中随机抽取两个样本,其类别标记不一致的概率。因此基尼指数越小,D纯度越高
结点划分过程不断重复,有时导致决策树分支过多,把训练集自身的特点当作所有数据具有的一般性质导致过拟合,因此可主动去掉一些分支降低过拟合的风险
决策树生成中,对每个结点在划分前先进行估计,若当前结点不能带来决策树的泛化性能提升,则停止划分并将当前结点标记为叶结点
先从训练集生成一颗完整的决策树,然后自底向上对非叶结点进行考察,若将该结点对应子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点
计算样本中相邻属性的中位值作为划分点t,计算不同t时的信息增益,取最大值时的t作为划分点
\[
\begin{aligned}
\text{Gain}(D,a)&=\max_{t\in T_a}\text{Gain}(D,a,t)\ &=\max_{t\in T_a}\text{Ent}(D)-\sum_{\lambda\in\{-,+\}}\frac{|D_t^\lambda|}{|D|}\text{Ent}(D_t^\lambda)
\end{aligned}\tag{6.10}
\]
在属性值缺失下进行划分属性选择
推广信息增益计算式
划分属性给定,对属性值缺失的样本进行划分
按照不同取值样本数目个数作为权值在各个属性取值均有划分
这样的边界需要进行大量属性测试,预测时间开销大。为使边界划分不为于作标轴平行的线段设定非叶结点为属性的线性组合,形如\(\sum_{i=1}^{d}w_ia_i=t\)的线性分类器,训练结果如下所示
原文:https://www.cnblogs.com/jestland/p/11548516.html