机器学习(二)------决策树

1.决策树:

1.1:什么是决策树?

答:决策树是一种分类和回归的基本模型,可从三个角度来理解它,即:

  • 一棵树
  • if-then规则的集合,该集合是决策树上的所有从根节点到叶节点的路径的集合
  • 定义在特征空间与类空间上的条件概率分布,决策树实际上是将特征空间划分成了互不相交的单元,每个从根到叶的路径对应着一个单元。决策树所表示的条件概率分布由各个单元给定条件下类的条件概率分布组成。实际中,哪个类别有较高的条件概率,就把该单元中的实例强行划分为该类别。

1.2和其他模型比,它的优点?

答:主要的优点有两个:

  • 模型具有可解释性,容易向业务部门人员描述。
  • 分类速度快
  • 当然也有其他优点,比如可以同时处理类别数据和数值数据。在运用分类决策树分类时,我们的数据一般会进行离散化

1.3:如何学习一棵决策树?

答:决策树的学习本质上就是从训练数据集中归纳出一组分类规则,使它与训练数据矛盾较小的同时具有较强的泛华能力。从另一个角度看,学习也是基于训练数据集估计条件概率模型(至此,回答完了模型部分,下面接着说策略和算法)。
决策树的损失函数通常是正则化的极大似然函数,学习的策略是以损失函数为目标函数的最小化(说完了策略,该说算法了)。

由于这个最小化问题是一个NP完全问题,现实中,我们通常采用启发式算法(这里,面试官可能会问什么是启发式算法,要有准备,SMO算法就是启发式算法)来近似求解这一最优化问题,得到的决策树是次最优的。

该启发式算法可分为三步:

  • 特征选择
  • 模型生成
  • 决策树的剪枝

2.

2.1特征选择:

2.2熵和条件熵:

2.3信息增益:

2.1:生成决策树的具体过程?

答:从总体上看,这三个步骤就是一个递归地选择最优特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类的过程,这个过程就是划分特征空间,构建决策树的过程。

    如何选择最优特征呢?

简单讲,根据特征的分类能力去选择最优特征,特征分类能力的衡量通常采用信息增益或信息增益比。

   谈谈你对信息增益和信息增益比的理解?

要理解信息增益,首先要理解熵这个概念。从概率统计的角度看,熵是对随机变量不确定性的度量,也可以说是对随机变量的概率分布的一个衡量。熵越大,随机变量的不确定性越大。对同一个随机变量,当它的概率分布为均匀分布时,不确定性最大,熵也最大。对有相同概率分布的不同的随机变量,取值越多的随机变量熵越大。(这是精华)。熵的公式如下:

                                            

 

其次,要理解条件熵的概念。正如熵是对随机变量不确定性的度量一样,条件熵是指,有相关的两个随机变量X和Y,在已知随机变量X的条件下随机变量Y的不确定性。定义为X给定条件下Y的条件概率分布的熵对X的数学期望。公式如下

                                             

当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵与条件熵分别为经验熵与经验条件熵。

所谓信息增益,也叫互信息,就是指集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,公式如下:

 

                                                

 

                                  

                  

用信息增益去选择特征有一个问题,即偏向于选择取值较多的特征。解决思路就是对取值较多的特征进行适当的惩罚(如L1,L2都是一种惩罚的做法),这就是信息增益比所干的事。公式如下:

2.2递归的终止条件是什么呢?
      通常有两个终止条件,一是所有训练数据子集被基本正确分类。二是没有合适的特征可选,即可用特征为0,或者可用特征的信息增益或信息增益比都很小了。

2.3信息增益比和信息增益那个好?

                                      

3.1决策树的生成:ID3

3.2C4.5:

3.3剪枝:

1.什么是决策树剪枝,怎么剪枝?


答:由于根据训练数据生成的决策树往往过于复杂,导致泛华能力比较弱,所以,实际的决策树学习中,会将已生成的决策树进行简化,以提高其泛华能力,这一过程叫做剪枝。具体说就是在已生成的决策树上裁掉一些子树或叶节点,并将其根节点或父节点作为新的叶节点。

