(补) 决策树-集成学习几个小点

决策树简单回顾

不在反复重复地加深认知了

  • 决策树由节点和边, 每个叶子节点表示的就是一个最终决策结果
  • 一个决策树与对应的决策边界,域值划分而已

训练一颗决策树, 需要三个要素

  • 树的形状

  • 每一个决策的 阀值 \(\theta_i\)

  • 叶节点的值(最终的决策输出)

最为复杂的一部分是,如何根据数据去确定一棵树的形状, 当然可以穷举, 列出所有可能的树形状,再来选, 就有点耗时, 实际中不大行.

信息熵

之前的篇幅, 已经多次说了来源及推导, 用来衡量不确定性的大小

\(H = -\sum \limits _{i} p_i log\ p_i\)

case

给定一组数据 {0,0,1,1,0,1,1,1} 的信息熵

\(=\frac {3}{8}log{\frac {3}{8}} + \frac{5}{8} log(\frac {5}{8})\)

不确定性的减小 (信息增益)= 原来的不确定性 - 分割后的不确定性

停止分割条件

  • 当一个叶节点, 里面包含的所有样本都属于同一类别时
  • 当一个叶节点, 里面包含的所有特征都一样时

过拟合

就是节点个数过多的情况下会发生呀, 因此需要优化

  • 设置数的最大深度

  • 叶节点的样本数小于阀值时停止分裂

  • 具体阀值的选取, 可用交叉验证的方式调参

连续型

通常的办法可以是,对其排序, 然后 离散化

应用于回归问题

就用 标准差 来衡量回归问题中,量化的不确定性

总体评估用 MSE 来评估.

... 这些内容都是常识, 不做过多探讨了, 只是稍微回顾一波而已.

集成模型

  • Bagging
    • 随机森林
  • Boosting
    • GBDT, XGboost...

集成学习的目的, 就是降低模型的不确定性, 从效果来说. 多个人做决策还是优于一个人的, 像我之前要我一个人搭建数据库, 需求调研, 方案, ER模型, 表字段, 代码...全流程都要我一个人来做?? 真的,个人的能力是有限的, 如果在配几个人手来共同探讨, 决策, 那肯定是要优于个人的.

Baggiing 的预测

是对测试样本, 分别用不同的模型去预测, 然后 "投票"确定, (随机森林), 是可以并行来做的. 我同时开好几台机器来训练不同的模型.

Bagging 的核心在于, 通过集成的方式提高模型的稳定性.

就是跟咱投资决策一样的, 不要把鸡蛋都放一个篮子里, 要进行风险分散, 差不多是这个意思.

case

一个比较经典的 专家决策 案例:

说,有7位专家, 每位专家在决策上犯错误的概率是 0.3, 则求共同决策时, 最终犯错的概率是多少?

(采用少数服从多数的原则哦)

这就是一个中学题哈, 其实可以分为3中情况

  • 4 错, 3对
    • \(0.3 ^4 * 0.7^3*C_7^4\)
  • 5错, 2对
    • $0.3^5* 0.7^2 *C_7^5 $
  • 6错, 1对
    • \(0.3^6*0.7* C_7^6\)
  • 7错, 0对
    • \(0.3^7\)

然后求和可以得到, 0.126 <= 0.3

降低风险, 应该是可以证明的,从数学上, 我还没想好, 如何证明

假如有 n 个模型, 每个模型在预测时的方差为 \(\sigma^2\), 则通过 n 个模型一起预测时的方差(平均): \(\frac {\sigma^2}{2}\)

bagging vs boosting

共同点: 都是通过多个模型 去做训练和预测, 每个模型呢, 都是 base weak .

就是要找一些较弱的 分类器, 太强就变专家了, 汉东不允许这么牛逼的人存在

对于 bagging, 单个模型太强的话, 就很容易 overfitting

对于 boosting, 单个模型的设定基础, 就是很弱, 核心是以弱胜强, 单个模型拿出来, 容易 underfitting

怎么说呢, 我个人的接触来看, 用 bagging 会多一点, 就是对同一份数据, 并行地训练多个模型, 然后再 voting 这是我很好地能够向老板解释清楚的.

当然现阶段会更偏向 boosting 多一点, 理论上面认识, 会更自信一些, 当然, 调参也是要市场复习.

在市场上我看这个boosting 当时非常火爆的, 比如 XGboost, 于是接下来几篇的内容又有了, 推导 XGBoost 算法原理, 跟着大佬论文, 试着推导一波看看.

posted @ 2019-12-09 18:50  致于数据科学家的小陈  阅读(381)  评论(0编辑  收藏  举报