📗
deeplearning
  • 机器学习
    • LR & SVM
    • 树模型
    • 评测指标
    • 数据不平衡
  • CV基础
    • 基础模型
    • 初始化
    • 激活函数
    • 注意力机制
    • 损失函数
    • 优化器
    • 可视化
    • 轻量级网络
    • 多任务学习
  • deepfake
    • 数据集
  • 人脸
    • 数据集
    • 人脸对齐
    • 人脸检测
    • 人脸识别
  • 语义分割
    • 语义分割
  • 无监督
    • 无监督
  • 推荐系统
    • 推荐系统模型
    • 推荐系统中的偏差
    • 王喆:深度学习推荐系统
    • 特征处理
    • 重排序
    • 互联网商业化变现
  • 数学
    • bayes最大似然
    • 蒙特卡洛
  • 网站
    • css
    • html
    • js
    • jquery
    • flask
  • 基础工具
    • anaconda
    • docker
    • git
    • linux install
    • vpn
    • latex
  • python
    • numpy
    • matplotlib
    • pandas
    • multi process
    • pytorch
  • 设计模式
    • 设计模式之美
    • 图说设计模式
  • 其他
    • how to ask
    • python style
Powered by GitBook
On this page
  • decision tree
  • 启发函数
  • CART分类树和回归树
  • 剪枝
  • 集成学习 ensemble learning
  • adaboost: Adaptive Boosting
  • GDBT: Gradient Boosting Decision Tree

Was this helpful?

  1. 机器学习

树模型

PreviousLR & SVMNext评测指标

Last updated 3 years ago

Was this helpful?

decision tree

启发函数

决策树的启发函数有ID3, C4.5, CART。

  • ID3是最大信息增益,也就是信息墒,$H(X)=-\sum_{i=1}^{n} p\left(x_{i}\right) \log \left(p\left(x_{i}\right)\right)$

  • C4.5最大信息蹭益比,在ID3计算出最大信息增益比的基础上,然后除以数据机关于该标签的取值墒,比如5个数据中,年龄数据4个年轻,1个年老,该标签的取值墒如下图所示。

  • CART(classification and regression tree),可以用来分类,也可以用来回归。启发函数用基尼指数( Gini),类别越是不均衡,基尼指数越小,这里和经济学上的基尼指数有一个负相关的关系,

三者的比较:

  • ID3容易过拟合,比如对id信息,所有人的都是不同的,那么,按照这个特征划分,条件墒是0,C4.5对ID3进行优化,加入对类别较多的特征的惩罚,避免过拟合,提高泛化能力。

  • ID3 只能处理离散型变量,而 C4.5 和 CART 都可以处理连续型变量,都是将连续特征按照切分点分为两份。ID3不能处理的原因也很简单,因为ID3在每次在切分数据的时候,选择的不是一个特征的取值,而是一个具体的特征。

  • ID3 对样本特征缺失值比较敏感,而 C4.5 和 CART 可以对缺失值进行不同方式的处理。

  • ID3 和 C4.5 可以在每个结点上产生出多叉分支,且每个特征在层级之间不会复用,而 CART 每个结点只会产生两个分支,因此最后会形成一颗二叉树,且每个特征可以被重复使用。

  • ID3 和 C4.5 通过剪枝来权衡树的准确性与泛化能力,而 CART 直接利用全部数据发现所有可能的树结构进行对比 。

CART分类树和回归树

上面说的CART指的是分类树,这里加入和回归树的比较。

输出:

  • 分类输出离散值

  • 回归输出连续值

连续值处理方式

  • 分类树:基尼系数

  • 回归树:误差平方最小化

预测方式

  • 分类树:采用叶子节点里概率最大的类别做为当前节点的预测类别

  • 回归树:采用叶子的均值

剪枝

