决策树算法
- 将区分效果好的条件放在较前面的节点。树模型既可以做分类也可以做回归。
- 树的组成
- 决策树训练与测试
- 如何切分特征点,各个节点选择什么特征,如何切分。通过一种衡量标准。
- 衡量标准:熵。看经过一次划分之后熵值的结果。希望分类之后每个分支熵下降得多更好。
- 信息增益:用于选择特征。特征使得以这个特征为分类后得熵减小得多,就是信息增益程度大,选的特征越好。
决策树构造实例
- 数据 特征 目标
- 首先选择根节点,使用信息增益计算。
- 计算原始数据熵
- 对4个特征以此计算划分后的熵。
根据类别的概率进行加权计算熵
剩下的熵也进行如此计算,选择信息增益程度大的当作根节点;再用如此方法选择下一个节点。
ID3,C4.5,CART,GINI系数
在ID3中,如果有一列id(1,2,3…n),并且若以id分类每一组数据都各自成一类,是确定的,熵为零,是最好的分类结果,但以id分类是无意义的,不能通过id编号来确定分支。
所以提出的信息增益率C4.5。考虑自身熵值。id分为太多类,导致自身熵值很大,以分类数除自身的熵值,会使得信息增益率很小,解决了ID3的问题,是目前常用的。
CART是以GINI系数来衡量的,只要看公式即可。
属性值里的连续值
如果进行二分,在每个数据之间都有可能,对着几种可能分别求熵值,选择熵值最小的那个划分办法,这个过程即进行数据离散化。
决策树剪枝策略
原因:防止过拟合(每个叶子上只有一个样本了,做到100%)
剪枝策略:预剪枝、后剪枝
X[2]<=2.45表示以这个特征<=2.45为分支依据,GINI系数根据公式求出,sample:样本总数量,value:里面各个类别的数量
- 预剪枝:边建立边剪枝(限制树的最大深度、限制叶子节点个数、限制叶子节点样本数和信息增益量等)(这些数据都要经过实验决定,深度多少好,叶子节点个数几个好)
- 后剪枝:建完决策树之后进行剪枝
根据公式计算,C(T)就是当前点的GINI系数*sample,|Tleaf|就是从当前结点算起有几个分支。以绿色圈圈计算为例,首先计算若此节点不进行再分支的Ca(T),再分别求出下面两个叶子节点的Ca(T)相加与不分枝的进行比较,越大越不好。α的意义在于定义越重视熵值还是叶子节点数量,α越大越注重叶子节点个数,也就是关注过拟合,α越小表示更注重结果准确,不太重视过拟合
决策树如何解决问题的
- 解决分类问题,很简单,就顺着分支走,最后求得一类。
- 回归问题。衡量标准:希望每一个分支的方差最小,最后结果是当前节点内样本标签的均值(比如年龄)。