初识决策树
决策树是一个非参数的决策算法,决策树可以解决分类问题,且天然支持多分类问题。决策树也可以解决回归问题,按照树的路径追踪到叶子结点,最终叶子节点对应一个数值,且回归问题的结果是一个具体的数值,就可以落在叶子结点的所有样本的平均值,作为回归的预测结果。
并且决策树具有非常好的可解释性。
那么提出一个问题:在构建决策树,进行特征选择划分时,究竟选择哪个特征更好些?
这就要求确定选择特征的准则。直观上,如果一个特征具有更好的分类能力,或者说,按照这一特征将训练数据集分割成子集,使得各个子集在当前条件下有最好的分类,那么就更应该选择这个特征。比如身高、长相、收入等。在找到特征维度之后,还要确定划分阈值,如收入定在多少,作为划分标准比较合适?
**因此,首先找到一个维度,然后在维度上找到一个阈值。然后以这个维度的这个阈值为依据进行划分。**核心问题是:每个节点在哪个维度做划分?选好了维度,如何确定阈值呢?
特征选择中的相关概念
信息熵、条件熵、信息增益、信息增益率、基尼系数等。
特征选择也就是选择最优划分属性,从当前数据的特征中选择一个特征作为当前节点的划分标准。我们希望在不断划分的过程中,决策树的分支节点所包含的样本尽可能属于同一类,即节点的“纯度”越来越高。
特征选择之寻找最优划分
决策树算法的三个步骤:特征选择、决策树生成、决策树剪枝。其中特征选择要解决的核心问题就是:
-
每个节点在哪个维度上做划分?
-
某个维度在哪个值上做划分?
划分的依据是: 要让数据划分成两部分之后,系统整体的信息熵降低。
具体方法是: 对所有的划分可行性进行搜索。下一篇我们模拟在一个节点上进行搜索,找到一个节点上信息熵的最优划分。