决策树知识总结:
决策树的根节点到叶节点的每一条路径构建一条规则,路径上内部节点的特征对应着规则的条件,叶节点的类对应着规则的结论。每一个示例都可以被一条路径或一条规则所覆盖。本质上来讲,决策树就是根据训练数据集得到的条件概率模型,这个条件概率分布是定义在对特征空间的一个划分上,特征空间被划分成为了互不相交的区域。
决策树是定义在特征空间与类空间上的条件概率分布,决策树实际上是将特征空间划分成了互不相交的单元,每个从根到叶的路径对应着一个单元。决策树所表示的条件概率分布由各个单元给定条件下类的条件概率分布组成。
决策树的学习本质上就是从训练数据集中归纳出一组分类规则,使它与训练数据矛盾较小的同时具有较强的泛华能力。
优势:
- 模型具有可解释性,容易向业务部门人员描述。
- 分类速度快
ID3算法:
(1)判断该节点下是否都为同一类,若都为同一类,则不再进行划分,将该类别作为该节点的类别,return tree
(2)判断属性集是否为空,若为空,则不再进行划分,将数据集中比例最高的类别作为该节点的类别,return tree
(3)对属性集中的所有属性计算信息增益,选取信息增益最大的属性,判断他的信息增益是否大于预设的阈值,若小于,则 不再进行划分,将数据集中比例最高的类别作为该节点的类别,return tree;
(4)若大于,则选取该属性作为新的划分属性,该属性有多少个取值,则划分多少个子节点出来,取每一个子节点内占比最高的类别数作为该子节点的类别,return tree
(5)对第i个子节点,以该路径下的数据作为训练集,以剔除了上面划分属性的特征作为特征集,递归调用前4步,得到子树
ID3算法以信息增益作为特征选择标准,以特征的取值个数作为子节点的划分标准(所以不一定是二叉树)
树的停止划分标准:某节点下都是同一类别、最大信息增益的值小于阈值、特征全部划分完毕、到达事先设定的深度、子节点下的样本个数小于预定阈值
C4.5算法的流程与ID3是一样的,只不过将特征选择的方法修改为了信息增益比。
这里要记住的是信息增益、信息熵、条件熵的概念
信息熵:代表了随机变量的不确定程度 根据该随机变量的分布进行计算的 大小在0到n*log(n)之间
条件熵:在随机变量X的条件下,随机变量Y的不确定程度 也就是根据x的取值分布对H(Y|xi)进行了一个加权求和
信息增益:数据集的信息熵减去基于某个属性的条件熵就是该属性的信息增益,信息增益代表了基于该属性对数据集进行分类的不确定性的减少程度。因此信息增益越大越好。
信息增益比:使用该属性的信息增益处以该属性的信息熵(信息增益比是由于,使用属性的取值越多,该属性的信息增益就越大,信息增益比可以对该问题进行校正。为什么能够校正:因为该属性的信息熵代表了该属性的不稳定性信息,因此用信息熵做除数可以消除属性取值过多对信息增益产生的影响)
与上述两个划分方法不同的是CART决策树
CART决策树是二叉树结构,每次对一个特征进行划分后,该特征也不会从属性集中删除,而是可以再之后针对该属性继续进行划分。CART决策树可以分为回归树和分类树两大类。回归树采用最小二乘回归的方法来挑选属性和属性值,分类树采用基尼指数的方法选择属性和属性的划分取值。
回归树算法流程
(1)遍历每一个属性,针对这个属性遍历属性的每一个取值,当以这个取值作为划分节点的话(左子树为该属性小于该取值的样本,右子树为该属性大于该取值的样本),则该节点的值即为子树下的样本label的均值,根据该节点的值与样本的实际取值计算均方误差的值,也就得到了该属性的该取值的误差。我们再所有属性的所有取值中寻找误差最小的哪一个。
(2)针对左右子树,继续执行上述步骤 直到到达停止条件
分类树算法流程
(1)遍历每一个属性,针对这个属性的每一个取值进行遍历,计算当以这个取值作为划分节点的话(左子树为该属性等于该取值的样本,右子树为该属性不等于该取值的样本),训练集的基尼系数。在所有属性的所有取值中寻找基尼系数最小的属性和属性取值。
(2)递归调用上述步骤,直到满足停止条件(到达一定深度、没有可以划分的属性、该子节点下全为某一类别、子节点下的样本个数小于预定的阈值)
基尼系数的计算方法:
样本集的基尼系数:1-(pi^2的求和)
基于某属性的某个取值的样本集的基尼系数:该取值在该属性的概率*在该属性上取该取值的样本集的基尼系数+该属性不等于该取值的概率*在该属性上不取该取值的样本集的基尼系数
注意:基尼系数的计算是根据取该属性的某值和不取该属性的某值来计算的。其实和回归树的区别一个在于(1)回归树的划分是<=某值和>某值,分类树的划分是取该值和不取该值(2)回归树的取值计算方法是基于最小二乘的 分类树是基于基尼系数