首先,在了解树模型之前,自然想到树模型和线性模型有什么区别呢?其中最重要的是,树形模型是一个一个特征进行处理,之前线性模型是所有特征给予权重相加得到一个新的值。决策树与逻辑回归的分类区别也在于此,逻辑回归是将所有特征变换为概率后,通过大于某一概率阈值的划分为一类,小于某一概率阈值的为另一类;而决策树是对每一个特征做一个划分。另外逻辑回归只能找到线性分割(输入特征x与logit之间是线性的,除非对x进行多维映射),而决策树可以找到非线性分割。
而树形模型更加接近人的思维方式,可以产生可视化的分类规则,产生的模型具有可解释性(可以抽取规则)。树模型拟合出来的函数其实是分区间的阶梯函数。
决策树学习:采用自顶向下的递归的方法,基本思想是以信息熵为度量构造一棵熵值下降最快的树,到叶子节点处熵值为0(叶节点中的实例都属于一类)。
其次,需要了解几个重要的基本概念:根节点(最重要的特征);父节点与子节点是一对,先有父节点,才会有子节点;叶节点(最终标签)。
一、决策树
决策树生成的数学表达式:
决策树的生成:
决策树思想,实际上就是寻找最纯净的划分方法,这个最纯净在数学上叫纯度,纯度通俗点理解就是目标变量要分得足够开(y=1的和y=0的混到一起就会不纯)。另一种理解是分类误差率的一种衡量。实际决策树算法往往用到的是,纯度的另一面也即不纯度,下面是不纯度的公式。不纯度的选取有多种方法,每种方法也就形成了不同的决策树方法,比如ID3算法使用信息增益作为不纯度;C4.5算法使用信息增益率作为不纯度;CART算法使用基尼系数作为不纯度。
决策树要达到寻找最纯净划分的目标要干两件事,建树和剪枝
建树:
(1)如何按次序选择属性
也就是首先树根上以及树节点是哪个变量呢?这些变量是从最重要到次重要依次排序的,那怎么衡量这些变量的重要性呢? ID3算法用的是信息增益,C4.5算法用信息增益率;CART算法使用基尼系数。决策树方法是会把每个特征都试一遍,然后选取那个,能够使分类分的最好的特征,也就是说将A属性作为父节点,产生的纯度增益(GainA)要大于B属性作为父节点,则A作为优先选取的属性。
(根据log(x)的函数可知,p值越小,熵越大,所以当分组完全是会出现p=0此时熵最大)
(2) 如何分裂训练数据(对每个属性选择最优的分割点)
如何分裂数据也即分裂准则是什么?依然是通过不纯度来分裂数据的,通过比较划分前后的不纯度值,来确定如何分裂。
下面做具体的介绍:
——CART算法:既可以做分类,也可以做回归。只能形成二叉树。
分支条件:二分类问题
分支方法:对于连续特征的情况:比较阈值,高于某个阈值就属于某一类,低于某个阈值属于另一类。对于离散特征:抽取子特征,比如颜值这个特征,有帅、丑、中等三个水平,可以先分为帅和不帅的,不帅的里面再分成丑和中等的。
得分函数(y):就是上面提到的gt(x),对于分类树取得是分类最多的那个结果(也即众数),对于回归树取得是均值。
损失函数:其实这里的损失函数,就是分类的准则,也就是求最优化的准则
对于分类树(目标变量为离散变量):同一层所有分支假设函数的基尼系数的平均。
对于回归树(目标变量为连续变量):同一层所有分支假设函数的平方差损失