决策树(分类与回归方法)1.决策树模型(1)定义:分类决策树是一种描述对实例进行分类的树形结构(2)组成:节点内部节点:表示一个特征或者属性叶节点:表示一个类有向边(3)分类过程从根节点开始,对实例的某一特征进行测试(特征选取)根据测试结果,讲实例分配到其子节点(每一个子节点对应着该特征的一个取值)递归的对实例进行测试并分配,直到叶节点将实例分配到叶节点的类中(决策树生成)为避免过拟合进行剪枝处理(决策树剪枝)(4)决策树学习:学习的本质:从训练数据集中归纳出一组分类规则,在学习时,利用训练数据,根据损失函数最小化的原则建立决策树模型.决策树的构建:构建根节点,将所有训练集都放在根节点,选择一个最优特征按照这一特征将训练数据集分割为子集如果这些子集能够被正确分类,构建叶节点如果还有子集不能被正确分类对这些子集选择新的最优特征,继续对其进行分割,构建新的节点2.特征选择特征选择在于选取对训练数据具有分类能力的特征,准则通常是信息增益或则信息增益比.熵(entropy)[表示随机变量不确定性的度量]熵越大随机变量的不确定性就越大条件熵:H(Y/X)表示在已知随机变量X的条件下随机变量Y得不确定性.信息增益[表示得知特征X的信息从而得到类Y的信息的不确定性减少的程度],特征A对于训练数据集D的信息增益为g(D,A)=H(D)-H(D/A)选择方法:对训练数据集(子集)D,计算每个特征的信息增益,比较大小,选择信息增益最大的特征参数:具体算法:输入:训练数据集D与特征A具体计算例子:统计学习方法P62注:信息增益值的大小是相对于训练数据集而言的,并没有绝对意义信息增益比:3.决策树的生成[只考虑局部最优]ID3算法核心:在决策树的各个节点上应用信息增益准则选择特征,递归的构建决策树具体方法:从根节点开始,对节点计算所有可能的特征的信息增益,选择信息增益最大的特征作为节点的特征,由该特征的不同取值建立子节点再对子节点递归的应用上述方法,构建决策树直到所有特征的信息增益很小或者没有特征可以选择为止算法:C4.5(用信息增益比来选取特征)算法:4.决策树的剪枝(解决过拟合问题)通过极小化决策树整体的损失函数或代价函数来实现参数:为叶节点t上的经验熵公式;决策树学习的损失函数定义为:C(T)表示模型对训练数据的预测误差,(模型与训练数据的拟合度)/T/表示模型的复杂度5.CART算法(二叉树,内部节点只能根据属性进行二分)CART为分类与回归树,内部节点特征的取值只有”是’与’否’对回归树用平方误差最小化准则,对分类树用基尼指数最小化准则,进行特征选取回归树[对应着特征空间的一个划分以及在划分单元的输出值]算法:分类树基尼指数:[基尼指数值越大,样本的不确定性就越大]算法:熵与基尼指数的差别Gini指数的计算不需要对数运算,更加高效;Gini指数更偏向于连续属性,熵更偏向于离散属性。6.决策树的优缺点,主要解决问题决策树主要用来进行分类问题的处理(可以解决回归问题),主要优点是具有可读性,分类速度快.优点:•决策树易于理解和实现.人们在通过解释后都有能力去理解决策树所表达的意义。•对于决策树,数据的准备往往是简单或者是不必要的.其他的技术往往要求先把数据一般化,比如去掉多余的或者空白的属性。•能够同时处理数据型和常规型属性。其他的技术往往要求数据属性的单一。•在相对短的时间内能够对大型数据源做出可行且效果良好的结果。•对缺失值不敏感•可以处理不相关特征数据•效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度。缺点:1)对连续性的字段比较难预测。2)对有时间顺序的数据,需要很多预处理的工作。3)当类别太多时,错误可能就会增加的比较快。4)一般的算法分类的时候,只是根据一个字段来分类。在处理特征关联性比较强的数据时表现得不是太好适应条件:如果不强调的解释度,尽量避免单棵决策树,用集成树模型在集成数模型中,优先推荐使用xgboost在中小数据集上,优先选择集成树模型。大数据集上推荐神经网络在需要模型解释度的项目上,优先使用树模型在项目时间较短的项目上,如果数据质量低(大量缺失值、噪音等),优先使用集成树模型在硬件条件有限及机器学习知识有限的前提下,优先选择树模型连续值的处理与缺失值的处理[西瓜书P83]