机器学习之决策树

决策树

机器学习也进行了一段时间了,最近看到决策树这部分的知识,说实在的这里边的知识点还是很好理解的,主要的就是在于怎么将这部分的算法编程出来,这个还是很费脑子的,反正我是弄了很久才弄出来几个容易的算法,也许是本人智力有限哈。反正也是学习,也吐槽一些我在机器学习过程中的费脑子糟糕心情罢了。也是便于我自己整理决策树这部分知识点,我简略的列在了下边,公式算法之类的暂时未能列在下面(主要是太多了,繁琐),重要的还是要自己理解吧。

基础知识:
1.决策树是基于树结构来进行决策的。
2.一颗决策树包涵一个根结点,若干个内部结点和若干个叶结点,叶结点对应于决策结果,其他结点则对于于一个属性测试,每个结点包涵的样本集合根据属性测试结果划分到子结点中去,跟结点包涵整个样本集。
3.决策树学习的目的就是为了产生一个泛化能力强的决策树。
4.基本流程遵循“分而治之”。

信息熵:
1.度量样本集合纯度最常用的指标。(其值越小,纯度越高),样本集合D中第k类别样本所占比例为y。

信息增益:
1.信息增益:样本数越多的分支结点的影响越大。若属性a的信息增益越大,意味着使用属性a来进行划分所获得的“纯度提升”越大。
2.所以可以采用信息增益来进行决策树的划分属性选择。当若干属性同时达到最大时,任选其中一个作为划分属性。
3.信息增益可能对数目较多的属性有所偏好。

增益率:(C4.5决策树算法)
1.划分属性选取:先从候选属性中选取信息增益高于平均水平的属性,在从中选取增益率高的属性最为划分属性。

基尼指数:(CART决策树)
1.数据D的纯度可以用基尼值来度量,基尼值越小,数据D的纯度越高。
2.划分属性选取:选择那个使得划分后基尼指数最小的属性作为最优划分属性。

剪枝处理:
1.时决策树主要对付“过拟合”的手段。结点划分太多,导致训练样本学的“太好”,导致过拟合。
2.预剪枝:在决策树生成之前过程中,对每个结点在划分前先进行评估,若该结点的划分不能为决策树泛化性带来提升,则将它作为叶结点。(降低了过拟合的风险,也减少了训练时间和测试时间开销,但是可能带来了欠拟合的风险)。
3.后剪枝:先从训练集生成一颗完整的决策树,然后自底向上对非叶结点进行考察,若将该结点对应的子树替换为叶结点能提升决策树的泛化性,则将它替换为叶结点。(后剪枝通常比预剪枝保留了更多的分支,一般情况下,后剪枝的欠拟合风险很低,泛化能力要优于预剪枝决策树,但是训练时间开销要大很多)。
4.当结点作为叶结点时,其类别结果是训练样本例数最多的类别,但当样例最多的类别不唯一时,可任选其中一个类别。
5.评估时可使用验证集来验证结点的精度等,来确定是否将其作为划分属性。
6.仅有一层划分的决策树亦称为“决策树桩”。
以上均是对数据集D的离散属性来生成决策树。以下为连续属性处理。

连续值和缺失值:
连续值处理:
1.(二分法)将属性取值从小到大顺序排列,选取这些值构成区间的中位数作为候选划分点,然后选取最优的划分点进行集合的划分。
2.若当前结点划分属性为连续属性,该属性依然可以作为后代结点的划分属性。

缺失值处理:
1.若样本的属性已知,则将其划入到对应的子结点中,若样本属性值未知,则将样本同时划入所有的子结点(让它以不同的概率划入到不同的子结点中去)

多变量决策树:
1.决策树形成的分类边界由若干个与坐标轴平行的分段组成。
2.使用“斜的划分边界”进行简化。在多变量决策树的学习过程中,不是为每个非叶结点寻找一个最优划分,而是试图建立一个合适的线性分类器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhudisudo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值