决策树算法梳理

一、信息论基础
(1)信息论:
信息论最早来自于通信领域,也叫通信理论,主要研究信息的获取,变换,传输,处理。
(2)信息熵与信息增益:
信息熵表示的是不确定度。均匀分布时,不确定度最大,此时熵就最大。当选择某个特征对数据集进行分类时,分类后的数据集信息熵会比分类前的小,其差值表示为信息增益。信息增益可以衡量某个特征对分类结果的影响大小。
(3)基尼不纯度:
a、基尼值:基尼值 Gini(D) 反映了从数据集中随机抽取两个样本,其类别标记不一致的概率。当数据集的纯度越高,每次抽到不同类别标记的概率越小。打个比方,在一个袋子里装100个乒乓球,其中有99个白球,1个黄球,那么当我们随机抽取两个球的时候,很大概率是抽到两个白球。
所以数据集D的纯度可以用基尼值来度量,其定义如下:
在这里插入图片描述基尼值越小,数据集D纯度越高。
b、基尼指数:基尼指数是针对于属性定义的,其反映的是,使用属性a进行划分后,所有分支中(使用基尼值度量的)纯度的加权和。
属性a的基尼指数定义如下:
在这里插入图片描述
我们在属性集合中选择划分属性的时候,就选择使得划分后基尼指数最小的属性作为最优划分属性。CART就是用基尼指数来选择划分属性的。
二、决策树的不同分类方法的原理:
(1)ID3算法: 内部使用信息熵以及’信息增益‘来进行构建,每次迭代选择信息增益最大的特征属性作为分割属性。只支持离散的特征属性。
a、 优点:决策树构建速度快,实现简单。
b、 缺点:算法依赖样本中出现次数较多的特征属性,但是出现次数最多的属性并不一定最优.
(2)C4.5算法:使用’信息增益率‘来构建,在树的构建过程中会进行剪枝操作的优化,能够自动完成对连续属性的离散化处理。选择信息增益率大的属性进行分割。
a、优点:准确率较高,实现简单。
b、缺点:对数据集需要进行多次顺序扫描和排序,效率较低。
(3)CART算法:使用’基尼系数’作为数据纯度的量化指标来构建,选择‘GINI增益率’来分割,越大的即作为当前数据集的分割属性.可用于分类和回归。(二叉树构建)
(4)注意区别: CART构建的一定是二叉树,ID3,C4.5构建的不一定是二叉树。
三、回归树原理
(1)叶节点是一个值:当前叶子所有样本标签均值
(2)误差衡量:总方差,表示一组数据的混乱度,是本组所有数据与这组数据均值之差的平方和
(3)回归树的构建逻辑:二分法,每次选择一个最佳特征,并找到最佳切分特征值(使数据混乱度减少最多的[特征,特征值])进行切分,得到左右子树,然后对左右子树递归调用createTree方法,直到没有最佳特征为止。(实践中,在选择最佳特征时,进行了预剪枝)
(4) 回归树剪枝:当我们设置的最小分离叶节点样本数、最小混乱度减小值等参数过小,可能产生过拟合,直观的现象就是,训练出来非常多的叶子,其实是没有必要的,此时就需要剪枝了。而剪枝分为预剪枝和后剪枝:
a、预剪枝:在chooseBestSplit函数中的几个提前终止条件(切分样本小于阈值、混乱度减弱小于阈值),都是预剪枝(参数敏感)。
b、后剪枝:使用测试集对训练出的回归树进行剪枝(由于不需要用户指定,后剪枝是一种更为理想化的剪枝方法)
后剪枝逻辑:对训练好的回归树,自上而下找到叶节点,用测试集来判断将这些叶节点合并是否能降低测试误差,若能,则合并。
注意:为了寻求最佳模型,会同时使用两种剪枝技术。
四、决策树防过拟合的手段
除了上文所讲的(1)预剪枝(2)后剪枝两种方法,还有(3)奥卡姆剃刀(Occam’s razor):给定两个具有相同泛化误差的模型,较简单的模型比较复杂的模型更可取。(4)悲观误差估计(pessimistic error estimate):对二叉树来说,0.5的罚项意味着只要至少能够改善一个训练记录分类,结点就应当扩展,当1位罚项,意味着除非能够减少一个以上训练记录的误分类,否则结点不应当扩展。
五:模型评估
建立了决策树模型后需要给出该模型的评估值,这样才可以来判断模型的优劣。学习算法模型使用训练集 (training set) 建立模型,使用校验集 (test set) 来评估模型。可以从评估指标和评估方法两个角度结合来评估决策树模型。
(1) 评估指标有分类准确度、召回率、虚警率和精确度等。而这些指标都是基于混淆矩阵 (confusion matrix) 进行计算的。混淆矩阵是用来评价监督式学习模型的精确性,矩阵的每一列代表一个类的实例预测,而每一行表示一个实际的类的实例。
(2)评估方法有保留法、随机二次抽样、交叉验证和自助法等。

末:时间匆忙,作者也是入坑不到两周的萌新,更多详细内容读者可自行查询,本文只是简要梳理。
参考资料:Python之机器学习【阿布舍克】著;周志文教授的西瓜书;https://blog.csdn.net/NeilGY/article/details/82746270https://www.jianshu.com/p/6789107bc051;https://yq.aliyun.com/articles/54513;https://blog.csdn.net/mousever/article/details/46944265

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值