决策树的基本原理:
决策树是一种自上而下,对样本数据进行树形分类的过程,一棵决策树包含一个根节点内部节点和叶节点。其中每个内部结点表示一个特征或属性,叶结点表示类别。一个困难的预测问题,通过树的分支节点,被划分成两个或多个较为简单的子集,从结构上划分为不同的子问题。将依规则分割数据集的过程不断递归下去(Recursive Partitioning)。决策树作为最常见的监督学习模型,常被用来解决分类和回归问题。
决策树三要素:
特征选择,决策树生成,剪枝
1、特征选择:从训练数据中众多的特征中选择一个特征作为当前节点的分裂标准,有几种不同的启发函数(ID3, C4.5, CART)
2、决策树生成:根据选择的特征评估标准,从上至下递归地生成子节点,直到数据集不可分则决策树停止生长。(决策树是一种递归的过程,三种情形会导致递归返回:(1)当前节点所包含的样本全属于同一类别,无需划分。(2)当前属性集为空,或是样本在所有属性上取值相同,无法划分(3)当前节点包含的样本集为空)
3、剪枝:决策树容易过拟合,一般来需要剪枝,缩小树结构规模、缓解过拟合。剪枝技术有预剪枝和后剪枝两种。
预剪枝:
( 1 )当树到达一定深度的时候,停止树的生长
( 2 )当到达当前结点的样本数 小于某个阈值的时候,停止树的生长
( 3 )计算每次分裂对测试集的准确度提升 当小于某个阈值的时侯不再继续扩展。预剪枝有一定的局限性,有欠拟合的风险。
后剪枝:
让算法生成一棵完全生长的决策树,然后从最底层向上计算是否剪枝。
后剪枝可以得到泛化能力更强的决策树,但时间开销大。
决策树算法的优缺点:
决策树算法的优点:
1、决策树算法易理解,机理解释起来简单。
2、决策树算法可以用于小数据集。
3、决策树算法的时间复杂度较小,为用于训练决策树的数据点的对数。
4、相比于其他算法智能分析一种类型变量,决策树算法可处理数字和数据的类别。
5、能够处理多输出的问题。
6、对缺失值不敏感。
7、可以处理不相关特征数据。
8、效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度。
决策树算法的缺点:
1、对连续性的字段比较难预测。
2、容易出现过拟合。
3、当类别太多时,错误可能就会增加的比较快。
4、在处理特征关联性比较强的数据时表现得不是太好。
5、对于各类别样本数量不一致的数据,在决策树当中,信息增益的结果偏向于那些具有更多数值的特征
信息熵
Id3 c45 cart对比
树形结构为什么不需要归一化:
树模型一直想找的是最优切分点,不存在梯度导数等计算,数值缩放不影响分裂点位置,对树模型的结构不造成影响。
既然树形结构(如决策树、RF)不需要归一化,那为何非树形结构比如Adaboost、SVM、LR、Knn、KMeans之类则需要归一化。
对于线性模型,特征值差别很大时,运用梯度下降的时候,损失等高线是椭圆形,需要进行多次迭代才能到达最优点。但是如果进行了归一化,那么等高线就是圆形的,促使SGD往原点迭代,从而导致需要的迭代次数较少。
信息熵:
决策树中很重要的一点就是选择一个属性进行分枝,因此要注意一下信息增益的计算公式,并深入理解它。
信息熵的计算公式如下:
ID3 C45 CART区别与联系:
ID3缺点:
存在偏向于选择取值较多的特征问题
连续值不支持
缺失值不支持
无法枝剪
C4.5优点用信息增益比来代替信息增益
主动进行的连续的特征离散化通过对数据
排序之后找到类别不同的分割线作为切分点 根据切分点把连续属性转换为布尔型。从而将连续型变量转换多个取值区间的离散型变量。
CART
分类情况下的变量特征选择
离散变量:二分划分
连续变量:和C4.5一致,如果当前节点为连续属性,则该属性后面依旧可以参与子节点的产生选择过程
回归情况下,连续变量不再采取中间值划分,采用最小方差法。
https://blog.csdn.net/manduner/article/details/90516561