决策树属于有监督学习
决策树是一种树形结构,为人们提供决策依据,决策树可以用来回答是和没有问题,它通过树形结构将各种情况组合都表示出来,每个分支表示一次选择,直到所有选择都进行完毕,最终给出正确答案。
决策树的三个部分:特征选择、生成、剪枝。
(1)特征选择:构建分类树是信息增益、信息增益比、基尼指数;构建回归树是平方误差最小化。
(2)生成:找到最佳分裂点,将数据集分成若干部分,然后对每个部分递归执行上述过程,然后得到一个尽量大的树。
(3)剪枝:得到尽量大的树后,对训练集的数据可以处理的很好,但对预测集可能会误差很大,即过拟化,所以要进行剪枝,剪掉一些没必要的节点,使树别那么大。
1、特征选择
信息增益
在划分数据集之前之后信息发生的变化称为信息增益,获得信息增益最高的特征就是最好的选择。
已知集合D的经验熵H(D),给定特征A下D的经验条件熵为H(D∣A),将它们作差,也就是
将之称为信息增益,代表集合D因为特征A而减少的不确定性。选取特征时,应该对每个特征计算信息增益,然后选取信息增益最大的特征。
信息增益比
信息增益的缺点是比较偏向选择取值多的属性,因为属性选的越多,对训练集预测的结果越准,信息增益越大,但是这对测试集不一定是好事。一个特征的取值集合越多,那么它的信息增益更趋向于大,这可能对我们的判断造成影响,因此可以使用信息增益比作为另一特征选择准则。
已知信息增益和D关于特征A的熵,信息增益比为
基尼指数
概率分布的基尼指数为
假设有K个类,,给定的集合D的基尼指数为
对CART算法,D被特征A的某个值分成两类D1,D2,则在特征A的条件下,集合D的基尼指数为
基尼指数与熵类似,表示一个集合的不确定性,基尼数值越大,不确定性就越大。我们选取特征的时候就应该选取基尼指数最小的特征。
2、生成
采用递归方式构造树
为了判断一个属性的好坏,首先算出整个群主的熵,然后尝试利用每个属性的可能取值对群组进行划分,求出两个新组的熵,为了确定最佳的属性,引入信息增益,就是当前熵与两个新组的加权平均之后的熵之间的差值,算法针对每个属性计算相应的信息增益,然后选择最大的属性。对于每个分支,算法需要判断是否需要进一步的划分。
3、剪枝
考虑到可能出现“过拟合”,需要对决策树进行修剪,剪枝的过程,对具有相同父节点的一组节点进行分析,判断如果将其合并,熵的增加量是否会小于指定的阈值,如果是这样,则进行合并,合并后的新节点包括了所有可能的值 在根节点调用剪枝函数,沿着树的所有路径向下遍历到只含叶节点的节点处,函数会将两个叶节点的合起来形成一个新的列表,同时,对熵进行测试,如果熵的变化小于阈值,叶节点会被删除,并且相应的结果值会被移到父节点。之后,合并而成的新节点也可能成为删除对象,以及与其他节点的合并对象。