决策树
决策树是一种自上而下,对样本数据进行树形分类的过程,由结点和有向边组成。结点分为内部结点和叶结点,其中每个内部结点表示一个特征或属性。叶节点表示类别。从顶部根节点开始,所有样本聚在一起,经过根节点的划分,样本被划分到不同的子结点中,再根据子结点的特征进一步划分,直至所有样本都被归到某一个类别中。
它是一种监督学习模型,常被用于分类问题和回归问题。
决策树+集成学习------->随机森林,GBDT等模型。
优点:简单直观,可解释性强。
一般而言,决策树的生成包含特征选择,树的构造,树的剪枝三个过程。
常见的决策树算法:ID3,C4.5,CART,采用不同构造决策树的准则。
- ID3------最大信息增益
选择使信息增益最大的特征 - C4.5——最大信息增益比
选择使信息增益比最大的特征 - CART----最大基尼指数
Gini表征数据的纯度,每次迭代中选择基尼指数最小的特征及其对应的切分点分类。
- 总结和对比
1.CART与前两个不同,是一棵二叉树,采用二元切割法,每一步都将数据切成两份,
2.ID3倾向于选择取值较多的特征,因为,信息增益反映的是给定条件以后不确定性减少的程度,但容易过拟合,只能处理离散型变量。其他两种可以处理连续性变量。
C4.5对取值多的特征进行惩罚
3.处理连续性变量时,通过对数据排序之后找到类别不同的分割线作为切分点,根据切分点把连续属性转换为布尔型,从而将连续变量转换多个取值区间的离散型变量。
CART ,由于其构建时每次都会对特征进行二值划分,因此可以很好的适用于连续性变量。
4.任务上:
ID3和C4.5只能用于分类任务,而CART可以应用于回归(使用最小平方误差准则)任务。
5.实现细节上
ID3对样本特征缺失值比较敏感,C4.5 ,和CART可以对缺失值进行不同方式的处理。
ID3和C4.5可以在每个结点上产生出多叉值,每个特征在层级之间不会复用,CART每个结点只会产生两个分支,且每个特征可以被重复使用。
ID3和C4.5通过剪枝来均衡树的准确性与泛化能力,而CART直接用全部数据发现所有可能的树结构进行对比。
回归树
输入:数据集D
输出:回归树f(x)
回归树的函数表示:
共有M个叶子结点,Rm 表示m结点对应的区域。如果输入的样本属于这个区域的话,I 为1 ;如果不属于,I 为0。
cm 需要满足在m区域的所有样本,对应模型的输出与自己label 差的平方和是最小的。
划分后,继续递归的在各部分划分。
决策树剪枝
一颗完全生长的决策树容易过拟合,需要剪枝。
- 预剪枝
在树中结点扩展之前,先计算当前划分是否能提升模型泛化能力,如果不能停止生长。
(此时可能存在不同类别的样本同时存在一个结点中,通过多数投票的原则判断结点所属类别)
停止条件:①达到限定深度。
②结点中样本数量小于某个阈值
③计算每次分裂对测试集的准确度提升,当小于某个阈值时停止。
优点:思想直接,算法简单,效率高,适合解决大规模问题,
缺点:如何准确估计何时停止树的生长,对不同问题有很大差别,且预剪枝存在一定的局限性,有欠拟合风险。 - 后剪枝
- 让算法生成一棵完全生长的决策树,然后从底层向上计算是否剪枝。剪枝过程把子树删除,用一个叶子结点替代。
集成学习
是一大类模型融合策略和方法的统称。
分类
-
boosting
方式:训练基分类器时采用串行的方式,各个分类器之间有依赖。
思路:基本思路是将基分类器层层叠加,每一层在训练的时候,对前一层基分类器分错的样本,给与更高的权重,测试时,根据各层分类器的结果的加权得到最终结果。
支撑:类似人类学习的过程,迭代式学习,查漏补缺式学习。 -
bagging
方式:各基分类器之间无强依赖,可以并行训练。
eg:基于决策树基分类器的随机森林。
思路:集体决策思想,每个个体单独学习,最后通过投票做出最后的决策。 -
原理
基分类器的偏差和方差。
基分类器是弱分类器,其错误率要大于集成分类器,基分类器的错误是偏差和方差两种错误之和。
偏差—由于分类器的表达能力有限导致的系统性错误,表现在训练误差不收敛。
方差由于分类器对于样本分布过于敏感,导致训练样本较少时的过拟合。
boosting,通过逐步聚焦于基分类器分错的样本,减少集成分类器的偏差。
bagging,采取分而治之的策略,通过对训练样本多次采样,分别训练多个不同的模型,然后综合来减少分类器的方差。(投票方式会使出错概率随着基分类器的个数增加而下降)
集成学习+决策树
除了决策树,神经网络也可以用来做基分类器。
Adaboost
计算基分类器的错误率,根据错误率降低被正确分类的样本权重,对分类错误的样本权重不变或升高。
错误率低的分类器拥有最大的“话语权”
使用C4.5决策树
GBDT
- 思想:每一棵树学习的是之前所有树结论和的残差。
Gradient Boosting 是Boosting 中的一大类算法,基本思想是根据当前模型损失函数的负梯度信息来训练新加入的弱分类器,然后将训练好的弱分类器以累加的形式结合到现有模型中。
(残差是使用MSE作为损失函数时,其梯度所导致的一种特例。)
- DT
决策树,GBDT中使用的是回归树。因为,最终的预测结果是多个分类器的预测结果线性相加,回归得到的连续值才有意义。
还因为每次拟合的是梯度,是连续值所以用回归。
回归树采用均方差为划分标准,而不是最大熵。
回归树的每个叶子结点得到的是属于这个叶子节点所有样本的平均值。
3. GB梯度提升
- 流程
1.先计算出当前模型在所有样本上的负梯度,
2.然后以该值为目标训练一个新的弱分类器进行拟合并计算出该弱分类器的权重,最终实现模型的更新。
3.直到残差收敛到一个阈值一下。 - 基本情况:使用CART作为基分类器
- 梯度提升和梯度下降的对比
梯度下降,是把模型参数化啦,因此,参数的更新即是模型的更新。
而梯度提升中,模型直接定义在函数空间中,从而扩展了可以使用的模型种类。
缺点:在高维稀疏数据集上,表现不如svm和神经网络。
XGBOOST和GBDT
-介绍:
xgboost 是陈天奇等开发的一个开源机器学习项目,高效的实现和改进了GBDT算法。
-与GBDT的区别
原始的GBDT算法基于经验损失函数的负梯度来构造新的决策树,构造完成后,再进行剪枝。XGBOOST在决策树构建阶段加入了正则项。
信息熵
对信息量化度量,表征概率和信息冗余度的关系。对于一个离散随机变量,观察到这个变量的具体值时候,我们接受到了多少信息。具体接受多少信息由信息量衡量。
越小概率事情发生的信息量越大,因此一个具体事件的信息量应该随着发生概率而递减且不能为负,
对数函数能够作为这种关系的函数,且满足可加性等信息的性质。
信源的平均不确定性应当为每单个元素不确定性的统计平均值。
一般以2为底,
负号为了确保信息一定是正数或者0。
以2为底,我们只需要信息量满足低概率事件 x 对应于高的信息量。那么对数的选择是任意的。我们只是遵循信息论的普遍传统,使用 2 作为对数的底!
意义:
一种信息出现概率更高的时候,表明它被传播的更高,信息熵可以表示信息的价值,可以衡量信息价值高低的标准。概率越小,熵越大。
信息熵可以度量一个系统的复杂度,越复杂,出现的情况种类越多,信息熵也比较大;越简单,信息熵越小。
附录:
之后看一下,里面有关于分类任务的实例https://mp.weixin.qq.com/s/M2PwsrAnI1S9SxSB1guHdg