具体剪枝时,有一般的剪枝算法和CART剪枝算法两种。下面分别叙述:

A.一般剪枝算法

不管是一般剪枝算法还是CART剪枝算法,都基于同一个思想,即减小决策树模型的整体损失函数,前面提到过,这个整体损失函数是正则化的极大似然函数,其形式如下:

                                                                        

 

C(T)表示决策树T对训练数据集的预测误差,|T|表示决策树的叶节点个数,即模型复杂度。α是权衡因子。C(T)通常有两种衡量方法,一种用熵,一种用基尼指数(这里可先不展开,面试官如果问就再说)。

基尼指数也是一种衡量随机变量不确定性的指标,其公式如下:

                                                

                                                                   

一般剪枝算法,给定α后,通过不断剪枝来减小决策树模型的整体损失。

核心步骤是:假设一组叶节点回缩到其父节点之前与之后的整体树分别为T_B与T_A,其对应的损失函数值分别是C_α(T_B)与C_α(T_A),如果

C_α(T_A) ≦C_α(T_B)

则进行剪枝,将父节点变为新的叶节点。

递归地进行以上步骤,知道不能继续为止,得到损失函数最小的子树T_α。

具体实现这个算法时可采用动态规划(说出动态规划,应当是加分项)。

B.CART剪枝算法

相比一般剪枝算法,CART剪枝算法的优势在于,不用提前确定α值,而是在剪枝的同时找到最优的α值。

下面简要叙述其数学过程,具体证明过程比较复杂,就不写了,感兴趣的可以参考其他资料。

对决策树T的每一个内部节点t,计算

                                                     

T_t代表以内部节点t为根节点的子树。 这样计算出的值表示剪枝后整体损失函数减少的程度。

选择g(t)值最小的内部节点t进行剪枝,得到一棵新树T_g(t)。
然后,对这棵新树继续上面的剪枝过程,又得到一棵新树。
如此,一直到单节点树,可以得到一系列的树,它们互相嵌套。用交叉验证法从中选出最优的子树T_g(t),它对应的α值为g(t)。

 

决策树的一些优点:

  • 易于理解和解释,决策树可以可视化。
  • 几乎不需要数据预处理。其他方法经常需要数据标准化,创建虚拟变量和删除缺失值。决策树还不支持缺失值。
  • 使用树的花费(例如预测数据)是训练数据点(data points)数量的对数。
  • 可以同时处理数值变量和分类变量。其他方法大都适用于分析一种变量的集合。
  • 可以处理多值输出变量问题。
  • 使用白盒模型。如果一个情况被观察到,使用逻辑判断容易表示这种规则。相反,如果是黑盒模型(例如人工神经网络),结果会非常难解释。
  • 即使对真实模型来说,假设无效的情况下,也可以较好的适用。

决策树的一些缺点:

  • 决策树学习可能创建一个过于复杂的树,并不能很好的预测数据。也就是过拟合。修剪机制(现在不支持),设置一个叶子节点需要的最小样本数量,或者数的最大深度,可以避免过拟合。
  • 决策树可能是不稳定的,因为即使非常小的变异,可能会产生一颗完全不同的树。这个问题通过decision trees with an ensemble来缓解。
  • 学习一颗最优的决策树是一个NP-完全问题under several aspects of optimality and even for simple concepts。因此,传统决策树算法基于启发式算法,例如贪婪算法,即每个节点创建最优决策。这些算法不能产生一个全家最优的决策树。对样本和特征随机抽样可以降低整体效果偏差。
  • 概念难以学习,因为决策树没有很好的解释他们,例如,XOR, parity or multiplexer problems.
  • 如果某些分类占优势,决策树将会创建一棵有偏差的树。因此,建议在训练之前,先抽样使样本均衡。

 参考资料:

  1. 《统计学方法》
  2. Jack-cui博客
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值