决策树在训练集上是过拟合的,需要减去一些节点,换来在测试集上的表现,即模型的泛化能力。剪枝分为两种方法, 预剪枝(Pre-Pruning)和 后剪枝 (Post-Pruning)。预剪枝即在生成决策树的过程中提前停止树的增长。 而后剪枝,是在生成的过拟合决策树上进行剪枝,得到简化版的剪枝决策树。

集成学习 ensemble learning

集成学习包括bagging和boost。

  • boost。串行的方式训练基分类器,各分类器之间有依赖。每次训练时,对前一层基分类器分错的样本给与更高的权重

  • bagging。bagging是Bootstrap aggregating的意思,各分类器之间无强依赖,可以并行。

从偏差和方差的角度理解:

  • 偏差:

    • 偏差是指由有所采样得到的大小为m的训练数据集,训练出的所有模型的输出的平均值和真实模型输出之间的偏差。

    • 通常是由对学习算法做了错误的假设导致的

    • 描述模型输出结果的期望与样本真实结果的差距。分类器表达能力有限导致的系统性错误,表现在训练误差不收敛

  • 方差

    • 是指有所有采样得到的大小为m的训练数据集,训练出的所有模型的输出的方差

    • 描述模型对于给定值的输出稳定性。分类器对样本分布过于敏感,到指在训练样本较少的时候,出现过拟合

  • 基分类器的错误,是偏差和方差之和

  • boosting方法通过逐步聚焦分类器分错的样本,减少集成分类器的偏差

  • Bagging采用分而治之的策略,通过对样本多次采样,分别训练多个模型,减少方差

  • 方差和偏差的区别可用下图展示

为什么决策树是常用的基分类器

  • 可以方便地将样本权重结合到训练过程中,不需要使用过采样的方法来调整样本权重

  • 决策树的表达能力和泛化能力,可以通过调节树的层数来做折中

  • 数据样本扰动对决策树影响较大,因此不同子样本集生成的基分类器随机性就较大。这样的不稳定学习器更适合作为基分类器

adaboost: Adaptive Boosting

可以看到,adaboost的主要思想有两个:

  • 是根据上一次的训练结果,调整下一次的训练数据的采样率,对于上一次分类错误的样本,下一次就提高该样本的采样率

  • 最后在合成的时候,降低分类错误率高的基分类器的权重

GDBT: Gradient Boosting Decision Tree

GBDT用来做回归任务。

采用决策树作为弱分类器的 Gradient Boosting 算法被称为 GBDT, 有时又被称为 MART (Multiple Additive Regression Tree ) 。 GBDT 中使用的决策树通常为 CART 。

GBDT用的梯度提升和神经网络里面的梯度下降的异同:

  • 两者都是在每一轮迭代中利用损失函数相对于模型的负梯度方向的信息来对当前模型进行更新

  • 只不过在梯度下降中模型是以参数化形式表示, 从而模型的更新等价于参数的重新。 而在梯度提升中, 模型并不需要进行参数化表示, 而是直接走义在函数空间中, 从而大大扩展了可以使用的模型种类。

优点

  • 预测并行

  • 在分布稠密的数据集上泛化能力和表达能力都很好,这使得 GBDT 在 Kaggle 的众多竞赛中,经常各列榜首 。

  • 可接受性、鲁棒性,自动发现高阶特征;不需要对数据进行特殊处理如归一化

缺点

  • GBDT 在高维稀疏的数据集上表现不如支持向量机或者神经网络

  • GBDT 在处理文本分类特征问题上,相对真他模型的优势不如它在处理数值恃征时明显。

  • 训练过程需要串行训练,只能在决策树内部采用一些局部并行的手段提高训练速度。

XGBoost 是陈天奇等人开发的一个开源机器学习项目,高效地实现了 GBDT 算法并进行了算法和工程上的许多改进。

GBDT用于分类问题:

  • 类似于逻辑回归用与分类问题,来预测对数几率。GBDT只是用一系列的梯度提升树去拟合这个对数几率,实际上最终得到的是一系列CART回归树。