机器学习关于树的总结

由于之前对树这方面一直有所欠缺,特地做个总结

Tree:

Kd-tree:

1. 很奇怪我看有的csdn上说列的划分选取是找方差最大的列(因为方差大更可能不 是一个维度的),而又得则说 是按次序选取列,我认为前者更有说服力。

2.树的剪枝?(没有看到哪里说要剪枝的,就是说模型会有数据集大小的在用空间)

而模型优化的是寻找最近的那一部分

3.遍历:先二叉查找,再回溯,通过计算查找点到分割平面的距离(这个距离比较的是

分割维度上的值的差,并不是分割节点到分割平面上的距离,虽然两者的值是相等的)

与当前最短距离进行比较,决定是否需要进入节点的相邻子空间进行查找,

回归树:

  1. 每一列用二分法选取最大方差的划分,然后比较方差,按最最大方差列划分(不用

删除这列)

  1. 预剪枝:设置划分所需要的最小方差(一般以方差len倍来表示),设置最最小分 裂 的数据集大小
  2. 后剪枝,根据树来划分测试集,然后看按此节点切分和不按此节点切分所得方差的 大小来决定是否合并(一般来说合并方差会更大)

ID3:

  1. 信息增益,
  2. 预剪枝,设置树的深度,最小特征树,节点最小数据条数,纯度
  3. 后剪枝,看合并会不会降低误差率

C4.5:

  1. 信息增益比,就是上面求得信息增益除以该列的信息熵
  2. 预剪枝同上、后剪枝同上
  3. 连续值的处理,选取排序后相邻两值的均值做分割,选取到信息增益比最大的分割 阈值,然后和其他列的比较

Cart树:

  1. 基于基尼不纯度,选取不纯度最小的作为分割列,公式分:属性中不纯度,对标签 的 不纯度
  2. 树的剪枝和ID3,C4.5一样,
  3. 连续值得处理和上面一样,其实还有等频,等距,卡卡方

随机森林里的树:

  1. 基于bagging集成的原理,树之间的联系不能太大,保证完全随机(对深度,特征 列 的选取),然后以投票(可以加权投票吗?)的方式

Boosting(adaboost,GDBT,XGBoost)中的树:

  1. 拿adaboost来说和随机森林不同的是,每次都是创建最好的树,然后根据当前树 的错误率和在数据集上的错误的情况对数据进行加权,让后面的一棵树多关注自己犯的 错
  2. 然后根据错误率加权投票,回归就是求平均

还有其他关于树的算法比如

  1. 排序
  2. 查找
  3. 为了保证树的查找性能还有树平衡
  4. 图像压缩用到的哈夫曼编码(无损压缩)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值